All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::sysconf
      Src: /src/cloud-hypervisor/arch/src/lib.rs:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: pagesize
    functionSourceFile: /src/cloud-hypervisor/arch/src/lib.rs
    functionUses: 1
    functionsReached:
    - libc::sysconf
    linkageType: ''
    returnType: usize
    signature: fn pagesize() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: DeviceType::fmt
    functionSourceFile: /src/cloud-hypervisor/arch/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: MmioDeviceInfo::addr
    functionSourceFile: /src/cloud-hypervisor/arch/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn addr(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: MmioDeviceInfo::irq
    functionSourceFile: /src/cloud-hypervisor/arch/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn irq(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: MmioDeviceInfo::length
    functionSourceFile: /src/cloud-hypervisor/arch/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn length(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut F::seek'
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:38,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:39,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:38,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:44,1
    - Dst: '&mut F::rewind'
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:46,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:46,1
    - Dst: GuestMemoryMmap::read_exact_volatile_from
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:47,1
    - Dst: '&mut F::as_fd'
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:48,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 3
    argNames:
    - guest_mem
    - guest_addr
    - uefi_image
    argTypes:
    - '&M'
    - GuestAddress
    - '&mut F'
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: load_uefi
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs
    functionUses: 1
    functionsReached:
    - map_err
    - SeekFrom::End
    - std::io::Result::map_err
    - '&mut F::rewind'
    - '&mut F::seek'
    - GuestMemoryMmap::read_exact_volatile_from
    - Err
    - '&mut F::as_fd'
    linkageType: ''
    returnType: Result
    signature: 'pub fn load_uefi<F, M: GuestMemory>(guest_mem: &M,guest_addr: GuestAddress,uefi_image:
      &mut F,) -> Result<()>whereF: Read + Seek + AsFd,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriter::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:222,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:222,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:229,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:230,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:233,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:234,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:237,1
    - Dst: create_cpu_nodes
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:238,1
    - Dst: create_memory_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:239,1
    - Dst: create_chosen_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:240,1
    - Dst: create_gic_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:241,1
    - Dst: create_timer_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:242,1
    - Dst: create_pmu_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:244,1
    - Dst: create_clock_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:246,1
    - Dst: create_psci_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:247,1
    - Dst: create_devices_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:248,1
    - Dst: create_pci_nodes
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:249,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:250,1
    - Dst: create_distance_map_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:251,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:255,1
    - Dst: FdtWriterResult::finish
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:257,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:259,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 11
    argNames:
    - guest_mem
    - cmdline
    - vcpu_mpidr
    - vcpu_topology
    - device_info
    - gic_device
    - initrd
    - pci_space_info
    - numa_nodes
    - virtio_iommu_bdf
    - pmu_supported
    argTypes:
    - '&GuestMemoryMmap'
    - '&str'
    - '&[u64]'
    - Option<(u16, u16, u16, u16)>
    - '&HashMap<(DeviceType, String), T, S>'
    - '&Arc<Mutex<dyn Vgic>>'
    - '&Option<InitramfsConfig>'
    - '&[PciSpaceInfo]'
    - '&NumaNodes'
    - Option<u32>
    - bool
    constantsTouched: []
    func_position:
      end: 260
      start: 208
    functionDepth: 13
    functionLinenumber: 208
    functionLinenumberEnd: 260
    functionName: create_fdt
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - create_pci_nodes
    - create_clock_node
    - Result::unwrap
    - create_cpu_nodes
    - Ok
    - create_devices_node
    - FdtWriterResult::end_node
    - len
    - FdtWriterResult::begin_node
    - create_timer_node
    - create_pmu_node
    - FdtWriterResult::finish
    - create_psci_node
    - create_gic_node
    - FdtWriterResult::property_string
    - FdtWriter::new
    - create_memory_node
    - FdtWriterResult::property_u32
    - create_distance_map_node
    - create_chosen_node
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'pub fn create_fdt<T: DeviceInfoForFdt + Clone + Debug, S: ::std::hash::BuildHasher>(guest_mem:
      &GuestMemoryMmap,cmdline: &str,vcpu_mpidr: &[u64],vcpu_topology: Option<(u16,
      u16, u16, u16)>,device_info: &HashMap<(DeviceType, String), T, S>,gic_device:
      &Arc<Mutex<dyn Vgic>>,initrd: &Option<InitramfsConfig>,pci_space_info: &[PciSpaceInfo],numa_nodes:
      &NumaNodes,virtio_iommu_bdf: Option<u32>,pmu_supported: bool,) -> FdtWriterResult<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:264,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:264,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fdt_final
    - guest_mem
    argTypes:
    - '&[u8]'
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: write_fdt_to_memory
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::write_slice
    - map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_fdt_to_memory(fdt_final: &[u8], guest_mem: &GuestMemoryMmap)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:278,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:279,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:280,1
    - Dst: '&[u64]::len'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:282,1
    - Dst: Option::unwrap_or
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:284,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:314,1
    - Dst: Result::exists
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:315,1
    - Dst: get_cache_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:318,1
    - Dst: get_cache_coherency_line_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:319,1
    - Dst: get_cache_number_of_sets
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:320,1
    - Dst: get_cache_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:323,1
    - Dst: get_cache_coherency_line_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:324,1
    - Dst: get_cache_number_of_sets
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:325,1
    - Dst: get_cache_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:328,1
    - Dst: get_cache_coherency_line_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:329,1
    - Dst: get_cache_number_of_sets
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:330,1
    - Dst: get_cache_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:333,1
    - Dst: get_cache_coherency_line_size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:334,1
    - Dst: get_cache_number_of_sets
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:335,1
    - Dst: get_cache_shared
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:339,1
    - Dst: get_cache_shared
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:342,1
    - Dst: '&[u64]::iter'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:348,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:348,1
    - Dst: take
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:348,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:350,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:351,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:352,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:355,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:359,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:360,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:363,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:364,1
    - Dst: get
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:365,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:366,1
    - Dst: contains
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:366,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:367,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:374,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:375,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:376,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:378,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:379,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:380,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:383,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:389,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:393,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:398,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:399,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:400,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:401,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:402,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:406,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:417,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:421,1
    - Dst: into
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:426,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:428,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:433,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:442,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:443,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:444,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:445,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:446,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:447,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:448,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:457,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:462,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:466,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:470,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:474,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:478,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:479,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:482,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:484,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:485,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:487,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:492,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:494,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 369
    argCount: 4
    argNames:
    - fdt
    - vcpu_mpidr
    - vcpu_topology
    - numa_nodes
    argTypes:
    - '&mut FdtWriter'
    - '&[u64]'
    - Option<(u16, u16, u16, u16)>
    - '&NumaNodes'
    constantsTouched: []
    func_position:
      end: 495
      start: 271
    functionDepth: 12
    functionLinenumber: 271
    functionLinenumberEnd: 495
    functionName: create_cpu_nodes
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - '&[u64]::len'
    - Path::new
    - take
    - get_cache_size
    - Ok
    - FdtWriterResult::property_u32
    - get_cache_coherency_line_size
    - FdtWriterResult::end_node
    - get_cache_shared
    - FdtWriterResult::property_null
    - impl Iterator::enumerate
    - into
    - Result::exists
    - FdtWriterResult::begin_node
    - len
    - get
    - Option::unwrap_or
    - unwrap
    - contains
    - FdtWriterResult::property_string
    - '&[u64]::iter'
    - get_cache_number_of_sets
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_cpu_nodes(fdt: &mut FdtWriter,vcpu_mpidr: &[u64],vcpu_topology:
      Option<(u16, u16, u16, u16)>,numa_nodes: &NumaNodes,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:504,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:505,1
    - Dst: get
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:506,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:507,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:511,1
    - Dst: iter
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:511,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:512,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:512,1
    - Dst: Result::size
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:513,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:514,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:515,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:522,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:523,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:524,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:525,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:526,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:531,1
    - Dst: GuestMemoryMmap::iter
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:532,1
    - Dst: impl Iterator::next
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:532,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:532,1
    - Dst: Self::expect
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:532,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:532,1
    - Dst: GuestMemoryMmap::iter
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:540,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:540,1
    - Dst: super::Result::start_addr
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:542,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:542,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:542,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:548,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:555,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:560,1
    - Dst: Result::first
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:569,1
    - Dst: expect
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:569,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:572,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:573,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:588,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:589,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:590,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:591,1
    - Dst: Result::get
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:595,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:596,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:607,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:608,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:609,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:610,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:614,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 187
    argCount: 3
    argNames:
    - fdt
    - guest_mem
    - numa_nodes
    argTypes:
    - '&mut FdtWriter'
    - '&GuestMemoryMmap'
    - '&NumaNodes'
    constantsTouched: []
    func_position:
      end: 615
      start: 497
    functionDepth: 8
    functionLinenumber: 497
    functionLinenumberEnd: 615
    functionName: create_memory_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - expect
    - Result::get
    - Result::size
    - super::Result::start_addr
    - Result::first
    - Ok
    - Vec::new
    - FdtWriterResult::end_node
    - Option::map
    - Self::expect
    - len
    - FdtWriterResult::begin_node
    - get
    - Result::push
    - raw_value
    - iter
    - FdtWriterResult::property_array_u64
    - impl Iterator::next
    - impl Iterator::map
    - super::Result::len
    - Result::len
    - unwrap
    - Result::raw_value
    - FdtWriterResult::property_string
    - Result::start_addr
    - GuestMemoryMmap::iter
    - FdtWriterResult::property_u32
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_memory_node(fdt: &mut FdtWriter,guest_mem: &GuestMemoryMmap,numa_nodes:
      &NumaNodes,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:622,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:623,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:626,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:627,1
    - Dst: FdtWriterResult::property_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:628,1
    - Dst: FdtWriterResult::property_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:629,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:632,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - fdt
    - cmdline
    - initrd
    argTypes:
    - '&mut FdtWriter'
    - '&str'
    - '&Option<InitramfsConfig>'
    constantsTouched: []
    func_position:
      end: 635
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 635
    functionName: create_chosen_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - FdtWriterResult::begin_node
    - Ok
    - FdtWriterResult::property_u64
    - raw_value
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_chosen_node(fdt: &mut FdtWriter,cmdline: &str,initrd: &Option<InitramfsConfig>,)
      -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Arc<Mutex<dyn Vaia>>::lock'
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:220,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:220,1
    - Dst: msi_compatible
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:220,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:223,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:225,1
    - Dst: '&Arc<Mutex<dyn Vaia>>::lock'
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:227,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:227,1
    - Dst: imsic_compatibility
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:227,1
    - Dst: '&Arc<Mutex<dyn Vaia>>::lock'
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:229,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:229,1
    - Dst: imsic_properties
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:229,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:230,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:231,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:232,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:233,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:235,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:236,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:238,1
    - Dst: '&Arc<Mutex<dyn Vaia>>::lock'
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:239,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:239,1
    - Dst: vcpu_count
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:239,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:241,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:242,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:244,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:246,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:252,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:254,1
    - Dst: '&Arc<Mutex<dyn Vaia>>::lock'
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:256,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:256,1
    - Dst: aplic_compatibility
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:256,1
    - Dst: '&Arc<Mutex<dyn Vaia>>::lock'
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:258,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:258,1
    - Dst: aplic_properties
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:258,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:259,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:260,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:261,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:263,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:264,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:265,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:267,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs:269,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 130
    argCount: 2
    argNames:
    - fdt
    - aia_device
    argTypes:
    - '&mut FdtWriter'
    - '&Arc<Mutex<dyn Vaia>>'
    constantsTouched: []
    func_position:
      end: 270
      start: 218
    functionDepth: 13
    functionLinenumber: 218
    functionLinenumberEnd: 270
    functionName: create_aia_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs
    functionUses: 0
    functionsReached:
    - aplic_properties
    - Result::push
    - vcpu_count
    - Vec::new
    - FdtWriterResult::property_string
    - FdtWriterResult::end_node
    - FdtWriterResult::property_null
    - aplic_compatibility
    - Ok
    - unwrap
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_u32
    - FdtWriterResult::property_array_u32
    - '&Arc<Mutex<dyn Vaia>>::lock'
    - imsic_properties
    - imsic_compatibility
    - msi_compatible
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_aia_node(fdt: &mut FdtWriter, aia_device: &Arc<Mutex<dyn
      Vaia>>) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&T::addr'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:763,1
    - Dst: '&T::length'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:763,1
    - Dst: '&T::irq'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:766,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:770,1
    - Dst: FdtWriterResult::property
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:771,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:772,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:773,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:774,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:775,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:776,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:778,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - fdt
    - dev_info
    argTypes:
    - '&mut FdtWriter'
    - '&T'
    constantsTouched: []
    func_position:
      end: 779
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 779
    functionName: create_serial_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::property_array_u64
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - '&T::length'
    - '&T::addr'
    - '&T::irq'
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_u32
    - FdtWriterResult::property_array_u32
    - FdtWriterResult::property
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_serial_node<T: DeviceInfoForFdt + Clone + Debug>(fdt: &mut
      FdtWriter,dev_info: &T,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:864,1
    - Dst: create_gpio_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:868,1
    - Dst: create_rtc_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:869,1
    - Dst: create_serial_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:870,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:872,1
    - Dst: create_fw_cfg_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:875,1
    - Dst: Result::sort_by_key
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:880,1
    - Dst: addr
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:880,1
    - Dst: Result::reverse
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:884,1
    - Dst: Result::drain
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:885,1
    - Dst: create_virtio_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:886,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:889,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - fdt
    - dev_info
    argTypes:
    - '&mut FdtWriter'
    - '&HashMap<(DeviceType, String), T, S>'
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 5
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: create_devices_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - Result::reverse
    - create_fw_cfg_node
    - create_virtio_node
    - create_gpio_node
    - Vec::new
    - addr
    - Result::sort_by_key
    - create_serial_node
    - create_rtc_node
    - Result::drain
    - Result::push
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_devices_node<T: DeviceInfoForFdt + Clone + Debug, S: ::std::hash::BuildHasher>(fdt:
      &mut FdtWriter,dev_info: &HashMap<(DeviceType, String), T, S>,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[PciSpaceInfo]::iter'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:912,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:919,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:921,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:923,1
    - Dst: '&[PciSpaceInfo]::len'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:934,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:985,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:987,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:988,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:989,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:990,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:991,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:995,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:996,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:997,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:998,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:999,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1000,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1001,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1002,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1003,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1020,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1025,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1026,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1027,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1034,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1035,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1037,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1040,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1043,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 193
    argCount: 3
    argNames:
    - fdt
    - pci_device_info
    - virtio_iommu_bdf
    argTypes:
    - '&mut FdtWriter'
    - '&[PciSpaceInfo]'
    - Option<u32>
    constantsTouched: []
    func_position:
      end: 1044
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 1044
    functionName: create_pci_nodes
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::property_array_u64
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - '&[PciSpaceInfo]::iter'
    - FdtWriterResult::property_null
    - Ok
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_u32
    - FdtWriterResult::property_array_u32
    - '&[PciSpaceInfo]::len'
    - raw_value
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_pci_nodes(fdt: &mut FdtWriter,pci_device_info: &[PciSpaceInfo],virtio_iommu_bdf:
      Option<u32>,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdt_parser::Fdt::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1089,1
    - Dst: FdtWriterResult::find_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1091,1
    - Dst: print_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - dtb
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1100
      start: 1088
    functionDepth: 17
    functionLinenumber: 1088
    functionLinenumberEnd: 1100
    functionName: print_fdt
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::find_node
    - fdt_parser::Fdt::new
    - print_node
    linkageType: ''
    returnType: void
    signature: 'pub fn print_fdt(dtb: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::properties
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1104,1
    - Dst: iter
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1112,1
    - Dst: map
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1112,1
    - Dst: "value\n                .iter()\n                .map(|&c| if c == 0 {\
        \ b' ' } else { c })\n                .collect::<Vec<_>>"
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1112,1
    - Dst: cmp::min
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1117,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1117,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1118,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1119,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1121,1
    - Dst: CStr::from_bytes_with_nul
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1131,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1132,1
    - Dst: ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1132,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1145,1
    - Dst: resize
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1146,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1146,1
    - Dst: BigEndian::read_u32_into
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1147,1
    - Dst: FdtWriterResult::children
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1159,1
    - Dst: print_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 66
    argCount: 2
    argNames:
    - node
    - n_spaces
    argTypes:
    - fdt_parser::node::FdtNode<'_, '_>
    - usize
    constantsTouched: []
    func_position:
      end: 1162
      start: 1102
    functionDepth: 16
    functionLinenumber: 1102
    functionLinenumberEnd: 1162
    functionName: print_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 2
    functionsReached:
    - iter
    - map
    - resize
    - print_node
    - FdtWriterResult::children
    - BigEndian::read_u32_into
    - Result::len
    - FdtWriterResult::properties
    - ok
    - copy_from_slice
    - len
    - Vec::with_capacity
    - to_str
    - CStr::from_bytes_with_nul
    - "value\n                .iter()\n                .map(|&c| if c == 0 { b' '\
      \ } else { c })\n                .collect::<Vec<_>>"
    - to_vec
    - cmp::min
    linkageType: ''
    returnType: void
    signature: 'fn print_node(node: fdt_parser::node::FdtNode<''_, ''_>, n_spaces:
      usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:827,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:827,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:831,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:832,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:834,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:834,1
    - Dst: update_cpuid_topology
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:860,1
    - Dst: super::Result::tsc_khz
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:865,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:865,1
    - Dst: std::arch::x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:869,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:872,1
    - Dst: retain
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:873,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:874,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:879,1
    - Dst: super::Result::set_cpuid2
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:888,1
    - Dst: cpu::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:888,1
    - Dst: Error::SetSupportedCpusFailed
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:889,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:889,1
    - Dst: super::Result::enable_hyperv_synic
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:892,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:892,1
    - Dst: regs::setup_msrs
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:895,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:895,1
    - Dst: regs::setup_regs
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:897,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:897,1
    - Dst: regs::setup_fpu
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:898,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:898,1
    - Dst: get_max_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:905,1
    - Dst: regs::setup_sregs
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:906,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:906,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:906,1
    - Dst: interrupts::set_lint
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:909,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:909,1
    - Dst: Error::LocalIntConfiguration
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:909,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:909,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:910,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 150
    argCount: 8
    argNames:
    - vcpu
    - id
    - boot_setup
    - cpuid
    - kvm_hyperv
    - cpu_vendor
    - topology
    - nested
    argTypes:
    - '&dyn hypervisor::Vcpu'
    - u32
    - Option<(EntryPoint, &GuestMemoryAtomic<GuestMemoryMmap>)>
    - Vec<CpuIdEntry>
    - bool
    - CpuVendor
    - (u16, u16, u16, u16)
    - bool
    constantsTouched: []
    func_position:
      end: 911
      start: 817
    functionDepth: 7
    functionLinenumber: 817
    functionLinenumberEnd: 911
    functionName: configure_vcpu
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 3
    functionsReached:
    - retain
    - push
    - cpu::Result::unwrap
    - regs::setup_sregs
    - Ok
    - Error::LocalIntConfiguration
    - Default::default
    - usize::into
    - super::Result::enable_hyperv_synic
    - regs::setup_msrs
    - regs::setup_regs
    - super::Result::tsc_khz
    - interrupts::set_lint
    - super::Result::set_cpuid2
    - update_cpuid_topology
    - Error::SetSupportedCpusFailed
    - get_x2apic_id
    - std::arch::x86_64::__cpuid
    - GuestMemoryAtomic::memory
    - regs::setup_fpu
    - Result::map_err
    - get_max_x2apic_id
    - CpuidPatch::set_cpuid_reg
    - cpu::Result::map_err
    - Some
    linkageType: ''
    returnType: super::Result
    signature: 'pub fn configure_vcpu(vcpu: &dyn hypervisor::Vcpu,id: u32,boot_setup:
      Option<(EntryPoint, &GuestMemoryAtomic<GuestMemoryMmap>)>,cpuid: Vec<CpuIdEntry>,kvm_hyperv:
      bool,cpu_vendor: CpuVendor,topology: (u16, u16, u16, u16),nested: bool,) ->
      super::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 941
    functionName: arch_memory_regions
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: pub fn arch_memory_regions() -> Vec<(GuestAddress, usize, RegionType)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::open
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:128,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:128,1
    - Dst: BufReader::new
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:129,1
    - Dst: Result::lines
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:131,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:132,1
    - Dst: trim
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:133,1
    - Dst: starts_with
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:135,1
    - Dst: split
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:136,1
    - Dst: collect
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:136,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:137,1
    - Dst: trim
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:138,1
    - Dst: split
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:143,1
    - Dst: map
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:143,1
    - Dst: FdtWriterResult::to_string
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:143,1
    - Dst: collect
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:143,1
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:145,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:146,1
    - Dst: Error::InvalidIsaString
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:146,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:146,1
    - Dst: chars
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:150,1
    - Dst: filter
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:150,1
    - Dst: collect
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:150,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:154,1
    - Dst: Result::join
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:154,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/riscv64/mod.rs:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 160
    functionName: isa_string_from_host
    functionSourceFile: /src/cloud-hypervisor/arch/src/riscv64/mod.rs
    functionUses: 0
    functionsReached:
    - filter
    - map_err
    - collect
    - trim
    - to_string
    - split
    - Result::lines
    - Ok
    - Result::is_empty
    - BufReader::new
    - len
    - starts_with
    - Err
    - FdtWriterResult::to_string
    - map
    - File::open
    - Error::InvalidIsaString
    - chars
    - Result::join
    linkageType: ''
    returnType: Result
    signature: fn isa_string_from_host() -> Result<String, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:966,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:966,1
    - Dst: smbios::setup_smbios
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:970,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:970,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:974,1
    - Dst: unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:974,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:975,1
    - Dst: mptable::setup_mptable
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:976,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:976,1
    - Dst: GuestMemoryMmap::last_addr
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:980,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:982,1
    - Dst: configure_32bit_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:986,1
    - Dst: configure_pvh
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:994,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 11
    argNames:
    - guest_mem
    - cmdline_addr
    - cmdline_size
    - initramfs
    - _num_cpus
    - setup_header
    - rsdp_addr
    - serial_number
    - uuid
    - oem_strings
    - topology
    argTypes:
    - '&GuestMemoryMmap'
    - GuestAddress
    - usize
    - '&Option<InitramfsConfig>'
    - u32
    - Option<setup_header>
    - Option<GuestAddress>
    - Option<&str>
    - Option<&str>
    - Option<&[&str]>
    - Option<(u16, u16, u16, u16)>
    constantsTouched: []
    func_position:
      end: 996
      start: 952
    functionDepth: 7
    functionLinenumber: 952
    functionLinenumberEnd: 996
    functionName: configure_system
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 3
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - GuestMemoryMmap::write_obj
    - smbios::setup_smbios
    - unchecked_add
    - Err
    - configure_32bit_entry
    - Result::map_err
    - mptable::setup_mptable
    - GuestMemoryMmap::last_addr
    - configure_pvh
    linkageType: ''
    returnType: super::Result
    signature: 'pub fn configure_system(guest_mem: &GuestMemoryMmap,cmdline_addr:
      GuestAddress,cmdline_size: usize,initramfs: &Option<InitramfsConfig>,_num_cpus:
      u32,setup_header: Option<setup_header>,rsdp_addr: Option<GuestAddress>,serial_number:
      Option<&str>,uuid: Option<&str>,oem_strings: Option<&[&str]>,topology: Option<(u16,
      u16, u16, u16)>,) -> super::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::find_region
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1300,1
    - Dst: GuestAddress::new
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1301,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1300,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1304,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1307,1
    - Dst: crate::pagesize
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1310,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - guest_mem
    - initramfs_size
    argTypes:
    - '&GuestMemoryMmap'
    - usize
    constantsTouched: []
    func_position:
      end: 1312
      start: 1296
    functionDepth: 5
    functionLinenumber: 1296
    functionLinenumberEnd: 1312
    functionName: initramfs_load_addr
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - GuestAddress::new
    - GuestMemoryMmap::find_region
    - Err
    - len
    - crate::pagesize
    - Option::ok_or
    - Ok
    linkageType: ''
    returnType: super::Result
    signature: 'pub fn initramfs_load_addr(guest_mem: &GuestMemoryMmap,initramfs_size:
      usize,) -> super::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1318,1
    - Dst: x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1325,1
    - Dst: x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1327,1
    - Dst: x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - hypervisor
    argTypes:
    - '&dyn hypervisor::Hypervisor'
    constantsTouched: []
    func_position:
      end: 1339
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1339
    functionName: get_host_cpu_phys_bits
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - x86_64::__cpuid
    linkageType: ''
    returnType: u8
    signature: 'pub fn get_host_cpu_phys_bits(hypervisor: &dyn hypervisor::Hypervisor)
      -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arch_memory_regions
      Src: /src/cloud-hypervisor/arch/src/aarch64/mod.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: unit_tests::test_arch_memory_regions_dram
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/mod.rs
    functionUses: 0
    functionsReached:
    - arch_memory_regions
    linkageType: ''
    returnType: void
    signature: fn test_arch_memory_regions_dram()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:106,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:114,1
    - Dst: String::exists
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:115,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:116,1
    - Dst: expect
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:116,1
    - Dst: trim
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:118,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:119,1
    - Dst: parse
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:119,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:119,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:120,1
    - Dst: pow
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:125,1
    - Dst: pow
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - cache_level
    argTypes:
    - CacheLevel
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 11
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: get_cache_size
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - fs::read_to_string
    - expect
    - Path::new
    - String::exists
    - trim
    - '&str::to_string'
    - pow
    - parse
    - unwrap
    - len
    linkageType: ''
    returnType: u32
    signature: 'pub fn get_cache_size(cache_level: CacheLevel) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:137,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:145,1
    - Dst: String::exists
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:146,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:147,1
    - Dst: expect
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:147,1
    - Dst: trim
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:148,1
    - Dst: trim().parse::<u32>
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:148,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - cache_level
    argTypes:
    - CacheLevel
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: get_cache_coherency_line_size
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - fs::read_to_string
    - expect
    - Path::new
    - String::exists
    - trim
    - trim().parse::<u32>
    - '&str::to_string'
    - unwrap
    linkageType: ''
    returnType: u32
    signature: 'pub fn get_cache_coherency_line_size(cache_level: CacheLevel) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:157,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:165,1
    - Dst: String::exists
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:166,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:167,1
    - Dst: expect
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:167,1
    - Dst: trim
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:168,1
    - Dst: trim().parse::<u32>
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:168,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - cache_level
    argTypes:
    - CacheLevel
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: get_cache_number_of_sets
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - fs::read_to_string
    - expect
    - Path::new
    - String::exists
    - trim
    - trim().parse::<u32>
    - '&str::to_string'
    - unwrap
    linkageType: ''
    returnType: u32
    signature: 'pub fn get_cache_number_of_sets(cache_level: CacheLevel) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:177,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:190,1
    - Dst: String::exists
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:191,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:192,1
    - Dst: expect
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:192,1
    - Dst: trim
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:193,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:194,1
    - Dst: contains
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:197,1
    - Dst: contains
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - cache_level
    argTypes:
    - CacheLevel
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: get_cache_shared
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - fs::read_to_string
    - expect
    - is_empty
    - Path::new
    - String::exists
    - trim
    - '&str::to_string'
    - contains
    linkageType: ''
    returnType: bool
    signature: 'pub fn get_cache_shared(cache_level: CacheLevel) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Arc<Mutex<dyn Vgic>>::lock'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:638,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:638,1
    - Dst: device_properties
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:638,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:640,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:642,1
    - Dst: '&Arc<Mutex<dyn Vgic>>::lock'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:642,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:642,1
    - Dst: fdt_compatibility
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:642,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:643,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:647,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:648,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:649,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:650,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:651,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:652,1
    - Dst: '&Arc<Mutex<dyn Vgic>>::lock'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:656,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:656,1
    - Dst: fdt_maint_irq
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:656,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:659,1
    - Dst: '&Arc<Mutex<dyn Vgic>>::lock'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:661,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:661,1
    - Dst: msi_compatible
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:661,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:662,1
    - Dst: '&Arc<Mutex<dyn Vgic>>::lock'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:663,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:663,1
    - Dst: msi_compatibility
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:663,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:663,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:665,1
    - Dst: '&str::as_str'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:665,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:666,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:667,1
    - Dst: '&Arc<Mutex<dyn Vgic>>::lock'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:668,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:668,1
    - Dst: msi_properties
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:668,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:669,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:672,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:673,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:676,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:679,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:681,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 125
    argCount: 2
    argNames:
    - fdt
    - gic_device
    argTypes:
    - '&mut FdtWriter'
    - '&Arc<Mutex<dyn Vgic>>'
    constantsTouched: []
    func_position:
      end: 682
      start: 637
    functionDepth: 13
    functionLinenumber: 637
    functionLinenumberEnd: 682
    functionName: create_gic_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - '&Arc<Mutex<dyn Vgic>>::lock'
    - FdtWriterResult::property_array_u64
    - FdtWriterResult::property_u32
    - fdt_compatibility
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - fdt_maint_irq
    - msi_compatibility
    - FdtWriterResult::property_null
    - to_string
    - msi_properties
    - '&str::as_str'
    - unwrap
    - Ok
    - FdtWriterResult::begin_node
    - device_properties
    - FdtWriterResult::property_array_u32
    - msi_compatible
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_gic_node(fdt: &mut FdtWriter, gic_device: &Arc<Mutex<dyn
      Vgic>>) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:689,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:690,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:691,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:692,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:693,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:694,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:695,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:697,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - '&mut FdtWriter'
    constantsTouched: []
    func_position:
      end: 698
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 698
    functionName: create_clock_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_u32
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_clock_node(fdt: &mut FdtWriter) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:712,1
    - Dst: iter
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:713,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:714,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:715,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:716,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:719,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:720,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:721,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:722,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:723,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:725,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - '&mut FdtWriter'
    constantsTouched: []
    func_position:
      end: 726
      start: 700
    functionDepth: 5
    functionLinenumber: 700
    functionLinenumberEnd: 726
    functionName: create_timer_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - iter
    - Vec::new
    - FdtWriterResult::property_string
    - FdtWriterResult::end_node
    - FdtWriterResult::property_null
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_array_u32
    - Result::push
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_timer_node(fdt: &mut FdtWriter) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:730,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:731,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:735,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:736,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - '&mut FdtWriter'
    constantsTouched: []
    func_position:
      end: 739
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 739
    functionName: create_psci_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::property_string
    - Ok
    - FdtWriterResult::end_node
    - FdtWriterResult::begin_node
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_psci_node(fdt: &mut FdtWriter) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&T::addr'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:745,1
    - Dst: '&T::length'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:745,1
    - Dst: '&T::irq'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:746,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:748,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:749,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:750,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:751,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:752,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:753,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:755,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - fdt
    - dev_info
    argTypes:
    - '&mut FdtWriter'
    - '&T'
    constantsTouched: []
    func_position:
      end: 756
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 756
    functionName: create_virtio_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::property_array_u64
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - '&T::length'
    - '&T::addr'
    - '&T::irq'
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_u32
    - FdtWriterResult::property_array_u32
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_virtio_node<T: DeviceInfoForFdt + Clone + Debug>(fdt: &mut
      FdtWriter,dev_info: &T,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&T::addr'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:786,1
    - Dst: '&T::length'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:786,1
    - Dst: '&T::irq'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:789,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:793,1
    - Dst: FdtWriterResult::property
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:794,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:795,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:796,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:797,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:798,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:799,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:801,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - fdt
    - dev_info
    argTypes:
    - '&mut FdtWriter'
    - '&T'
    constantsTouched: []
    func_position:
      end: 802
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 802
    functionName: create_rtc_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::property_array_u64
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - '&T::length'
    - '&T::addr'
    - '&T::irq'
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_u32
    - FdtWriterResult::property_array_u32
    - FdtWriterResult::property
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_rtc_node<T: DeviceInfoForFdt + Clone + Debug>(fdt: &mut
      FdtWriter,dev_info: &T,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&T::addr'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:810,1
    - Dst: '&T::length'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:810,1
    - Dst: '&T::irq'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:813,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:817,1
    - Dst: FdtWriterResult::property
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:818,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:819,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:820,1
    - Dst: FdtWriterResult::property_null
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:821,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:822,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:823,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:824,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:825,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:826,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:829,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:830,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:831,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:832,1
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:833,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:834,1
    - Dst: FdtWriterResult::property_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:835,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:837,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:838,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:839,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:841,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 93
    argCount: 2
    argNames:
    - fdt
    - dev_info
    argTypes:
    - '&mut FdtWriter'
    - '&T'
    constantsTouched: []
    func_position:
      end: 842
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 842
    functionName: create_gpio_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::property_array_u64
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - '&T::length'
    - FdtWriterResult::property_null
    - '&T::addr'
    - '&T::irq'
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_u32
    - FdtWriterResult::property_array_u32
    - FdtWriterResult::property
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_gpio_node<T: DeviceInfoForFdt + Clone + Debug>(fdt: &mut
      FdtWriter,dev_info: &T,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:851,1
    - Dst: FdtWriterResult::property
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:852,1
    - Dst: FdtWriterResult::property_array_u64
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:853,1
    - Dst: '&T::addr'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:853,1
    - Dst: '&T::length'
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:853,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:854,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:856,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - fdt
    - dev_info
    argTypes:
    - '&mut FdtWriter'
    - '&T'
    constantsTouched: []
    func_position:
      end: 857
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 857
    functionName: create_fw_cfg_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::property_array_u64
    - FdtWriterResult::end_node
    - '&T::length'
    - FdtWriterResult::begin_node
    - '&T::addr'
    - FdtWriterResult::property
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_fw_cfg_node<T: DeviceInfoForFdt + Clone + Debug>(fdt: &mut
      FdtWriter,dev_info: &T,) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:896,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:897,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:898,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:899,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - '&mut FdtWriter'
    constantsTouched: []
    func_position:
      end: 901
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 901
    functionName: create_pmu_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - FdtWriterResult::end_node
    - FdtWriterResult::property_string
    - FdtWriterResult::begin_node
    - FdtWriterResult::property_array_u32
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_pmu_node(fdt: &mut FdtWriter) -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::begin_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1047,1
    - Dst: FdtWriterResult::property_string
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1048,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1059,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1060,1
    - Dst: get
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1061,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1062,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1062,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1064,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1065,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1066,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1070,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1071,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1072,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1073,1
    - Dst: get
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1073,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1073,1
    - Dst: FdtWriterResult::property_array_u32
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1081,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1081,1
    - Dst: FdtWriterResult::end_node
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1082,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs:1084,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 78
    argCount: 2
    argNames:
    - fdt
    - numa_nodes
    argTypes:
    - '&mut FdtWriter'
    - '&NumaNodes'
    constantsTouched: []
    func_position:
      end: 1085
      start: 1046
    functionDepth: 5
    functionLinenumber: 1046
    functionLinenumberEnd: 1085
    functionName: create_distance_map_node
    functionSourceFile: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - FdtWriterResult::property_string
    - FdtWriterResult::end_node
    - FdtWriterResult::begin_node
    - Result::as_ref
    - unwrap
    - len
    - get
    - FdtWriterResult::property_array_u32
    - Result::push
    - Ok
    linkageType: ''
    returnType: FdtWriterResult
    signature: 'fn create_distance_map_node(fdt: &mut FdtWriter, numa_nodes: &NumaNodes)
      -> FdtWriterResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:73,1
    - Dst: super::Result::set_fpu
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:76,1
    - Dst: cpu::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - '&dyn hypervisor::Vcpu'
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: setup_fpu
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 2
    functionsReached:
    - super::Result::set_fpu
    - cpu::Result::map_err
    - Default::default
    linkageType: ''
    returnType: Result
    signature: 'pub fn setup_fpu(vcpu: &dyn hypervisor::Vcpu) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::Result::set_msrs
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:85,1
    - Dst: super::Result::boot_msr_entries
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:85,1
    - Dst: cpu::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:85,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - '&dyn hypervisor::Vcpu'
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: setup_msrs
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 2
    functionsReached:
    - super::Result::set_msrs
    - super::Result::boot_msr_entries
    - cpu::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn setup_msrs(vcpu: &dyn hypervisor::Vcpu) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::Result::create_standard_regs
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:98,1
    - Dst: Result::set_rflags
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:101,1
    - Dst: Result::set_rip
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:102,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:102,1
    - Dst: Result::set_rbx
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:103,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:103,1
    - Dst: Result::set_rflags
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:106,1
    - Dst: Result::set_rip
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:107,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:107,1
    - Dst: Result::set_rsp
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:108,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:108,1
    - Dst: Result::set_rsi
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:109,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:109,1
    - Dst: super::Result::set_regs
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:112,1
    - Dst: cpu::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 2
    argNames:
    - vcpu
    - entry_point
    argTypes:
    - '&dyn hypervisor::Vcpu'
    - EntryPoint
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: setup_regs
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 4
    functionsReached:
    - Result::set_rsp
    - Result::set_rsi
    - Result::set_rip
    - super::Result::create_standard_regs
    - cpu::Result::map_err
    - Result::set_rbx
    - Result::set_rflags
    - super::Result::set_regs
    - raw_value
    linkageType: ''
    returnType: Result
    signature: 'pub fn setup_regs(vcpu: &dyn hypervisor::Vcpu, entry_point: EntryPoint)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::Result::get_sregs
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:126,1
    - Dst: cpu::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:126,1
    - Dst: configure_segments_and_sregs
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:127,1
    - Dst: super::Result::set_sregs
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:128,1
    - Dst: cpu::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - mem
    - vcpu
    - enable_x2_apic_mode
    argTypes:
    - '&GuestMemoryMmap'
    - '&dyn hypervisor::Vcpu'
    - bool
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: setup_sregs
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 1
    functionsReached:
    - super::Result::set_sregs
    - cpu::Result::map_err
    - configure_segments_and_sregs
    - super::Result::get_sregs
    linkageType: ''
    returnType: Result
    signature: 'pub fn setup_sregs(mem: &GuestMemoryMmap,vcpu: &dyn hypervisor::Vcpu,enable_x2_apic_mode:
      bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:135,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:135,1
    - Dst: GuestMemoryMmap::checked_offset
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:136,1
    - Dst: mem::size_of::<u64>
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:137,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:136,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:139,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:139,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - table
    - guest_mem
    argTypes:
    - '&[u64]'
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: write_gdt_table
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 1
    functionsReached:
    - map_err
    - GuestMemoryMmap::write_obj
    - impl Iterator::enumerate
    - ok_or
    - Result::iter
    - GuestMemoryMmap::checked_offset
    - mem::size_of::<u64>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_gdt_table(table: &[u64], guest_mem: &GuestMemoryMmap) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:146,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - val
    - guest_mem
    argTypes:
    - u64
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: write_idt_value
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 1
    functionsReached:
    - map_err
    - GuestMemoryMmap::write_obj
    linkageType: ''
    returnType: Result
    signature: 'fn write_idt_value(val: u64, guest_mem: &GuestMemoryMmap) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::arch::x86::gdt::gdt_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:159,1
    - Dst: hypervisor::arch::x86::gdt::gdt_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:160,1
    - Dst: hypervisor::arch::x86::gdt::gdt_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:161,1
    - Dst: hypervisor::arch::x86::gdt::gdt_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:162,1
    - Dst: hypervisor::arch::x86::gdt::segment_from_gdt
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:166,1
    - Dst: hypervisor::arch::x86::gdt::segment_from_gdt
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:167,1
    - Dst: hypervisor::arch::x86::gdt::segment_from_gdt
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:168,1
    - Dst: write_gdt_table
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:171,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:172,1
    - Dst: mem::size_of_val
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:173,1
    - Dst: write_idt_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:175,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:176,1
    - Dst: mem::size_of::<u64>
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:177,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 81
    argCount: 3
    argNames:
    - mem
    - sregs
    - enable_x2_apic_mode
    argTypes:
    - '&GuestMemoryMmap'
    - '&mut SpecialRegisters'
    - bool
    constantsTouched: []
    func_position:
      end: 196
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 196
    functionName: configure_segments_and_sregs
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 2
    functionsReached:
    - mem::size_of_val
    - mem::size_of::<u64>
    - Ok
    - hypervisor::arch::x86::gdt::gdt_entry
    - write_idt_value
    - write_gdt_table
    - hypervisor::arch::x86::gdt::segment_from_gdt
    - raw_value
    linkageType: ''
    returnType: Result
    signature: 'pub fn configure_segments_and_sregs(mem: &GuestMemoryMmap,sregs: &mut
      SpecialRegisters,enable_x2_apic_mode: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:205,1
    - Dst: GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:205,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: unit_tests::create_guest_mem
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 0
    functionsReached:
    - GuestAddress
    - GuestMemoryMmap::from_ranges
    - unwrap
    linkageType: ''
    returnType: GuestMemoryMmap
    signature: fn create_guest_mem() -> GuestMemoryMmap
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&GuestMemoryMmap::read_obj'
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:209,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gm
    - offset
    argTypes:
    - '&GuestMemoryMmap'
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: unit_tests::read_u64
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 0
    functionsReached:
    - '&GuestMemoryMmap::read_obj'
    - unwrap
    linkageType: ''
    returnType: u64
    signature: 'fn read_u64(gm: &GuestMemoryMmap, offset: GuestAddress) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:214,1
    - Dst: create_guest_mem
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:215,1
    - Dst: configure_segments_and_sregs
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:216,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/regs.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 213
    functionDepth: 6
    functionLinenumber: 213
    functionLinenumberEnd: 245
    functionName: unit_tests::segments_and_sregs
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - create_guest_mem
    - configure_segments_and_sregs
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn segments_and_sregs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::from_raw_parts
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:53,1
    - Dst: mem::size_of::<T>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:53,1
    - Dst: iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:55,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:56,1
    - Dst: wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: compute_checksum
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs
    functionUses: 3
    functionsReached:
    - iter
    - mem::size_of::<T>
    - wrapping_add
    - slice::from_raw_parts
    - u8::wrapping_add
    linkageType: ''
    returnType: u8
    signature: 'fn compute_checksum<T: Copy>(v: &T) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:114,1
    - Dst: u8::wrapping_sub
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:114,1
    - Dst: wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&mpspec::mpf_intel'
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: mpf_intel_compute_checksum
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 1
    functionsReached:
    - wrapping_add
    - compute_checksum
    - u8::wrapping_sub
    linkageType: ''
    returnType: u8
    signature: 'fn mpf_intel_compute_checksum(v: &mpspec::mpf_intel) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::size_of::<MpfIntelWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:119,1
    - Dst: mem::size_of::<MpcTableWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:120,1
    - Dst: mem::size_of::<MpcCpuWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:121,1
    - Dst: mem::size_of::<MpcIoapicWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:122,1
    - Dst: mem::size_of::<MpcBusWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:123,1
    - Dst: mem::size_of::<MpcIntsrcWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:124,1
    - Dst: mem::size_of::<MpcLintsrcWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - num_cpus
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: compute_mp_size
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 7
    functionsReached:
    - mem::size_of::<MpcCpuWrapper>
    - mem::size_of::<MpcIntsrcWrapper>
    - mem::size_of::<MpcIoapicWrapper>
    - mem::size_of::<MpfIntelWrapper>
    - mem::size_of::<MpcLintsrcWrapper>
    - mem::size_of::<MpcBusWrapper>
    - mem::size_of::<MpcTableWrapper>
    linkageType: ''
    returnType: usize
    signature: 'fn compute_mp_size(num_cpus: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86_64::get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:137,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:140,1
    - Dst: compute_mp_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:147,1
    - Dst: Result::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:149,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:151,1
    - Dst: GuestAddress::checked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:159,1
    - Dst: GuestMemoryMmap::address_in_range
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:160,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:161,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:164,1
    - Dst: GuestMemoryMmap::read_exact_volatile_from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:167,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:167,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:167,1
    - Dst: MpfIntelWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:171,1
    - Dst: mpspec::mpf_intel::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:171,1
    - Dst: mem::size_of::<MpfIntelWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:172,1
    - Dst: GuestAddress::raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:176,1
    - Dst: mpf_intel_compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:177,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:178,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:178,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:180,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:186,1
    - Dst: mem::size_of::<MpcTableWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:186,1
    - Dst: mem::size_of::<MpcCpuWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:189,1
    - Dst: MpcCpuWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:191,1
    - Dst: mpspec::mpc_cpu::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:191,1
    - Dst: x86_64::get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:193,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:203,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:203,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:205,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:206,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:206,1
    - Dst: mem::size_of::<MpcBusWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:210,1
    - Dst: MpcBusWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:211,1
    - Dst: mpspec::mpc_bus::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:211,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:215,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:215,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:217,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:218,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:218,1
    - Dst: mem::size_of::<MpcIoapicWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:221,1
    - Dst: MpcIoapicWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:222,1
    - Dst: mpspec::mpc_ioapic::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:222,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:228,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:228,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:230,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:231,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:231,1
    - Dst: mem::size_of::<MpcIntsrcWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:235,1
    - Dst: MpcIntsrcWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:236,1
    - Dst: mpspec::mpc_intsrc::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:236,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:244,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:244,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:246,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:247,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:247,1
    - Dst: mem::size_of::<MpcLintsrcWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:250,1
    - Dst: MpcLintsrcWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:251,1
    - Dst: mpspec::mpc_lintsrc::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:251,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:259,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:259,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:261,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:262,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:262,1
    - Dst: mem::size_of::<MpcLintsrcWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:265,1
    - Dst: MpcLintsrcWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:266,1
    - Dst: mpspec::mpc_lintsrc::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:266,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:274,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:274,1
    - Dst: GuestAddress::unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:276,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:277,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:277,1
    - Dst: MpcTableWrapper
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:284,1
    - Dst: mpspec::mpc_table::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:284,1
    - Dst: GuestAddress::unchecked_offset_from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:286,1
    - Dst: u8::wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:291,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:291,1
    - Dst: wrapping_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:292,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:293,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:293,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:297,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 463
    argCount: 4
    argNames:
    - offset
    - mem
    - num_cpus
    - topology
    argTypes:
    - GuestAddress
    - '&GuestMemoryMmap'
    - u32
    - Option<(u16, u16, u16, u16)>
    constantsTouched: []
    func_position:
      end: 298
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 298
    functionName: setup_mptable
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 7
    functionsReached:
    - GuestAddress::unchecked_offset_from
    - map_err
    - GuestMemoryMmap::read_exact_volatile_from
    - MpcTableWrapper
    - Result::unchecked_add
    - GuestAddress::unchecked_add
    - MpcLintsrcWrapper
    - MpcCpuWrapper
    - MpcBusWrapper
    - Ok
    - GuestMemoryMmap::write_obj
    - GuestMemoryMmap::address_in_range
    - mem::size_of::<MpcIoapicWrapper>
    - as_slice
    - u8::wrapping_add
    - mem::size_of::<MpcTableWrapper>
    - mpspec::mpf_intel::default
    - GuestAddress::raw_value
    - mpf_intel_compute_checksum
    - mem::size_of::<MpcCpuWrapper>
    - MpcIoapicWrapper
    - mem::size_of::<MpcIntsrcWrapper>
    - mpspec::mpc_lintsrc::default
    - MpcIntsrcWrapper
    - Err
    - mpspec::mpc_ioapic::default
    - compute_mp_size
    - mpspec::mpc_cpu::default
    - compute_checksum
    - mpspec::mpc_table::default
    - mpspec::mpc_intsrc::default
    - MpfIntelWrapper
    - wrapping_add
    - x86_64::get_x2apic_id
    - GuestAddress::checked_add
    - mem::size_of::<MpfIntelWrapper>
    - mem::size_of::<MpcLintsrcWrapper>
    - mpspec::mpc_bus::default
    - mem::size_of::<MpcBusWrapper>
    linkageType: ''
    returnType: Result
    signature: 'pub fn setup_mptable(offset: GuestAddress,mem: &GuestMemoryMmap,num_cpus:
      u32,topology: Option<(u16, u16, u16, u16)>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::size_of::<MpcCpuWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:310,1
    - Dst: mem::size_of::<MpcBusWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:311,1
    - Dst: mem::size_of::<MpcIoapicWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:312,1
    - Dst: mem::size_of::<MpcIntsrcWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:313,1
    - Dst: mem::size_of::<MpcLintsrcWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type_
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: unit_tests::table_entry_size
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 0
    functionsReached:
    - mem::size_of::<MpcCpuWrapper>
    - mem::size_of::<MpcIntsrcWrapper>
    - mem::size_of::<MpcIoapicWrapper>
    - mem::size_of::<MpcLintsrcWrapper>
    - mem::size_of::<MpcBusWrapper>
    linkageType: ''
    returnType: usize
    signature: 'fn table_entry_size(type_: u8) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:323,1
    - Dst: compute_mp_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:323,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:323,1
    - Dst: setup_mptable
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:325,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 326
    functionName: unit_tests::bounds_check
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::from_ranges
    - compute_mp_size
    - unwrap
    - setup_mptable
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn bounds_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:331,1
    - Dst: compute_mp_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:331,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:331,1
    - Dst: setup_mptable
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:334,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: unit_tests::bounds_check_fails
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::from_ranges
    - compute_mp_size
    - unwrap
    - setup_mptable
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn bounds_check_fails()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:341,1
    - Dst: compute_mp_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:341,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:341,1
    - Dst: setup_mptable
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:343,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:343,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:345,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 351
    functionName: unit_tests::mpf_intel_checksum
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::read_obj
    - GuestMemoryMmap::from_ranges
    - compute_mp_size
    - unwrap
    - setup_mptable
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn mpf_intel_checksum()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:357,1
    - Dst: compute_mp_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:357,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:357,1
    - Dst: setup_mptable
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:359,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:359,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:361,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:361,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:362,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:363,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:363,1
    - Dst: Sum
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:382,1
    - Dst: GuestMemoryMmap::write_volatile_to
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:383,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 354
    functionDepth: 6
    functionLinenumber: 354
    functionLinenumberEnd: 386
    functionName: unit_tests::mpc_table_checksum
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::read_obj
    - vm_memory::GuestAddress
    - GuestMemoryMmap::from_ranges
    - Sum
    - compute_mp_size
    - unwrap
    - GuestMemoryMmap::write_volatile_to
    - setup_mptable
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn mpc_table_checksum()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:390,1
    - Dst: compute_mp_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:392,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:390,1
    - Dst: setup_mptable
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:397,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:397,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:399,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:399,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:400,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:401,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:401,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:402,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:402,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:406,1
    - Dst: mem::size_of::<MpcTableWrapper>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:407,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:406,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:411,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:411,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:412,1
    - Dst: table_entry_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:413,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 389
    functionDepth: 6
    functionLinenumber: 389
    functionLinenumberEnd: 422
    functionName: unit_tests::cpu_entry_count
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 0
    functionsReached:
    - table_entry_size
    - GuestMemoryMmap::read_obj
    - vm_memory::GuestAddress
    - GuestMemoryMmap::from_ranges
    - compute_mp_size
    - unwrap
    - setup_mptable
    - checked_add
    - Result::unwrap
    - mem::size_of::<MpcTableWrapper>
    linkageType: ''
    returnType: void
    signature: fn cpu_entry_count()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:427,1
    - Dst: compute_mp_size
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:427,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:427,1
    - Dst: setup_mptable
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:429,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: unit_tests::cpu_entry_count_max
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::from_ranges
    - compute_mp_size
    - unwrap
    - setup_mptable
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn cpu_entry_count_max()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: leading_zeros
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:168,1
    - Dst: leading_zeros
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:169,1
    - Dst: leading_zeros
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 2
    argNames:
    - cpu_id
    - topology
    argTypes:
    - u32
    - Option<(u16, u16, u16, u16)>
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 184
    functionName: get_x2apic_id
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 9
    functionsReached:
    - leading_zeros
    linkageType: ''
    returnType: u32
    signature: 'pub fn get_x2apic_id(cpu_id: u32, topology: Option<(u16, u16, u16,
      u16)>) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:187,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - topology
    argTypes:
    - (u16, u16, u16, u16)
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: get_max_x2apic_id
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 2
    functionsReached:
    - Some
    - get_x2apic_id
    linkageType: ''
    returnType: u32
    signature: 'pub fn get_max_x2apic_id(topology: (u16, u16, u16, u16)) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:218,1
    - Dst: '&T::is_none'
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:219,1
    - Dst: '&T::unwrap'
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:219,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:221,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:222,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:223,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - cpuid
    - function
    - index
    - reg
    argTypes:
    - '&[CpuIdEntry]'
    - u32
    - Option<u32>
    - CpuidReg
    constantsTouched: []
    func_position:
      end: 230
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 230
    functionName: CpuidPatch::get_cpuid_reg
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - '&T::unwrap'
    - iter
    - '&T::is_none'
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_cpuid_reg(cpuid: &[CpuIdEntry],function: u32,index: Option<u32>,reg:
      CpuidReg,) -> Option<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:240,1
    - Dst: '&T::is_none'
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:241,1
    - Dst: '&T::unwrap'
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:241,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:270,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 5
    argNames:
    - cpuid
    - function
    - index
    - reg
    - value
    argTypes:
    - '&mut Vec<CpuIdEntry>'
    - u32
    - Option<u32>
    - CpuidReg
    - u32
    constantsTouched: []
    func_position:
      end: 289
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 289
    functionName: CpuidPatch::set_cpuid_reg
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 2
    functionsReached:
    - Default::default
    - push
    - '&T::is_none'
    - '&T::unwrap'
    - iter_mut
    linkageType: ''
    returnType: void
    signature: 'pub fn set_cpuid_reg(cpuid: &mut Vec<CpuIdEntry>,function: u32,index:
      Option<u32>,reg: CpuidReg,value: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[CpuidPatch]::iter'
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 2
    argNames:
    - cpuid
    - patches
    argTypes:
    - '&mut [CpuIdEntry]'
    - '&[CpuidPatch]'
    constantsTouched: []
    func_position:
      end: 313
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 313
    functionName: CpuidPatch::patch_cpuid
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 2
    functionsReached:
    - '&[CpuidPatch]::iter'
    linkageType: ''
    returnType: void
    signature: 'pub fn patch_cpuid(cpuid: &mut [CpuIdEntry], patches: &[CpuidPatch])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - cpuid
    - function
    - index
    - reg
    - feature_bit
    argTypes:
    - '&[CpuIdEntry]'
    - u32
    - u32
    - CpuidReg
    - usize
    constantsTouched: []
    func_position:
      end: 338
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 338
    functionName: CpuidPatch::is_feature_enabled
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_feature_enabled(cpuid: &[CpuIdEntry],function: u32,index:
      u32,reg: CpuidReg,feature_bit: usize,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 470
    functionName: CpuidFeatureEntry::checked_feature_entry_list
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn checked_feature_entry_list() -> Vec<CpuidFeatureEntry>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:477,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - cpuid
    - feature_entry_list
    argTypes:
    - '&[CpuIdEntry]'
    - '&[CpuidFeatureEntry]'
    constantsTouched: []
    func_position:
      end: 503
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 503
    functionName: CpuidFeatureEntry::get_features_from_cpuid
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::enumerate
    - Vec::iter
    linkageType: ''
    returnType: Vec
    signature: 'fn get_features_from_cpuid(cpuid: &[CpuIdEntry],feature_entry_list:
      &[CpuidFeatureEntry],) -> Vec<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::checked_feature_entry_list
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:511,1
    - Dst: Self::get_features_from_cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:512,1
    - Dst: Self::get_features_from_cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:513,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:518,1
    - Dst: impl Iterator::zip
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:518,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:520,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:518,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:551,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - src_vm_cpuid
    - dest_vm_cpuid
    argTypes:
    - '&[CpuIdEntry]'
    - '&[CpuIdEntry]'
    constantsTouched: []
    func_position:
      end: 555
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 555
    functionName: CpuidFeatureEntry::check_cpuid_compatibility
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - Self::get_features_from_cpuid
    - Err
    - impl Iterator::zip
    - Vec::iter
    - enumerate
    - Self::checked_feature_entry_list
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn check_cpuid_compatibility(src_vm_cpuid: &[CpuIdEntry],dest_vm_cpuid:
      &[CpuIdEntry],) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:564,1
    - Dst: x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:566,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:569,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:569,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:570,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:570,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:571,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:571,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:613,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:619,1
    - Dst: Result::get_supported_cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:625,1
    - Dst: hypervisor::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:625,1
    - Dst: CpuidPatch::patch_cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:629,1
    - Dst: Result::tdx_capabilities
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:633,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:633,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:637,1
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:643,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:643,1
    - Dst: std::arch::x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:700,1
    - Dst: std::arch::x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:702,1
    - Dst: std::arch::x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:715,1
    - Dst: std::arch::x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:718,1
    - Dst: retain
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:752,1
    - Dst: std::arch::x86_64::__cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:755,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:756,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:762,1
    - Dst: retain
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:768,1
    - Dst: retain
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:769,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:772,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:778,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:780,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:783,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:785,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:789,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:791,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:798,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:800,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:803,1
    - Dst: push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:806,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:808,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:813,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 410
    argCount: 2
    argNames:
    - hypervisor
    - config
    argTypes:
    - '&dyn hypervisor::Hypervisor'
    - '&CpuidConfig'
    constantsTouched: []
    func_position:
      end: 814
      start: 558
    functionDepth: 8
    functionLinenumber: 558
    functionLinenumberEnd: 814
    functionName: generate_common_cpuid
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 4
    functionsReached:
    - Result::get_supported_cpuid
    - hypervisor::Result::map_err
    - x86_64::__cpuid
    - std::arch::x86_64::__cpuid
    - '&mut [T]::iter_mut'
    - Default::default
    - to_le_bytes
    - retain
    - push
    - CpuidPatch::patch_cpuid
    - Result::map_err
    - copy_from_slice
    - as_mut_slice
    - Some
    - Result::tdx_capabilities
    - Ok
    linkageType: ''
    returnType: super::Result
    signature: 'pub fn generate_common_cpuid(hypervisor: &dyn hypervisor::Hypervisor,config:
      &CpuidConfig,) -> super::Result<Vec<CpuIdEntry>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1006,1
    - Dst: GuestMemoryMmap::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1007,1
    - Dst: impl Iterator::next
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1007,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1007,1
    - Dst: Self::expect
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1007,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1007,1
    - Dst: GuestMemoryMmap::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1015,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1015,1
    - Dst: super::Result::start_addr
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1017,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1017,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1017,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1023,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1030,1
    - Dst: Result::first
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1042,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1042,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1043,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1044,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1055,1
    - Dst: super::Result::push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1064,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1067,1
    - Dst: impl Iterator::skip
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1067,1
    - Dst: super::Result::push
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1073,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1076,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 88
    argCount: 1
    argNames:
    - guest_mem
    argTypes:
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 1077
      start: 1002
    functionDepth: 5
    functionLinenumber: 1002
    functionLinenumberEnd: 1077
    functionName: generate_ram_ranges
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 2
    functionsReached:
    - ok_or
    - impl Iterator::next
    - impl Iterator::map
    - super::Result::len
    - Option::map
    - Vec::new
    - Result::raw_value
    - Self::expect
    - GuestMemoryMmap::iter
    - Err
    - super::Result::push
    - Result::iter
    - Ok
    - super::Result::start_addr
    - Result::first
    - impl Iterator::skip
    - Result::push
    - raw_value
    linkageType: ''
    returnType: super::Result
    signature: 'pub fn generate_ram_ranges(guest_mem: &GuestMemoryMmap) -> super::Result<Vec<RamRange>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestAddress::raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1091,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1092,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1093,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1104,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1106,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1110,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1113,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1113,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1120,1
    - Dst: add_memmap_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1123,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1123,1
    - Dst: generate_ram_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1126,1
    - Dst: add_memmap_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1134,1
    - Dst: add_memmap_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1142,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1149,1
    - Dst: GuestMemoryMmap::checked_offset
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1155,1
    - Dst: mem::size_of::<hvm_memmap_table_entry>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1158,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1155,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1164,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1164,1
    - Dst: unchecked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1168,1
    - Dst: mem::size_of::<hvm_memmap_table_entry>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1168,1
    - Dst: GuestMemoryMmap::checked_offset
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1176,1
    - Dst: mem::size_of::<hvm_start_info>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1177,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1176,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1181,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1181,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1185,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 103
    argCount: 4
    argNames:
    - guest_mem
    - cmdline_addr
    - initramfs
    - rsdp_addr
    argTypes:
    - '&GuestMemoryMmap'
    - GuestAddress
    - '&Option<InitramfsConfig>'
    - Option<GuestAddress>
    constantsTouched: []
    func_position:
      end: 1186
      start: 1079
    functionDepth: 6
    functionLinenumber: 1079
    functionLinenumberEnd: 1186
    functionName: configure_pvh
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - GuestAddress::raw_value
    - map_err
    - GuestMemoryMmap::write_obj
    - Default::default
    - Vec::new
    - unchecked_add
    - add_memmap_entry
    - Result::len
    - mem::size_of::<hvm_memmap_table_entry>
    - mem::size_of::<hvm_start_info>
    - Ok
    - ok_or
    - generate_ram_ranges
    - GuestMemoryMmap::checked_offset
    - raw_value
    linkageType: ''
    returnType: super::Result
    signature: 'fn configure_pvh(guest_mem: &GuestMemoryMmap,cmdline_addr: GuestAddress,initramfs:
      &Option<InitramfsConfig>,rsdp_addr: Option<GuestAddress>,) -> super::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1201,1
    - Dst: GuestAddress::raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1208,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1212,1
    - Dst: add_e820_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1216,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1216,1
    - Dst: GuestMemoryMmap::last_addr
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1218,1
    - Dst: add_e820_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1220,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1222,1
    - Dst: unchecked_offset_from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1223,1
    - Dst: add_e820_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1227,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1229,1
    - Dst: unchecked_offset_from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1230,1
    - Dst: add_e820_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1234,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1236,1
    - Dst: unchecked_offset_from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1237,1
    - Dst: add_e820_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1243,1
    - Dst: GuestMemoryMmap::checked_offset
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1255,1
    - Dst: mem::size_of::<boot_params>
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1256,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1255,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1258,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1258,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1262,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 105
    argCount: 6
    argNames:
    - guest_mem
    - cmdline_addr
    - cmdline_size
    - initramfs
    - setup_hdr
    - rsdp_addr
    argTypes:
    - '&GuestMemoryMmap'
    - GuestAddress
    - usize
    - '&Option<InitramfsConfig>'
    - setup_header
    - Option<GuestAddress>
    constantsTouched: []
    func_position:
      end: 1263
      start: 1188
    functionDepth: 6
    functionLinenumber: 1188
    functionLinenumberEnd: 1263
    functionName: configure_32bit_entry
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - add_e820_entry
    - GuestAddress::raw_value
    - map_err
    - Default::default
    - mem::size_of::<boot_params>
    - GuestMemoryMmap::write_obj
    - unchecked_offset_from
    - Ok
    - GuestMemoryMmap::last_addr
    - ok_or
    - GuestMemoryMmap::checked_offset
    - raw_value
    linkageType: ''
    returnType: super::Result
    signature: 'fn configure_32bit_entry(guest_mem: &GuestMemoryMmap,cmdline_addr:
      GuestAddress,cmdline_size: usize,initramfs: &Option<InitramfsConfig>,setup_hdr:
      setup_header,rsdp_addr: Option<GuestAddress>,) -> super::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1273,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1274,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 4
    argNames:
    - params
    - addr
    - size
    - mem_type
    argTypes:
    - '&mut boot_params'
    - u64
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 1283
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1283
    functionName: add_e820_entry
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 2
    functionsReached:
    - Ok
    - len
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn add_e820_entry(params: &mut boot_params,addr: u64,size: u64,mem_type:
      u32,) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Vec<hvm_memmap_table_entry>::push'
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - memmap
    - addr
    - size
    - mem_type
    argTypes:
    - '&mut Vec<hvm_memmap_table_entry>'
    - u64
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 1293
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1293
    functionName: add_memmap_entry
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 2
    functionsReached:
    - '&mut Vec<hvm_memmap_table_entry>::push'
    linkageType: ''
    returnType: void
    signature: 'fn add_memmap_entry(memmap: &mut Vec<hvm_memmap_table_entry>, addr:
      u64, size: u64, mem_type: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1350,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1352,1
    - Dst: leading_zeros
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1356,1
    - Dst: leading_zeros
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1357,1
    - Dst: leading_zeros
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1358,1
    - Dst: CpuidPatch::get_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1362,1
    - Dst: Option::unwrap_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1362,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1365,1
    - Dst: CpuidPatch::get_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1367,1
    - Dst: Option::unwrap_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1367,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1369,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1373,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1373,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1374,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1377,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1379,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1381,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1381,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1383,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1383,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1384,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1387,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1389,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1391,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1391,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1392,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1392,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1396,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1396,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1397,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1400,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1402,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1404,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1404,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1405,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1405,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1407,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1407,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1408,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1411,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1413,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1415,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1415,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1416,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1416,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1418,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1418,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1419,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1422,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1424,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1426,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1426,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1427,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1427,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1430,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1433,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1437,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1440,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1444,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1444,1
    - Dst: CpuidPatch::get_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1447,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1447,1
    - Dst: Option::unwrap_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1447,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1448,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1451,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1455,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1458,1
    - Dst: CpuidPatch::patch_cpuid
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1474,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1475,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1478,1
    - Dst: CpuidPatch::set_cpuid_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1484,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 197
    argCount: 7
    argNames:
    - cpuid
    - threads_per_core
    - cores_per_die
    - dies_per_package
    - packages
    - cpu_vendor
    - id
    argTypes:
    - '&mut Vec<CpuIdEntry>'
    - u16
    - u16
    - u16
    - u16
    - CpuVendor
    - u32
    constantsTouched: []
    func_position:
      end: 1487
      start: 1341
    functionDepth: 7
    functionLinenumber: 1341
    functionLinenumberEnd: 1487
    functionName: update_cpuid_topology
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - CpuidPatch::get_cpuid_reg
    - leading_zeros
    - u32::from
    - Option::unwrap_or
    - CpuidPatch::patch_cpuid
    - CpuidPatch::set_cpuid_reg
    - Some
    - get_x2apic_id
    linkageType: ''
    returnType: void
    signature: 'fn update_cpuid_topology(cpuid: &mut Vec<CpuIdEntry>,threads_per_core:
      u16,cores_per_die: u16,dies_per_package: u16,packages: u16,cpu_vendor: CpuVendor,id:
      u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arch_memory_regions
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1500
    functionName: unit_tests::regions_base_addr
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - arch_memory_regions
    linkageType: ''
    returnType: void
    signature: fn regions_base_addr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1505,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1505,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1505,1
    - Dst: configure_system
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1506,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1508,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1513,1
    - Dst: super::Result::unwrap_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1519,1
    - Dst: arch_memory_regions
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1522,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1523,1
    - Dst: impl Iterator::filter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1523,1
    - Dst: Result::map
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1523,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1523,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1528,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1528,1
    - Dst: configure_system
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1530,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1532,1
    - Dst: super::Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1530,1
    - Dst: arch_memory_regions
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1546,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1547,1
    - Dst: impl Iterator::filter
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1547,1
    - Dst: Result::map
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1547,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1547,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1558,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1558,1
    - Dst: configure_system
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1559,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1561,1
    - Dst: super::Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1559,1
    - Dst: configure_system
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1574,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1576,1
    - Dst: super::Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1503
    functionDepth: 8
    functionLinenumber: 1503
    functionLinenumberEnd: 1588
    functionName: unit_tests::test_system_configuration
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - configure_system
    - GuestMemoryMmap::from_ranges
    - impl Iterator::filter
    - arch_memory_regions
    - super::Result::unwrap_err
    - super::Result::unwrap
    - unwrap
    - Vec::iter
    - Self::collect
    - Some
    - Result::map
    linkageType: ''
    returnType: void
    signature: fn test_system_configuration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1601,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1604,1
    - Dst: add_e820_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1605,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1605,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1620,1
    - Dst: add_e820_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1621,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1591
    functionDepth: 6
    functionLinenumber: 1591
    functionLinenumberEnd: 1628
    functionName: unit_tests::test_add_e820_entry
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - add_e820_entry
    - Default::default
    - len
    - Result::unwrap
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_add_e820_entry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1632,1
    - Dst: add_memmap_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1649,1
    - Dst: add_memmap_entry
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1631
    functionDepth: 5
    functionLinenumber: 1631
    functionLinenumberEnd: 1653
    functionName: unit_tests::test_add_memmap_entry
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - add_memmap_entry
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_add_memmap_entry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1657,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1657,1
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1660,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1660,1
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1663,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1663,1
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1666,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1666,1
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1669,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1669,1
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1672,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1672,1
    - Dst: get_x2apic_id
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1675,1
    - Dst: Some
      Src: /src/cloud-hypervisor/arch/src/x86_64/mod.rs:1675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1679
    functionName: unit_tests::test_get_x2apic_id
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - get_x2apic_id
    linkageType: ''
    returnType: void
    signature: fn test_get_x2apic_id()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:146,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:146,1
    - Dst: GuestAddress::checked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:147,1
    - Dst: mem::size_of::<T>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:148,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:147,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - mem
    - val
    - curptr
    argTypes:
    - '&GuestMemoryMmap'
    - T
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: write_and_incr
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs
    functionUses: 2
    functionsReached:
    - mem::size_of::<T>
    - map_err
    - GuestMemoryMmap::write_obj
    - GuestAddress::checked_add
    - ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_and_incr<T: ByteValued>(mem: &GuestMemoryMmap,val: T,mut
      curptr: GuestAddress,) -> Result<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::as_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:158,1
    - Dst: '&[u8]::iter'
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:158,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:159,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:161,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - mem
    - val
    - curptr
    argTypes:
    - '&GuestMemoryMmap'
    - '&str'
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: write_string
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs
    functionUses: 1
    functionsReached:
    - write_and_incr
    - '&[u8]::iter'
    - Result::as_bytes
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_string(mem: &GuestMemoryMmap,val: &str,mut curptr: GuestAddress,)
      -> Result<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:171,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:171,1
    - Dst: mem::size_of::<Smbios30Entrypoint>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:172,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:171,1
    - Dst: mem::size_of::<SmbiosBiosInfo>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:181,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:187,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:189,1
    - Dst: write_string
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:190,1
    - Dst: write_string
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:191,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:192,1
    - Dst: map
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:198,1
    - Dst: Self::transpose
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:198,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:198,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:198,1
    - Dst: Uuid::nil
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:202,1
    - Dst: mem::size_of::<SmbiosSysInfo>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:205,1
    - Dst: map
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:209,1
    - Dst: Self::unwrap_or_default
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:209,1
    - Dst: to_bytes_le
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:210,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:211,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:213,1
    - Dst: write_string
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:214,1
    - Dst: write_string
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:215,1
    - Dst: write_string
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:217,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:219,1
    - Dst: mem::size_of::<SmbiosOemStrings>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:227,1
    - Dst: len
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:229,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:232,1
    - Dst: write_string
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:235,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:238,1
    - Dst: mem::size_of::<SmbiosEndOfTable>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:245,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:248,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:249,1
    - Dst: write_and_incr
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:250,1
    - Dst: mem::size_of::<Smbios30Entrypoint>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:256,1
    - Dst: physptr::unchecked_offset_from
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:262,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:264,1
    - Dst: compute_checksum
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:266,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:267,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:267,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:267,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:271,1
    - Dst: physptr::unchecked_offset_from
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:271,1
    - Dst: std::mem::size_of::<Smbios30Entrypoint>
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:271,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 144
    argCount: 4
    argNames:
    - mem
    - serial_number
    - uuid
    - oem_strings
    argTypes:
    - '&GuestMemoryMmap'
    - Option<&str>
    - Option<&str>
    - Option<&[&str]>
    constantsTouched: []
    func_position:
      end: 272
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 272
    functionName: setup_smbios
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs
    functionUses: 2
    functionsReached:
    - mem::size_of::<SmbiosEndOfTable>
    - map_err
    - to_bytes_le
    - ok_or
    - physptr::unchecked_offset_from
    - checked_add
    - Ok
    - Self::transpose
    - Default::default
    - GuestMemoryMmap::write_obj
    - write_and_incr
    - len
    - mem::size_of::<SmbiosSysInfo>
    - Self::unwrap_or_default
    - vm_memory::GuestAddress
    - write_string
    - Uuid::nil
    - mem::size_of::<SmbiosOemStrings>
    - compute_checksum
    - unwrap_or
    - map
    - std::mem::size_of::<Smbios30Entrypoint>
    - mem::size_of::<Smbios30Entrypoint>
    - mem::size_of::<SmbiosBiosInfo>
    linkageType: ''
    returnType: Result
    signature: 'pub fn setup_smbios(mem: &GuestMemoryMmap,serial_number: Option<&str>,uuid:
      Option<&str>,oem_strings: Option<&[&str]>,) -> Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: unit_tests::struct_size
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn struct_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:299,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:299,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:299,1
    - Dst: setup_smbios
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:301,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:301,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:303,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:303,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 7
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: unit_tests::entrypoint_checksum
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::read_obj
    - vm_memory::GuestAddress
    - GuestMemoryMmap::from_ranges
    - unwrap
    - Result::unwrap
    - setup_smbios
    linkageType: ''
    returnType: void
    signature: fn entrypoint_checksum()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - reg
    - mode
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: set_apic_delivery_mode
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: 'pub fn set_apic_delivery_mode(reg: u32, mode: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::Result::get_lapic
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:27,1
    - Dst: get_klapic_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:29,1
    - Dst: set_klapic_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:30,1
    - Dst: set_apic_delivery_mode
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:32,1
    - Dst: get_klapic_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:34,1
    - Dst: set_klapic_reg
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:35,1
    - Dst: set_apic_delivery_mode
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:35,1
    - Dst: super::Result::set_lapic
      Src: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - '&dyn hypervisor::Vcpu'
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: set_lint
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs
    functionUses: 2
    functionsReached:
    - set_klapic_reg
    - set_apic_delivery_mode
    - super::Result::get_lapic
    - super::Result::set_lapic
    - get_klapic_reg
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_lint(vcpu: &dyn hypervisor::Vcpu) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:76,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:76,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:76,1
    - Dst: Vec::read_exact
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:79,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:79,1
    - Dst: Uuid::from_slice_le
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:82,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:82,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:82,1
    - Dst: Uuid::from_str
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:83,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:83,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:86,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:86,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:86,1
    - Dst: Vec::read_exact
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:89,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:89,1
    - Dst: u16::from_le_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:91,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:95,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:95,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:95,1
    - Dst: Vec::read_exact
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:97,1
    - Dst: Result::as_mut_slice
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:97,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:97,1
    - Dst: Uuid::from_slice_le
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:106,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:106,1
    - Dst: u16::from_le_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:109,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:109,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:109,1
    - Dst: Uuid::from_str
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:124,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:124,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:126,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:127,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:128,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:128,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:128,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:143,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:143,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:143,1
    - Dst: Vec::read_exact
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:147,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:147,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:150,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:151,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:151,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 142
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 154
      start: 74
    functionDepth: 7
    functionLinenumber: 74
    functionLinenumberEnd: 154
    functionName: tdvf_descriptor_offset
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 1
    functionsReached:
    - Uuid::from_str
    - Vec::read_exact
    - map_err
    - try_into
    - SeekFrom::End
    - std::result::Result::map_err
    - std::io::Result::map_err
    - Uuid::from_slice_le
    - Result::as_mut_slice
    - SeekFrom::Start
    - u32::from_le_bytes
    - unwrap
    - Vec::seek
    - as_slice
    - u16::from_le_bytes
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn tdvf_descriptor_offset(file: &mut File) -> Result<(SeekFrom, bool),
      TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tdvf_descriptor_offset
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:157,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:159,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:159,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:162,1
    - Dst: Vec::read_exact
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:164,1
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:165,1
    - Dst: std::mem::size_of::<TdvfDescriptor>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:167,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:164,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:173,1
    - Dst: std::mem::size_of::<TdvfDescriptor>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:177,1
    - Dst: std::mem::size_of::<TdvfSection>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:178,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:180,1
    - Dst: Err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:184,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:187,1
    - Dst: Result::resize_with
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:188,1
    - Dst: Vec::read_exact
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:191,1
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:192,1
    - Dst: Result::as_mut_ptr
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:193,1
    - Dst: std::mem::size_of::<TdvfSection>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:194,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:191,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 71
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 200
      start: 156
    functionDepth: 8
    functionLinenumber: 156
    functionLinenumberEnd: 200
    functionName: parse_tdvf_sections
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 2
    functionsReached:
    - Vec::read_exact
    - map_err
    - Default::default
    - Vec::new
    - Result::resize_with
    - std::io::Result::map_err
    - Err
    - std::mem::size_of::<TdvfDescriptor>
    - std::slice::from_raw_parts_mut
    - std::mem::size_of::<TdvfSection>
    - Result::as_mut_ptr
    - Vec::seek
    - tdvf_descriptor_offset
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_tdvf_sections(file: &mut File) -> Result<(Vec<TdvfSection>,
      bool), TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::result::Result::div_ceil
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: align_hob
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 2
    functionsReached:
    - std::result::Result::div_ceil
    linkageType: ''
    returnType: u64
    signature: 'fn align_hob(v: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: align_hob
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:308,1
    - Dst: std::mem::size_of::<T>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: TdHob::update_offset
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of::<T>
    - align_hob
    linkageType: ''
    returnType: void
    signature: fn update_offset<T>(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_offset::<HobHandoffInfoTable>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: TdHob::start
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 1
    functionsReached:
    - update_offset::<HobHandoffInfoTable>
    linkageType: ''
    returnType: TdHob
    signature: 'pub fn start(offset: u64) -> TdHob'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<HobHeader>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:325,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:329,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:329,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:329,1
    - Dst: update_offset::<HobHeader>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:331,1
    - Dst: std::mem::size_of::<HobHandoffInfoTable>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:338,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:350,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:350,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - mem
    argTypes:
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 352
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 352
    functionName: TdHob::finish
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - GuestMemoryMmap::write_obj
    - std::mem::size_of::<HobHeader>
    - update_offset::<HobHeader>
    - std::mem::size_of::<HobHandoffInfoTable>
    linkageType: ''
    returnType: Result
    signature: 'pub fn finish(&mut self, mem: &GuestMemoryMmap) -> Result<(), TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<HobResourceDescriptor>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:365,1
    - Dst: EfiGuid::default
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:368,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:378,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:378,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:378,1
    - Dst: update_offset::<HobResourceDescriptor>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:380,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 5
    argNames:
    - mem
    - physical_start
    - resource_length
    - resource_type
    - resource_attribute
    argTypes:
    - '&GuestMemoryMmap'
    - u64
    - u64
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 382
      start: 354
    functionDepth: 6
    functionLinenumber: 354
    functionLinenumberEnd: 382
    functionName: TdHob::add_resource
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 2
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - GuestMemoryMmap::write_obj
    - EfiGuid::default
    - update_offset::<HobResourceDescriptor>
    - std::mem::size_of::<HobResourceDescriptor>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_resource(&mut self,mem: &GuestMemoryMmap,physical_start:
      u64,resource_length: u64,resource_type: u32,resource_attribute: u32,) -> Result<(),
      TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdHob::add_resource
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - mem
    - physical_start
    - resource_length
    - ram
    - guid_found
    argTypes:
    - '&GuestMemoryMmap'
    - u64
    - u64
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 414
      start: 384
    functionDepth: 7
    functionLinenumber: 384
    functionLinenumberEnd: 414
    functionName: TdHob::add_memory_resource
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 0
    functionsReached:
    - TdHob::add_resource
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_memory_resource(&mut self,mem: &GuestMemoryMmap,physical_start:
      u64,resource_length: u64,ram: bool,guid_found: bool,) -> Result<(), TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdHob::add_resource
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mem
    - physical_start
    - resource_length
    argTypes:
    - '&GuestMemoryMmap'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 432
      start: 416
    functionDepth: 7
    functionLinenumber: 416
    functionLinenumberEnd: 432
    functionName: TdHob::add_mmio_resource
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 0
    functionsReached:
    - TdHob::add_resource
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_mmio_resource(&mut self,mem: &GuestMemoryMmap,physical_start:
      u64,resource_length: u64,) -> Result<(), TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<HobGuidType>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:442,1
    - Dst: align_hob
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:443,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:443,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:463,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:463,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:463,1
    - Dst: std::mem::size_of::<HobGuidType>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:465,1
    - Dst: GuestMemoryMmap::write
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:471,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:474,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:471,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:478,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 2
    argNames:
    - mem
    - table_content
    argTypes:
    - '&GuestMemoryMmap'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 485
      start: 434
    functionDepth: 9
    functionLinenumber: 434
    functionLinenumberEnd: 485
    functionName: TdHob::add_acpi_table
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - GuestMemoryMmap::write
    - map_err
    - GuestMemoryMmap::write_obj
    - '&[u8]::len'
    - IoResult::map_err
    - align_hob
    - std::mem::size_of::<HobGuidType>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_acpi_table(&mut self,mem: &GuestMemoryMmap,table_content:
      &[u8],) -> Result<(), TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<TdPayload>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:496,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:514,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:514,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:514,1
    - Dst: update_offset::<TdPayload>
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:516,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - mem
    - payload_info
    argTypes:
    - '&GuestMemoryMmap'
    - PayloadInfo
    constantsTouched: []
    func_position:
      end: 519
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 519
    functionName: TdHob::add_payload
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - GuestMemoryMmap::write_obj
    - std::mem::size_of::<TdPayload>
    - update_offset::<TdPayload>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_payload(&mut self,mem: &GuestMemoryMmap,payload_info: PayloadInfo,)
      -> Result<(), TdvfError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::File::open
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:529,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:529,1
    - Dst: parse_tdvf_sections
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:530,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 9
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: unit_tests::test_parse_tdvf_sections
    functionSourceFile: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
    functionUses: 0
    functionsReached:
    - std::fs::File::open
    - unwrap
    - Result::unwrap
    - parse_tdvf_sections
    linkageType: ''
    returnType: void
    signature: fn test_parse_tdvf_sections()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 8
    functionName: main
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/build.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Tap'
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Tap::eq
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Tap) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:77,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:77,1
    - Dst: clone
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Tap::clone
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - try_clone
    - unwrap
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::as_bytes
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:88,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:90,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:91,1
    - Dst: Error::IfnameTooLong
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:91,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:91,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:95,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:95,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - if_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: build_terminated_if_name
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 1
    functionsReached:
    - '&[u8]::len'
    - Err
    - Result::to_string
    - Error::IfnameTooLong
    - copy_from_slice
    - Result::as_bytes
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn build_terminated_if_name(if_name: &str) -> Result<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::segments
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:101,1
    - Dst: u8::iter
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:102,1
    - Dst: leading_ones
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:111,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:113,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:124,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - mask
    argTypes:
    - Ipv6Addr
    constantsTouched: []
    func_position:
      end: 129
      start: 100
    functionDepth: 16
    functionLinenumber: 100
    functionLinenumberEnd: 129
    functionName: ipv6_mask_to_prefix
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 1
    functionsReached:
    - Err
    - u8::iter
    - leading_ones
    - u8::segments
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn ipv6_mask_to_prefix(mask: Ipv6Addr) -> Result<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vmm_sys_util::ioctl::ioctl_with_mut_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:137,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:139,1
    - Dst: Error::IoctlError
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:139,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:139,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - req
    - arg
    argTypes:
    - '&F'
    - c_ulong
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: Tap::ioctl_with_mut_ref
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Error::IoctlError
    - IoError::last_os_error
    - vmm_sys_util::ioctl::ioctl_with_mut_ref
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'unsafe fn ioctl_with_mut_ref<F: AsRawFd, T>(fd: &F, req: c_ulong,
      arg: &mut T) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vmm_sys_util::ioctl::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:150,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:152,1
    - Dst: Error::IoctlError
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:152,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:152,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - req
    - arg
    argTypes:
    - '&F'
    - c_ulong
    - '&T'
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: Tap::ioctl_with_ref
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Error::IoctlError
    - IoError::last_os_error
    - Err
    - vmm_sys_util::ioctl::ioctl_with_ref
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'unsafe fn ioctl_with_ref<F: AsRawFd, T>(fd: &F, req: c_ulong, arg:
      &T) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vmm_sys_util::ioctl::ioctl_with_val
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:163,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:165,1
    - Dst: Error::IoctlError
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:165,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:165,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - req
    - arg
    argTypes:
    - '&F'
    - c_ulong
    - c_ulong
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: Tap::ioctl_with_val
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Error::IoctlError
    - IoError::last_os_error
    - vmm_sys_util::ioctl::ioctl_with_val
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'unsafe fn ioctl_with_val<F: AsRawFd>(fd: &F, req: c_ulong, arg: c_ulong)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_terminated_if_name
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:172,1
    - Dst: libc::open
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:178,1
    - Dst: '&str::as_ptr'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:179,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:180,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:184,1
    - Dst: Error::OpenTun
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:184,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:184,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:188,1
    - Dst: vmm_sys_util::ioctl::ioctl_with_mut_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:195,1
    - Dst: net_gen::TUNGETFEATURES
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:195,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:197,1
    - Dst: Error::GetFeatures
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:197,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:197,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:202,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:208,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:211,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:212,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:213,1
    - Dst: Result::as_slice
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:213,1
    - Dst: vmm_sys_util::ioctl::ioctl_with_mut_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:223,1
    - Dst: net_gen::TUNSETIFF
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:223,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:225,1
    - Dst: Error::ConfigureTap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:225,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:225,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:229,1
    - Dst: Result::truncate
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:230,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:230,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:231,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 96
    argCount: 3
    argNames:
    - if_name
    - num_queue_pairs
    - flags
    argTypes:
    - '&str'
    - usize
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 235
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 235
    functionName: Tap::open_named
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 2
    functionsReached:
    - '&str::as_ptr'
    - build_terminated_if_name
    - File::from_raw_fd
    - libc::open
    - Ok
    - Default::default
    - as_mut
    - Result::as_slice
    - net_gen::TUNSETIFF
    - Error::GetFeatures
    - Error::ConfigureTap
    - Result::truncate
    - vmm_sys_util::ioctl::ioctl_with_mut_ref
    - Result::len
    - Err
    - net_gen::TUNGETFEATURES
    - to_vec
    - unwrap_or
    - IoError::last_os_error
    - copy_from_slice
    - Error::OpenTun
    linkageType: ''
    returnType: Result
    signature: 'pub fn open_named(if_name: &str, num_queue_pairs: usize, flags: Option<i32>)
      -> Result<Tap>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::open_named
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - num_queue_pairs
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: Tap::new
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 10
    functionsReached:
    - Self::open_named
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(num_queue_pairs: usize) -> Result<Tap>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:247,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:249,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:252,1
    - Dst: Error::ConfigureTap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:252,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:252,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:256,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:257,1
    - Dst: Self::ioctl_with_mut_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:261,1
    - Dst: net_gen::TUNGETIFF
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:261,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:264,1
    - Dst: vmm_sys_util::ioctl::ioctl_with_mut_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:277,1
    - Dst: net_gen::TUNSETIFF
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:277,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:278,1
    - Dst: raw_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:278,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:278,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:279,1
    - Dst: Error::ConfigureTap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:279,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:279,1
    - Dst: vnet_hdr_len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:283,1
    - Dst: Result::set_vnet_hdr_size
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:284,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:286,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 2
    argNames:
    - fd
    - num_queue_pairs
    argTypes:
    - RawFd
    - usize
    constantsTouched: []
    func_position:
      end: 287
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 287
    functionName: Tap::from_tap_fd
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 2
    functionsReached:
    - Default::default
    - IoError::last_os_error
    - raw_os_error
    - File::from_raw_fd
    - Self::ioctl_with_mut_ref
    - vnet_hdr_len
    - vmm_sys_util::ioctl::ioctl_with_mut_ref
    - Err
    - net_gen::TUNGETIFF
    - net_gen::TUNSETIFF
    - Result::set_vnet_hdr_size
    - unwrap
    - Error::ConfigureTap
    - libc::fcntl
    - to_vec
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_tap_fd(fd: RawFd, num_queue_pairs: usize) -> Result<Tap>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::create_inet_socket
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:291,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:291,1
    - Dst: Tap::get_ifreq
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:293,1
    - Dst: super::create_sockaddr
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:297,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:303,1
    - Dst: super::create_sockaddr
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:307,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:311,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:319,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:325,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:336,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:336,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:337,1
    - Dst: Error::InvalidIfname
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:337,1
    - Dst: ipv6_mask_to_prefix
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:345,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:346,1
    - Dst: std::mem::transmute::<[u8; 16], net_gen::ipv6::in6_addr>
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:353,1
    - Dst: u64::octets
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:353,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:361,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 2
    argNames:
    - ip_addr
    - netmask
    argTypes:
    - IpAddr
    - Option<IpAddr>
    constantsTouched: []
    func_position:
      end: 365
      start: 290
    functionDepth: 17
    functionLinenumber: 290
    functionLinenumberEnd: 365
    functionName: Tap::set_ip_addr
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Self::ioctl_with_ref
    - Error::InvalidIfname
    - super::create_inet_socket
    - Tap::get_ifreq
    - ipv6_mask_to_prefix
    - super::create_sockaddr
    - Err
    - String::from_utf8_lossy
    - Result::map_err
    - u64::octets
    - to_string
    - std::mem::transmute::<[u8; 16], net_gen::ipv6::in6_addr>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_ip_addr(&self, ip_addr: IpAddr, netmask: Option<IpAddr>)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Tap::get_mac_addr
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:374,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:375,1
    - Dst: super::create_unix_socket
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:378,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:378,1
    - Dst: Tap::get_ifreq
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:380,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:383,1
    - Dst: u64::get_bytes
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:388,1
    - Dst: '&[u8]::iter'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:388,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:388,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - addr
    argTypes:
    - MacAddr
    constantsTouched: []
    func_position:
      end: 395
      start: 368
    functionDepth: 8
    functionLinenumber: 368
    functionLinenumberEnd: 395
    functionName: Tap::set_mac_addr
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Self::ioctl_with_ref
    - '&[u8]::iter'
    - Tap::get_ifreq
    - u64::get_bytes
    - impl Iterator::enumerate
    - super::create_unix_socket
    - Result::map_err
    - Tap::get_mac_addr
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_mac_addr(&self, addr: MacAddr) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::create_unix_socket
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:399,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:399,1
    - Dst: Tap::get_ifreq
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:401,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:404,1
    - Dst: MacAddr::from_bytes
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:408,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:408,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 398
    functionDepth: 7
    functionLinenumber: 398
    functionLinenumberEnd: 412
    functionName: Tap::get_mac_addr
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 1
    functionsReached:
    - MacAddr::from_bytes
    - Self::ioctl_with_ref
    - Tap::get_ifreq
    - super::create_unix_socket
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_mac_addr(&self) -> Result<MacAddr>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: Tap::mtu
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn mtu(&self) -> Result<i32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::create_unix_socket
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:436,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:436,1
    - Dst: Tap::get_ifreq
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:438,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - mtu
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: Tap::set_mtu
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Tap::get_ifreq
    - super::create_unix_socket
    - Self::ioctl_with_ref
    - Result::map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_mtu(&self, mtu: i32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::ioctl_with_val
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:448,1
    - Dst: net_gen::TUNSETOFFLOAD
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - flags
    argTypes:
    - c_uint
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: Tap::set_offload
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - net_gen::TUNSETOFFLOAD
    - Self::ioctl_with_val
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_offload(&self, flags: c_uint) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::create_unix_socket
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:453,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:453,1
    - Dst: Tap::get_ifreq
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:455,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:458,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:466,1
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 452
    functionDepth: 7
    functionLinenumber: 452
    functionLinenumberEnd: 473
    functionName: Tap::enable
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Self::ioctl_with_ref
    - Tap::get_ifreq
    - super::create_unix_socket
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn enable(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::ioctl_with_ref
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:478,1
    - Dst: net_gen::TUNSETVNETHDRSZ
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - c_int
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: Tap::set_vnet_hdr_size
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Self::ioctl_with_ref
    - net_gen::TUNSETVNETHDRSZ
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_vnet_hdr_size(&self, size: c_int) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:482,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:488,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:489,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: Tap::get_ifreq
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 5
    functionsReached:
    - as_mut
    - copy_from_slice
    - len
    - Default::default
    linkageType: ''
    returnType: net_gen::ifreq
    signature: fn get_ifreq(&self) -> net_gen::ifreq
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: Tap::if_name_as_bytes
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn if_name_as_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Tap::if_name_as_bytes
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:513,1
    - Dst: '&[u8]::split'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:513,1
    - Dst: next
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:513,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:513,1
    - Dst: std::str::from_utf8
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:520,1
    - Dst: expect
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 521
    functionName: Tap::if_name_as_str
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - expect
    - next
    - std::str::from_utf8
    - '&[u8]::split'
    - Tap::if_name_as_bytes
    - unwrap_or
    linkageType: ''
    returnType: '&str'
    signature: pub fn if_name_as_str(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - tap_file
    - if_name
    argTypes:
    - File
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: Tap::new_for_fuzzing
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_for_fuzzing(tap_file: File, if_name: Vec<u8>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 8
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: Tap::read
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: IoResult
    signature: 'fn read(&mut self, buf: &mut [u8]) -> IoResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 8
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: Tap::write
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: IoResult
    signature: 'fn write(&mut self, buf: &[u8]) -> IoResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: Tap::flush
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: IoResult
    signature: fn flush(&mut self) -> IoResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: Tap::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MutableEthernetPacket::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:644,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:644,1
    - Dst: set_source
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:645,1
    - Dst: MacAddr::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:645,1
    - Dst: set_destination
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:646,1
    - Dst: set_ethertype
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:647,1
    - Dst: MutableIpv4Packet::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:649,1
    - Dst: payload_mut
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:649,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:649,1
    - Dst: set_version
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:650,1
    - Dst: set_header_length
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:651,1
    - Dst: set_total_length
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:652,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:652,1
    - Dst: set_ttl
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:653,1
    - Dst: set_next_level_protocol
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:654,1
    - Dst: set_source
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:655,1
    - Dst: Ipv4Addr::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:655,1
    - Dst: set_destination
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:656,1
    - Dst: Ipv4Addr::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:656,1
    - Dst: MutableUdpPacket::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:658,1
    - Dst: payload_mut
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:658,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:658,1
    - Dst: set_source
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:659,1
    - Dst: set_destination
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:660,1
    - Dst: set_length
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:661,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:661,1
    - Dst: set_payload
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 67
    argCount: 3
    argNames:
    - buf
    - dst_mac
    - payload
    argTypes:
    - '&mut [u8]'
    - MacAddr
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 663
      start: 643
    functionDepth: 5
    functionLinenumber: 643
    functionLinenumberEnd: 663
    functionName: unit_tests::pnet_build_packet
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - MutableIpv4Packet::new
    - payload_mut
    - MacAddr::new
    - set_header_length
    - set_length
    - set_source
    - Result::len
    - MutableUdpPacket::new
    - set_ttl
    - set_version
    - set_total_length
    - set_destination
    - MutableEthernetPacket::new
    - Result::unwrap
    - set_next_level_protocol
    - set_payload
    - Ipv4Addr::new
    - set_ethertype
    linkageType: ''
    returnType: void
    signature: 'fn pnet_build_packet(buf: &mut [u8], dst_mac: MacAddr, payload: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:667,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:670,1
    - Dst: pnet_get_mac_tx_rx
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:672,1
    - Dst: Result::build_and_send
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:674,1
    - Dst: pnet_build_packet
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:675,1
    - Dst: u64::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:678,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - ifname
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 679
      start: 666
    functionDepth: 7
    functionLinenumber: 666
    functionLinenumberEnd: 679
    functionName: unit_tests::pnet_send_packet
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Result::len
    - pnet_build_packet
    - Result::build_and_send
    - unwrap
    - as_bytes
    - pnet_get_mac_tx_rx
    - u64::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn pnet_send_packet(ifname: String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pnet_datalink::interfaces
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:690,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:691,1
    - Dst: find
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:691,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:691,1
    - Dst: pnet_datalink::channel
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:693,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:693,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ifname
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 698
      start: 684
    functionDepth: 6
    functionLinenumber: 684
    functionLinenumberEnd: 698
    functionName: unit_tests::pnet_get_mac_tx_rx
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - find
    - Default::default
    - pnet_datalink::interfaces
    - pnet_datalink::channel
    - unwrap
    - into_iter
    linkageType: ''
    returnType: (MacAddr, Box
    signature: 'fn pnet_get_mac_tx_rx(ifname: String,) -> (MacAddr, Box<dyn DataLinkSender>,
      Box<dyn DataLinkReceiver>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:702,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:702,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:704,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 701
    functionDepth: 13
    functionLinenumber: 701
    functionLinenumberEnd: 706
    functionName: unit_tests::test_tap_create
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - lock
    - Result::unwrap
    - Tap::new
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_tap_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:710,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:710,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:712,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:712,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:713,1
    - Dst: Tap::from_tap_fd
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:714,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 13
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: unit_tests::test_tap_from_fd
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Tap::from_tap_fd
    - as_raw_fd
    - lock
    - unwrap
    - Result::unwrap
    - Tap::new
    linkageType: ''
    returnType: void
    signature: fn test_tap_from_fd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:723,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:723,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:725,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:725,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:726,1
    - Dst: parse
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:726,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:726,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:727,1
    - Dst: parse
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:727,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:727,1
    - Dst: Result::set_ip_addr
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:729,1
    - Dst: Some
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:729,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 718
    functionDepth: 13
    functionLinenumber: 718
    functionLinenumberEnd: 730
    functionName: unit_tests::test_tap_configure
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Some
    - parse
    - lock
    - Result::set_ip_addr
    - IpAddr::V4
    - unwrap
    - Result::unwrap
    - Tap::new
    linkageType: ''
    returnType: void
    signature: fn test_tap_configure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:734,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:735,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:735,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:737,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:737,1
    - Dst: IpAddr::V6
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:738,1
    - Dst: parse
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:738,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:738,1
    - Dst: IpAddr::V6
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:739,1
    - Dst: '&str::parse'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:739,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:739,1
    - Dst: Result::set_ip_addr
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:741,1
    - Dst: Some
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:741,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 733
    functionDepth: 13
    functionLinenumber: 733
    functionLinenumberEnd: 742
    functionName: unit_tests::test_tap_configure_ipv6
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Result::lock
    - Some
    - IpAddr::V6
    - '&str::parse'
    - parse
    - Mutex::new
    - Result::set_ip_addr
    - unwrap
    - Result::unwrap
    - Tap::new
    linkageType: ''
    returnType: void
    signature: fn test_tap_configure_ipv6()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:746,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:746,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:749,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:749,1
    - Dst: Result::set_vnet_hdr_size
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:750,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:750,1
    - Dst: Result::set_offload
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:751,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 745
    functionDepth: 13
    functionLinenumber: 745
    functionLinenumberEnd: 752
    functionName: unit_tests::test_set_options
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Result::set_offload
    - lock
    - Result::set_vnet_hdr_size
    - unwrap
    - Result::unwrap
    - Tap::new
    linkageType: ''
    returnType: void
    signature: fn test_set_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:756,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:756,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:758,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:758,1
    - Dst: Result::enable
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:759,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 13
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: unit_tests::test_tap_enable
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - lock
    - Result::enable
    - unwrap
    - Result::unwrap
    - Tap::new
    linkageType: ''
    returnType: void
    signature: fn test_tap_enable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:764,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:764,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:766,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 763
    functionDepth: 13
    functionLinenumber: 763
    functionLinenumberEnd: 768
    functionName: unit_tests::test_raw_fd
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - lock
    - Result::unwrap
    - Tap::new
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_raw_fd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:772,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:772,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:774,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:774,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:775,1
    - Dst: parse
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:775,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:775,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:776,1
    - Dst: parse
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:776,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:776,1
    - Dst: Result::set_ip_addr
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:777,1
    - Dst: Some
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:777,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:777,1
    - Dst: Result::enable
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:778,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:778,1
    - Dst: pnet_send_packet
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:781,1
    - Dst: Result::if_name_as_str
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:781,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:781,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:789,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:790,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:790,1
    - Dst: EthernetPacket::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:797,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:797,1
    - Dst: get_ethertype
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:798,1
    - Dst: Ipv4Packet::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:804,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:804,1
    - Dst: get_next_level_protocol
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:807,1
    - Dst: get_header_length
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:808,1
    - Dst: UdpPacket::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:815,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:815,1
    - Dst: get_length
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:815,1
    - Dst: str::from_utf8
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:818,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:818,1
    - Dst: eq
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:820,1
    - Dst: Some
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 827
      start: 771
    functionDepth: 13
    functionLinenumber: 771
    functionLinenumberEnd: 827
    functionName: unit_tests::test_read
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Ipv4Packet::new
    - get_header_length
    - Result::read
    - Result::unwrap
    - get_length
    - UdpPacket::new
    - '&str::to_owned'
    - Tap::new
    - EthernetPacket::new
    - str::from_utf8
    - lock
    - IpAddr::V4
    - unwrap
    - Result::if_name_as_str
    - None::is_none
    - eq
    - get_ethertype
    - get_next_level_protocol
    - parse
    - Result::set_ip_addr
    - Result::enable
    - IoResult::unwrap
    - pnet_send_packet
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:831,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:831,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:833,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:833,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:834,1
    - Dst: parse
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:834,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:834,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:835,1
    - Dst: parse
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:835,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:835,1
    - Dst: Result::set_ip_addr
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:836,1
    - Dst: Some
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:836,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:836,1
    - Dst: Result::enable
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:837,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:837,1
    - Dst: pnet_get_mac_tx_rx
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:839,1
    - Dst: Result::if_name_as_str
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:839,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:839,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:841,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:844,1
    - Dst: pnet_build_packet
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:848,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:850,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:850,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:851,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:851,1
    - Dst: mpsc::channel
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:853,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:857,1
    - Dst: (MacAddr, Box::next
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:859,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:859,1
    - Dst: ParsedPkt::new
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:860,1
    - Dst: Result::print
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:861,1
    - Dst: payload
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:864,1
    - Dst: send
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:866,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:866,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:880,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:880,1
    - Dst: try_recv
      Src: /src/cloud-hypervisor/net_util/src/tap.rs:881,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 888
      start: 830
    functionDepth: 13
    functionLinenumber: 830
    functionLinenumberEnd: 888
    functionName: unit_tests::test_write
    functionSourceFile: /src/cloud-hypervisor/net_util/src/tap.rs
    functionUses: 0
    functionsReached:
    - Duration::from_millis
    - Result::unwrap
    - pnet_get_mac_tx_rx
    - thread::sleep
    - pnet_build_packet
    - ParsedPkt::new
    - Result::print
    - thread::spawn
    - '&str::to_owned'
    - Tap::new
    - Result::len
    - lock
    - IpAddr::V4
    - unwrap
    - Result::if_name_as_str
    - send
    - Result::flush
    - Result::write_all
    - mpsc::channel
    - Option::unwrap
    - try_recv
    - parse
    - Result::set_ip_addr
    - Result::enable
    - IoResult::unwrap
    - (MacAddr, Box::next
    - payload
    - as_bytes
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_write()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Path::new
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:47,1
    - Dst: Result::exists
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:47,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:48,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:50,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:50,1
    - Dst: u32::from_str_radix
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:51,1
    - Dst: trim
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:51,1
    - Dst: trim_start_matches
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:51,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:51,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:54,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:56,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:59,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 2
    argNames:
    - if_name
    - queue_pairs
    argTypes:
    - '&Option<&str>'
    - usize
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: check_mq_support
    functionSourceFile: /src/cloud-hypervisor/net_util/src/open_tap.rs
    functionUses: 1
    functionsReached:
    - fs::read_to_string
    - u32::from_str_radix
    - Path::new
    - map_err
    - trim_start_matches
    - trim
    - Err
    - Result::exists
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn check_mq_support(if_name: &Option<&str>, queue_pairs: usize) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_some_and
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:75,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:75,1
    - Dst: Result::exists
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:75,1
    - Dst: Tap::open_named
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:78,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:78,1
    - Dst: Tap::new
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:80,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:80,1
    - Dst: Result::set_ip_addr
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:89,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:89,1
    - Dst: Result::set_mac_addr
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:93,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:93,1
    - Dst: Some
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:95,1
    - Dst: Result::get_mac_addr
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:95,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:95,1
    - Dst: Result::set_mtu
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:98,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:98,1
    - Dst: Result::enable
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:100,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:100,1
    - Dst: Result::set_vnet_hdr_size
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:102,1
    - Dst: super::vnet_hdr_len
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:102,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:102,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:105,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 68
    argCount: 7
    argNames:
    - if_name
    - ip_addr
    - netmask
    - host_mac
    - mtu
    - num_rx_q
    - flags
    argTypes:
    - Option<&str>
    - Option<IpAddr>
    - Option<IpAddr>
    - '&mut Option<MacAddr>'
    - Option<u16>
    - usize
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 106
      start: 65
    functionDepth: 18
    functionLinenumber: 65
    functionLinenumberEnd: 106
    functionName: open_tap_rx_q_0
    functionSourceFile: /src/cloud-hypervisor/net_util/src/open_tap.rs
    functionUses: 1
    functionsReached:
    - Path::new
    - Some
    - Result::is_some_and
    - Result::get_mac_addr
    - Tap::open_named
    - Result::map_err
    - Result::set_ip_addr
    - Result::set_mac_addr
    - Result::enable
    - Result::exists
    - Result::set_vnet_hdr_size
    - Result::set_mtu
    - Tap::new
    - super::vnet_hdr_len
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn open_tap_rx_q_0(if_name: Option<&str>,ip_addr: Option<IpAddr>,netmask:
      Option<IpAddr>,host_mac: &mut Option<MacAddr>,mtu: Option<u16>,num_rx_q: usize,flags:
      Option<i32>,) -> Result<Tap>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:119,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:120,1
    - Dst: check_mq_support
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:127,1
    - Dst: open_tap_rx_q_0
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:135,1
    - Dst: Result::if_name_as_str
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:137,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:137,1
    - Dst: Tap::open_named
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:139,1
    - Dst: Result::as_str
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:139,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:139,1
    - Dst: Result::set_vnet_hdr_size
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:141,1
    - Dst: super::vnet_hdr_len
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:141,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:141,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:144,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/open_tap.rs:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 7
    argNames:
    - if_name
    - ip_addr
    - netmask
    - host_mac
    - mtu
    - num_rx_q
    - flags
    argTypes:
    - Option<&str>
    - Option<IpAddr>
    - Option<IpAddr>
    - '&mut Option<MacAddr>'
    - Option<u16>
    - usize
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 19
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: open_tap
    functionSourceFile: /src/cloud-hypervisor/net_util/src/open_tap.rs
    functionUses: 3
    functionsReached:
    - Result::as_str
    - open_tap_rx_q_0
    - check_mq_support
    - Vec::new
    - String::new
    - '&str::to_string'
    - Tap::open_named
    - Result::map_err
    - Result::set_vnet_hdr_size
    - Result::if_name_as_str
    - Result::push
    - super::vnet_hdr_len
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn open_tap(if_name: Option<&str>,ip_addr: Option<IpAddr>,netmask:
      Option<IpAddr>,host_mac: &mut Option<MacAddr>,mtu: Option<u16>,num_rx_q: usize,flags:
      Option<i32>,) -> Result<Vec<Tap>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::transmute::<[u8; 4], net_gen::inn::in_addr>
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:69,1
    - Dst: Result::octets
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:69,1
    - Dst: mem::transmute
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ip_addr
    argTypes:
    - net::Ipv4Addr
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: create_sockaddr
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 2
    functionsReached:
    - mem::transmute
    - Result::octets
    - mem::transmute::<[u8; 4], net_gen::inn::in_addr>
    linkageType: ''
    returnType: net_gen::sockaddr
    signature: 'fn create_sockaddr(ip_addr: net::Ipv4Addr) -> net_gen::sockaddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::socket
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:84,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:86,1
    - Dst: Error::CreateSocket
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:86,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:86,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:90,1
    - Dst: net::UdpSocket::from_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IpAddr
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: create_inet_socket
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 1
    functionsReached:
    - libc::socket
    - IoError::last_os_error
    - Err
    - net::UdpSocket::from_raw_fd
    - Error::CreateSocket
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_inet_socket(addr: IpAddr) -> Result<net::UdpSocket>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::socket
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:95,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:97,1
    - Dst: Error::CreateSocket
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:97,1
    - Dst: IoError::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:97,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:101,1
    - Dst: net::UdpSocket::from_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: create_unix_socket
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 4
    functionsReached:
    - libc::socket
    - IoError::last_os_error
    - Err
    - net::UdpSocket::from_raw_fd
    - Error::CreateSocket
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_unix_socket() -> Result<net::UdpSocket>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<virtio_net_hdr_v1>
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: vnet_hdr_len
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 5
    functionsReached:
    - std::mem::size_of::<virtio_net_hdr_v1>
    linkageType: ''
    returnType: usize
    signature: fn vnet_hdr_len() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:114,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - epoll_fd
    - fd
    - ev_type
    - data
    argTypes:
    - RawFd
    - RawFd
    - epoll::Events
    - u64
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: register_listener
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 5
    functionsReached:
    - epoll::ctl
    - epoll::Event::new
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn register_listener(epoll_fd: RawFd,fd: RawFd,ev_type: epoll::Events,data:
      u64,) -> std::result::Result<(), io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:128,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - epoll_fd
    - fd
    - ev_type
    - data
    argTypes:
    - RawFd
    - RawFd
    - epoll::Events
    - u64
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: unregister_listener
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 2
    functionsReached:
    - epoll::ctl
    - epoll::Event::new
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn unregister_listener(epoll_fd: RawFd,fd: RawFd,ev_type: epoll::Events,data:
      u64,) -> std::result::Result<(), io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:143,1
    - Dst: get_bytes
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:143,1
    - Dst: build_net_config_space_with_mq
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - config
    - mac
    - num_queues
    - mtu
    - avail_features
    argTypes:
    - '&mut VirtioNetConfig'
    - MacAddr
    - usize
    - Option<u16>
    - '&mut u64'
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: build_net_config_space
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 2
    functionsReached:
    - get_bytes
    - build_net_config_space_with_mq
    - copy_from_slice
    linkageType: ''
    returnType: void
    signature: 'pub fn build_net_config_space(config: &mut VirtioNetConfig,mac: MacAddr,num_queues:
      usize,mtu: Option<u16>,avail_features: &mut u64,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - config
    - num_queues
    - mtu
    - avail_features
    argTypes:
    - '&mut VirtioNetConfig'
    - usize
    - Option<u16>
    - '&mut u64'
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: build_net_config_space_with_mq
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn build_net_config_space_with_mq(config: &mut VirtioNetConfig,num_queues:
      usize,mtu: Option<u16>,avail_features: &mut u64,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - features
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 186
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 186
    functionName: virtio_features_to_tap_offload
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: c_uint
    signature: 'pub fn virtio_features_to_tap_offload(features: u64) -> c_uint'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::parse'
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:194,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:194,1
    - Dst: create_sockaddr
      Src: /src/cloud-hypervisor/net_util/src/lib.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 193
    functionDepth: 11
    functionLinenumber: 193
    functionLinenumberEnd: 210
    functionName: unit_tests::test_create_sockaddr
    functionSourceFile: /src/cloud-hypervisor/net_util/src/lib.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - '&str::parse'
    - create_sockaddr
    linkageType: ''
    returnType: void
    signature: fn test_create_sockaddr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: TxVirtio::default
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:37,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:38,1
    - Dst: IovecBuffer::new
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: TxVirtio::new
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 1
    functionsReached:
    - std::num::Wrapping
    - IovecBuffer::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::pop_descriptor_chain
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:54,1
    - Dst: bool::go_to_previous_position
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:56,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:60,1
    - Dst: borrow
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:62,1
    - Dst: addr
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:64,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:64,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:66,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:67,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:67,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:68,1
    - Dst: Result::get_slice
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:68,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:70,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:68,1
    - Dst: Self::ptr_guard_mut
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:73,1
    - Dst: Self::as_ptr
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:75,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:76,1
    - Dst: push
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:78,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:86,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:88,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:91,1
    - Dst: libc::writev
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:96,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:97,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:98,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:99,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:104,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:107,1
    - Dst: bool::go_to_previous_position
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:108,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:113,1
    - Dst: NetQueuePairError::WriteTap
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:113,1
    - Dst: super::vnet_hdr_len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:116,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:117,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:120,1
    - Dst: super::vnet_hdr_len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:120,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:121,1
    - Dst: '&mut Option<RateLimiter>::consume'
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:130,1
    - Dst: '&mut Option<RateLimiter>::consume'
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:131,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:134,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:135,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:135,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:134,1
    - Dst: bool::enable_notification
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:138,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:138,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:146,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 151
    argCount: 5
    argNames:
    - mem
    - tap
    - queue
    - rate_limiter
    - access_platform
    argTypes:
    - '&vm_memory::GuestMemoryMmap<B>'
    - '&Tap'
    - '&mut Queue'
    - '&mut Option<RateLimiter>'
    - Option<&dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 147
      start: 43
    functionDepth: 8
    functionLinenumber: 43
    functionLinenumberEnd: 147
    functionName: TxVirtio::process_desc_chain
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - libc::writev
    - bool::go_to_previous_position
    - map_err
    - addr
    - push
    - Result::next
    - borrow
    - Result::memory
    - translate_gva
    - is_write_only
    - Result::as_raw_fd
    - usize::kind
    - Result::head_index
    - Ok
    - NetQueuePairError::WriteTap
    - bool::pop_descriptor_chain
    - len
    - Self::ptr_guard_mut
    - super::vnet_hdr_len
    - is_empty
    - as_ptr
    - std::io::Error::last_os_error
    - Err
    - '&mut Option<RateLimiter>::consume'
    - std::num::Wrapping
    - bool::enable_notification
    - Result::get_slice
    - bool::add_used
    - Self::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub fn process_desc_chain<B: Bitmap + ''static>(&mut self,mem: &vm_memory::GuestMemoryMmap<B>,tap:
      &Tap,queue: &mut Queue,rate_limiter: &mut Option<RateLimiter>,access_platform:
      Option<&dyn AccessPlatform>,) -> Result<bool, NetQueuePairError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: RxVirtio::default
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:166,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:167,1
    - Dst: IovecBuffer::new
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: RxVirtio::new
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 1
    functionsReached:
    - std::num::Wrapping
    - IovecBuffer::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::pop_descriptor_chain
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:183,1
    - Dst: bool::go_to_previous_position
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:186,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:190,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:190,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:194,1
    - Dst: Result::checked_offset
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:194,1
    - Dst: addr
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:197,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:197,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:198,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:194,1
    - Dst: Some
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:202,1
    - Dst: borrow
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:204,1
    - Dst: addr
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:206,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:206,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:208,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:209,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:209,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:210,1
    - Dst: Result::get_slice
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:210,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:212,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:210,1
    - Dst: Self::ptr_guard_mut
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:215,1
    - Dst: Self::as_ptr
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:217,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:218,1
    - Dst: push
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:220,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:228,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:230,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:233,1
    - Dst: libc::readv
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:238,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:239,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:240,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:241,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:245,1
    - Dst: bool::go_to_previous_position
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:247,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:250,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:255,1
    - Dst: NetQueuePairError::ReadTap
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:255,1
    - Dst: super::vnet_hdr_len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:258,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:259,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:264,1
    - Dst: Result::write_obj
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:264,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:264,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:269,1
    - Dst: super::vnet_hdr_len
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:269,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:270,1
    - Dst: '&mut Option<RateLimiter>::consume'
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:280,1
    - Dst: '&mut Option<RateLimiter>::consume'
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:281,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:284,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:285,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:285,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:284,1
    - Dst: bool::enable_notification
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:288,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:288,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:296,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 178
    argCount: 5
    argNames:
    - mem
    - tap
    - queue
    - rate_limiter
    - access_platform
    argTypes:
    - '&vm_memory::GuestMemoryMmap<B>'
    - '&Tap'
    - '&mut Queue'
    - '&mut Option<RateLimiter>'
    - Option<&dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 297
      start: 172
    functionDepth: 8
    functionLinenumber: 172
    functionLinenumberEnd: 297
    functionName: RxVirtio::process_desc_chain
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - Result::checked_offset
    - libc::readv
    - bool::go_to_previous_position
    - map_err
    - Self::as_ptr
    - addr
    - push
    - Result::next
    - borrow
    - Result::memory
    - ok_or
    - is_write_only
    - Result::as_raw_fd
    - usize::kind
    - Result::head_index
    - Ok
    - bool::pop_descriptor_chain
    - len
    - Self::ptr_guard_mut
    - super::vnet_hdr_len
    - is_empty
    - as_ptr
    - std::io::Error::last_os_error
    - Err
    - Option::ok_or
    - '&mut Option<RateLimiter>::consume'
    - std::num::Wrapping
    - NetQueuePairError::ReadTap
    - bool::enable_notification
    - Result::write_obj
    - Result::get_slice
    - bool::add_used
    - translate_gva
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn process_desc_chain<B: Bitmap + ''static>(&mut self,mem: &vm_memory::GuestMemoryMmap<B>,tap:
      &Tap,queue: &mut Queue,rate_limiter: &mut Option<RateLimiter>,access_platform:
      Option<&dyn AccessPlatform>,) -> Result<bool, NetQueuePairError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IovecBuffer
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:316,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: IovecBuffer::new
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 2
    functionsReached:
    - Vec::with_capacity
    - IovecBuffer
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IovecBufferBorrowed
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: IovecBuffer::borrow
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - IovecBufferBorrowed
    linkageType: ''
    returnType: IovecBufferBorrowed
    signature: fn borrow(&mut self) -> IovecBufferBorrowed<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: IovecBufferBorrowed::deref
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: IovecBufferBorrowed::deref_mut
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self::Target'
    signature: fn deref_mut(&mut self) -> &mut Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: IovecBufferBorrowed::drop
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_desc_chain
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:414,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:419,1
    - Dst: super::register_listener
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:424,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:425,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:426,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:428,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:424,1
    - Dst: super::unregister_listener
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:434,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:435,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:436,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:438,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:434,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:445,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:448,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:451,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:452,1
    - Dst: bool::needs_notification
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:454,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 84
    argCount: 2
    argNames:
    - mem
    - queue
    argTypes:
    - '&vm_memory::GuestMemoryMmap<B>'
    - '&mut Queue'
    constantsTouched: []
    func_position:
      end: 457
      start: 409
    functionDepth: 9
    functionLinenumber: 409
    functionLinenumberEnd: 457
    functionName: NetQueuePair::process_tx
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - super::unregister_listener
    - bool::needs_notification
    - map_err
    - std::result::Result::map_err
    - fetch_add
    - u64::from
    - unwrap
    - as_raw_fd
    - super::register_listener
    - std::num::Wrapping
    - as_deref
    - process_desc_chain
    linkageType: ''
    returnType: Result
    signature: 'pub fn process_tx<B: Bitmap + ''static>(&mut self,mem: &vm_memory::GuestMemoryMmap<B>,queue:
      &mut Queue,) -> Result<bool, NetQueuePairError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_desc_chain
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:464,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:469,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:471,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:471,1
    - Dst: u64::is_blocked
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:474,1
    - Dst: super::unregister_listener
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:480,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:481,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:482,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:484,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:480,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:490,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:493,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:496,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:497,1
    - Dst: bool::needs_notification
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:499,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/queue_pair.rs:499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 2
    argNames:
    - mem
    - queue
    argTypes:
    - '&vm_memory::GuestMemoryMmap<B>'
    - '&mut Queue'
    constantsTouched: []
    func_position:
      end: 502
      start: 459
    functionDepth: 9
    functionLinenumber: 459
    functionLinenumberEnd: 502
    functionName: NetQueuePair::process_rx
    functionSourceFile: /src/cloud-hypervisor/net_util/src/queue_pair.rs
    functionUses: 0
    functionsReached:
    - super::unregister_listener
    - bool::needs_notification
    - is_some_and
    - map_err
    - as_ref
    - std::result::Result::map_err
    - fetch_add
    - u64::is_blocked
    - u64::from
    - unwrap
    - as_raw_fd
    - std::num::Wrapping
    - as_deref
    - process_desc_chain
    linkageType: ''
    returnType: Result
    signature: 'pub fn process_rx<B: Bitmap + ''static>(&mut self,mem: &vm_memory::GuestMemoryMmap<B>,queue:
      &mut Queue,) -> Result<bool, NetQueuePairError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - taps
    argTypes:
    - Vec<Tap>
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: CtrlQueue::new
    functionSourceFile: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(taps: Vec<Tap>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::pop_descriptor_chain
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:71,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:72,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:72,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:74,1
    - Dst: Result::read_obj
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:74,1
    - Dst: addr
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:77,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:77,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:79,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:74,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:82,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:82,1
    - Dst: addr
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:84,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:84,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:86,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:88,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:88,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:90,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:92,1
    - Dst: "memory()\n                        .read_obj::<u16>"
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:92,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:92,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:96,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:110,1
    - Dst: "memory()\n                        .read_obj::<u64>"
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:110,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:110,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:114,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:116,1
    - Dst: Result::set_offload
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:118,1
    - Dst: super::virtio_features_to_tap_offload
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:118,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:118,1
    - Dst: ok
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:118,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:137,1
    - Dst: Result::write_obj
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:137,1
    - Dst: addr
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:141,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:141,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:143,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:137,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:146,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:146,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:146,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:148,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:149,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:149,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:148,1
    - Dst: bool::enable_notification
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:152,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:152,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs:160,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 145
    argCount: 3
    argNames:
    - mem
    - queue
    - access_platform
    argTypes:
    - '&GuestMemoryMmap'
    - '&mut Queue'
    - Option<&dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 161
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 161
    functionName: CtrlQueue::process
    functionSourceFile: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs
    functionUses: 0
    functionsReached:
    - map_err
    - addr
    - u32::from
    - Result::next
    - Result::read_obj
    - Result::memory
    - Result::head_index
    - Ok
    - Result::set_offload
    - bool::pop_descriptor_chain
    - len
    - super::virtio_features_to_tap_offload
    - iter_mut
    - "memory()\n                        .read_obj::<u16>"
    - "memory()\n                        .read_obj::<u64>"
    - Option::ok_or
    - bool::enable_notification
    - Result::write_obj
    - ok
    - bool::add_used
    - Result::map_err
    - translate_gva
    linkageType: ''
    returnType: Result
    signature: 'pub fn process(&mut self,mem: &GuestMemoryMmap,queue: &mut Queue,access_platform:
      Option<&dyn AccessPlatform>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::as_ref
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:27,1
    - Dst: split
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:27,1
    - Dst: collect
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:27,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:29,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:29,1
    - Dst: std::result::Result::len
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:34,1
    - Dst: len
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:39,1
    - Dst: bytes
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:42,1
    - Dst: all
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:42,1
    - Dst: is_ascii_hexdigit
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:42,1
    - Dst: u8::from_str_radix
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:45,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:45,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&S'
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: MacAddr::parse_str
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 5
    functionsReached:
    - all
    - split
    - u8::from_str_radix
    - is_ascii_hexdigit
    - std::result::Result::len
    - Err
    - Ok
    - unwrap
    - io::Error::other
    - len
    - bytes
    - FdtWriterResult::as_ref
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_str<S>(s: &S) -> Result<MacAddr, io::Error>whereS: AsRef<str>
      + ?Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: MacAddr::from_bytes_unchecked
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 1
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: MacAddr
    signature: 'pub fn from_bytes_unchecked(src: &[u8]) -> MacAddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:65,1
    - Dst: Err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:66,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:66,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:72,1
    - Dst: MacAddr::from_bytes_unchecked
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - src
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: MacAddr::from_bytes
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 2
    functionsReached:
    - MacAddr::from_bytes_unchecked
    - '&[u8]::len'
    - Err
    - io::Error::other
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_bytes(src: &[u8]) -> Result<MacAddr, io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: MacAddr::get_bytes
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn get_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getrandom::fill
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: MacAddr::local_random
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 2
    functionsReached:
    - getrandom::fill
    linkageType: ''
    returnType: MacAddr
    signature: pub fn local_random() -> MacAddr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: MacAddr::fmt
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MacAddr::to_string
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:112,1
    - Dst: String::serialize
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - serializer
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: MacAddr::serialize
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached:
    - String::serialize
    - MacAddr::to_string
    linkageType: ''
    returnType: Result
    signature: 'fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>whereS:
      Serializer,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::deserialize
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:121,1
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:122,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:122,1
    - Dst: D::Error::custom
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - deserializer
    argTypes:
    - D
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: MacAddr::deserialize
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached:
    - D::Error::custom
    - Result::map_err
    - String::deserialize
    - MacAddr::parse_str
    linkageType: ''
    returnType: Result
    signature: 'fn deserialize<D>(deserializer: D) -> Result<MacAddr, D::Error>whereD:
      Deserializer<''de>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:135,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:135,1
    - Dst: MacAddrParseError::InvalidValue
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:135,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: MacAddr::from_str
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::to_owned
    - MacAddrParseError::InvalidValue
    - Result::map_err
    - MacAddr::parse_str
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:146,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:146,1
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:149,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:149,1
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:152,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:152,1
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:155,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:155,1
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:157,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:157,1
    - Dst: get_bytes
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: unit_tests::test_mac_addr
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached:
    - get_bytes
    - Result::unwrap
    - Result::unwrap_err
    - MacAddr::parse_str
    linkageType: ''
    returnType: void
    signature: fn test_mac_addr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MacAddr::from_bytes
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:171,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:171,1
    - Dst: MacAddr::from_bytes
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:173,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:173,1
    - Dst: MacAddr::from_bytes
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:176,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: unit_tests::test_from_bytes
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached:
    - MacAddr::from_bytes
    - Result::unwrap
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_from_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:182,1
    - Dst: std::result::Result::expect
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:182,1
    - Dst: get_bytes
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:184,1
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:187,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:187,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:189,1
    - Dst: String::expect
      Src: /src/cloud-hypervisor/net_util/src/mac.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: unit_tests::test_mac_addr_serialization_and_deserialization
    functionSourceFile: /src/cloud-hypervisor/net_util/src/mac.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_string
    - String::expect
    - serde_json::from_str
    - MacAddr::parse_str
    - get_bytes
    - std::result::Result::expect
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_mac_addr_serialization_and_deserialization()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: io::Error::from
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - io::Error::other
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: Error) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:107,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:112,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - disk_image
    - serial
    - disk_nsectors
    - writeback
    - mem
    argTypes:
    - Arc<Mutex<dyn DiskFile>>
    - Vec<u8>
    - u64
    - Arc<AtomicBool>
    - GuestMemoryAtomic<GuestMemoryMmap>
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: VhostUserBlkThread::new
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 1
    functionsReached:
    - Result::map_err
    - EventFd::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn new(disk_image: Arc<Mutex<dyn DiskFile>>,serial: Vec<u8>,disk_nsectors:
      u64,writeback: Arc<AtomicBool>,mem: GuestMemoryAtomic<GuestMemoryMmap>,) ->
      Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>::get_queue_mut'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:124,1
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:124,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:126,1
    - Dst: Request::parse
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:130,1
    - Dst: Result::set_writeback
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:133,1
    - Dst: load
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:133,1
    - Dst: Result::execute
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:134,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:135,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:135,1
    - Dst: deref_mut
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:135,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:137,1
    - Dst: usize::status
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:146,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:149,1
    - Dst: Result::write_obj
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:149,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:149,1
    - Dst: '&mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>::get_queue_mut'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:160,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:160,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:162,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:162,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:160,1
    - Dst: '&mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>::get_queue_mut'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:169,1
    - Dst: needs_notification
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:169,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:171,1
    - Dst: deref
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:171,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:169,1
    - Dst: '&mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>::signal_used_queue'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:185,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 98
    argCount: 1
    argNames:
    - vring
    argTypes:
    - '&mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>'
    constantsTouched: []
    func_position:
      end: 189
      start: 118
    functionDepth: 12
    functionLinenumber: 118
    functionLinenumberEnd: 189
    functionName: VhostUserBlkThread::process_queue
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>::get_queue_mut'
    - Request::parse
    - pop_descriptor_chain
    - deref_mut
    - Result::memory
    - usize::status
    - Result::head_index
    - memory
    - '&mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>::signal_used_queue'
    - load
    - add_used
    - Result::set_writeback
    - lock
    - unwrap
    - result::Result::unwrap
    - needs_notification
    - Result::execute
    - Result::write_obj
    - deref
    linkageType: ''
    returnType: bool
    signature: 'fn process_queue(&mut self,vring: &mut RwLockWriteGuard<VringState<GuestMemoryAtomic<GuestMemoryMmap>>>,)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:214,1
    - Dst: read
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:215,1
    - Dst: write
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:216,1
    - Dst: custom_flags
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:218,1
    - Dst: open
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:220,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:220,1
    - Dst: qcow::RawFile::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:221,1
    - Dst: block::build_serial
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:223,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:223,1
    - Dst: qcow::detect_image_type
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:224,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:224,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:226,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:226,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:228,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:228,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:228,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:228,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:232,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:232,1
    - Dst: seek
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:232,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:232,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:232,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:242,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:245,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:246,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:247,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:247,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:249,1
    - Dst: VhostUserBlkThread::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:249,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:250,1
    - Dst: Vec::clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:251,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:253,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:254,1
    - Dst: usize::push
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:256,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:257,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 78
    argCount: 7
    argNames:
    - image_path
    - num_queues
    - rdonly
    - direct
    - poll_queue
    - queue_size
    - mem
    argTypes:
    - '&str'
    - usize
    - bool
    - bool
    - bool
    - usize
    - GuestMemoryAtomic<GuestMemoryMmap>
    constantsTouched: []
    func_position:
      end: 271
      start: 205
    functionDepth: 12
    functionLinenumber: 205
    functionLinenumberEnd: 271
    functionName: VhostUserBlkBackend::new
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 1
    functionsReached:
    - block::build_serial
    - usize::push
    - AtomicBool::new
    - Vec::clone
    - Result::unwrap
    - custom_flags
    - Ok
    - OpenOptions::new
    - qcow::detect_image_type
    - Default::default
    - SeekFrom::End
    - Vec::new
    - seek
    - Arc::new
    - qcow::RawFile::new
    - GuestMemoryMmap::clone
    - VhostUserBlkThread::new
    - Mutex::new
    - lock
    - unwrap
    - read
    - QcowFile::from
    - clone
    - open
    - Vec::push
    - PathBuf::from
    - write
    linkageType: ''
    returnType: Result
    signature: 'fn new(image_path: &str,num_queues: usize,rdonly: bool,direct: bool,poll_queue:
      bool,queue_size: usize,mem: GuestMemoryAtomic<GuestMemoryMmap>,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 273
    functionDepth: 16
    functionLinenumber: 273
    functionLinenumberEnd: 293
    functionName: VhostUserBlkBackend::update_writeback
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 2
    functionsReached:
    - store
    linkageType: ''
    returnType: void
    signature: fn update_writeback(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: VhostUserBlkBackend::num_queues
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn num_queues(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: VhostUserBlkBackend::max_queue_size
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn max_queue_size(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 323
    functionName: VhostUserBlkBackend::features
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - bits
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserBlkBackend::update_writeback
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - features
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 17
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: VhostUserBlkBackend::acked_features
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - VhostUserBlkBackend::update_writeback
    linkageType: ''
    returnType: void
    signature: 'fn acked_features(&mut self, features: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: VhostUserBlkBackend::protocol_features
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VhostUserProtocolFeatures
    signature: fn protocol_features(&self) -> VhostUserProtocolFeatures
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:337,1
    - Dst: Vec::get_mut
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:338,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: VhostUserBlkBackend::set_event_idx
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::get_mut
    - iter_mut
    linkageType: ''
    returnType: void
    signature: 'fn set_event_idx(&mut self, enabled: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:350,1
    - Dst: into
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:350,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:355,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:355,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:358,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:363,1
    - Dst: Vec::process_queue
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:365,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:366,1
    - Dst: elapsed
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:367,1
    - Dst: as_micros
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:367,1
    - Dst: get_queue_mut
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:379,1
    - Dst: enable_notification
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:379,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:381,1
    - Dst: deref
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:381,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:379,1
    - Dst: Vec::process_queue
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:383,1
    - Dst: Vec::process_queue
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:389,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:392,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:394,1
    - Dst: into
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:394,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 76
    argCount: 4
    argNames:
    - device_event
    - evset
    - vrings
    - thread_id
    argTypes:
    - u16
    - EventSet
    - '&[VringRwLock<GuestMemoryAtomic<GuestMemoryMmap>>]'
    - usize
    constantsTouched: []
    func_position:
      end: 396
      start: 342
    functionDepth: 13
    functionLinenumber: 342
    functionLinenumberEnd: 396
    functionName: VhostUserBlkBackend::handle_event
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - enable_notification
    - get_queue_mut
    - deref
    - as_micros
    - into
    - get_mut
    - Err
    - Vec::process_queue
    - Ok
    - unwrap
    - memory
    - elapsed
    linkageType: ''
    returnType: VhostUserBackendResult
    signature: 'fn handle_event(&mut self,device_event: u16,evset: EventSet,vrings:
      &[VringRwLock<GuestMemoryAtomic<GuestMemoryMmap>>],thread_id: usize,) -> VhostUserBackendResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:399,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _offset
    - _size
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: VhostUserBlkBackend::get_config
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_slice
    - to_vec
    linkageType: ''
    returnType: Vec
    signature: 'fn get_config(&self, _offset: u32, _size: u32) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:403,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:404,1
    - Dst: len
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:405,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:408,1
    - Dst: io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:408,1
    - Dst: split_at_mut
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:410,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:411,1
    - Dst: VhostUserBlkBackend::update_writeback
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:412,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 414
      start: 402
    functionDepth: 17
    functionLinenumber: 402
    functionLinenumberEnd: 414
    functionName: VhostUserBlkBackend::set_config
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - VhostUserBlkBackend::update_writeback
    - Err
    - copy_from_slice
    - as_mut_slice
    - len
    - io::Error::from_raw_os_error
    - split_at_mut
    - String::len
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn set_config(&mut self, offset: u32, data: &[u8]) -> result::Result<(),
      io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:417,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:418,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:418,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:418,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - thread_index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 13
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: VhostUserBlkBackend::exit_event
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - lock
    - Some
    - unwrap
    - try_clone
    linkageType: ''
    returnType: Option
    signature: 'fn exit_event(&self, thread_index: usize) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: VhostUserBlkBackend::queues_per_thread
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Vec
    signature: fn queues_per_thread(&self) -> Vec<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _mem
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: VhostUserBlkBackend::update_memory
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: VhostUserBackendResult
    signature: 'fn update_memory(&mut self,_mem: GuestMemoryAtomic<GuestMemoryMmap>,)
      -> VhostUserBackendResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:451,1
    - Dst: add
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:452,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:452,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:452,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:452,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:452,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:452,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:452,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:460,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:460,1
    - Dst: get
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:462,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:462,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:463,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:463,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:463,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:466,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:468,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:468,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:468,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:471,1
    - Dst: std::convert
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:473,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:473,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:473,1
    - Dst: get
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:477,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:477,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:478,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:478,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:478,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:481,1
    - Dst: std::convert
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:483,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:483,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:483,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 75
    argCount: 1
    argNames:
    - backend
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 497
      start: 450
    functionDepth: 10
    functionLinenumber: 450
    functionLinenumberEnd: 497
    functionName: VhostUserBlkBackendConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 1
    functionsReached:
    - vm::Result::ok_or
    - map_err
    - add
    - parse
    - option_parser::Toggle
    - Result::map_err
    - convert::<Toggle>
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - get
    - std::convert
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'fn parse(backend: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserBlkBackendConfig::parse
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:501,1
    - Dst: process::exit
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:505,1
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:509,1
    - Dst: GuestMemoryMmap::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:509,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:511,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:511,1
    - Dst: VhostUserBlkBackend::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:512,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:519,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:512,1
    - Dst: Listener::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:526,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:526,1
    - Dst: VhostUserDaemon::new
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:529,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:529,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:529,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:529,1
    - Dst: start
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:533,1
    - Dst: process::exit
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:535,1
    - Dst: wait
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:538,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:542,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:542,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:542,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:543,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:543,1
    - Dst: write
      Src: /src/cloud-hypervisor/vhost_user_block/src/lib.rs:543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 1
    argNames:
    - backend_command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 547
      start: 500
    functionDepth: 13
    functionLinenumber: 500
    functionLinenumberEnd: 547
    functionName: start_block_backend
    functionSourceFile: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
    functionUses: 0
    functionsReached:
    - RwLock::new
    - GuestMemoryAtomic::new
    - Result::to_string
    - Listener::new
    - Result::read
    - Result::unwrap
    - VhostUserBlkBackend::new
    - Vec::lock
    - Arc::new
    - GuestMemoryMmap::clone
    - start
    - GuestMemoryMmap::new
    - iter
    - unwrap
    - Result::clone
    - wait
    - VhostUserDaemon::new
    - process::exit
    - VhostUserBlkBackendConfig::parse
    - IoResult::unwrap
    - write
    linkageType: ''
    returnType: void
    signature: 'pub fn start_block_backend(backend_command: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::HttpApi
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:102,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: TargetApi::new_http_api
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 5
    functionsReached:
    - temp_api_path
    - Self::HttpApi
    linkageType: ''
    returnType: Self
    signature: 'fn new_http_api(tmp_dir: &TempDir) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:108,1
    - Dst: file_name
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:108,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:108,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:108,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:108,1
    - Dst: Self::DBusApi
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: TargetApi::new_dbus_api
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 5
    functionsReached:
    - '&TempDir::as_path'
    - unwrap
    - file_name
    - Self::DBusApi
    - to_str
    linkageType: ''
    returnType: Self
    signature: 'fn new_dbus_api(tmp_dir: &TempDir) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: TargetApi::guest_args
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn guest_args(&self) -> Vec<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TargetApi::guest_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: TargetApi::remote_args
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - TargetApi::guest_args
    linkageType: ''
    returnType: Vec
    signature: fn remote_args(&self) -> Vec<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:136,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:136,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:137,1
    - Dst: TargetApi::remote_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:137,1
    - Dst: '&mut Self::arg'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:138,1
    - Dst: '&mut Self::arg'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:141,1
    - Dst: '&mut Self::output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:144,1
    - Dst: (bool, Vec::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:144,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:145,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - command
    - arg
    argTypes:
    - '&str'
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: TargetApi::remote_command
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::output'
    - '&mut Self::args'
    - success
    - (bool, Vec::unwrap
    - String::from_utf8_lossy
    - '&mut Self::arg'
    - Command::new
    - TargetApi::remote_args
    - clh_command
    linkageType: ''
    returnType: bool
    signature: 'fn remote_command(&self, command: &str, arg: Option<&str>) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:159,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:159,1
    - Dst: '&TargetApi::guest_args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:160,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:159,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:159,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:159,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:165,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:165,1
    - Dst: api_create_body
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:172,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:174,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:174,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:174,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:178,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:178,1
    - Dst: std::fs::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:179,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:179,1
    - Dst: as_os_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:180,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:180,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:180,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:186,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:186,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:188,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:194,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:195,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:195,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - target_api
    - guest
    argTypes:
    - '&TargetApi'
    - '&Guest'
    constantsTouched: []
    func_position:
      end: 198
      start: 158
    functionDepth: 13
    functionLinenumber: 158
    functionLinenumberEnd: 198
    functionName: _test_api_create_boot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - std::fs::write
    - to_str
    - PathBuf::to_str
    - kill_child
    - handle_child_output
    - api_create_body
    - thread::sleep
    - wait_with_output
    - std::time::Duration::new
    - unwrap
    - join
    - '&TargetApi::guest_args'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - as_os_str
    - std::panic::catch_unwind
    - IoResult::unwrap
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_api_create_boot(target_api: &TargetApi, guest: &Guest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:204,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:204,1
    - Dst: '&TargetApi::guest_args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:205,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:204,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:204,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:204,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:210,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:210,1
    - Dst: api_create_body
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:217,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:219,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:219,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:219,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:223,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:223,1
    - Dst: std::fs::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:224,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:224,1
    - Dst: as_os_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:225,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:225,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:225,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:227,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:233,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:233,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:241,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:241,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:242,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:242,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:245,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:245,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:253,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:253,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:260,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:261,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:261,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 2
    argNames:
    - target_api
    - guest
    argTypes:
    - '&TargetApi'
    - '&Guest'
    constantsTouched: []
    func_position:
      end: 264
      start: 203
    functionDepth: 15
    functionLinenumber: 203
    functionLinenumberEnd: 264
    functionName: _test_api_shutdown
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - std::fs::write
    - to_str
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - ssh_command
    - handle_child_output
    - api_create_body
    - thread::sleep
    - wait_with_output
    - std::time::Duration::new
    - unwrap
    - join
    - '&TargetApi::guest_args'
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - as_os_str
    - std::panic::catch_unwind
    - IoResult::unwrap
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_api_shutdown(target_api: &TargetApi, guest: &Guest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:270,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:270,1
    - Dst: '&TargetApi::guest_args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:271,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:270,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:270,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:270,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:276,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:276,1
    - Dst: api_create_body
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:283,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:285,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:285,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:285,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:288,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:288,1
    - Dst: std::fs::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:289,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:289,1
    - Dst: as_os_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:290,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:290,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:290,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:292,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:298,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:298,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:306,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:306,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:307,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:307,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:310,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:310,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:320,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:320,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:327,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:328,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:328,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 82
    argCount: 2
    argNames:
    - target_api
    - guest
    argTypes:
    - '&TargetApi'
    - '&Guest'
    constantsTouched: []
    func_position:
      end: 331
      start: 269
    functionDepth: 15
    functionLinenumber: 269
    functionLinenumberEnd: 331
    functionName: _test_api_delete
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - std::fs::write
    - to_str
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - ssh_command
    - handle_child_output
    - api_create_body
    - thread::sleep
    - wait_with_output
    - std::time::Duration::new
    - unwrap
    - join
    - '&TargetApi::guest_args'
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - as_os_str
    - std::panic::catch_unwind
    - IoResult::unwrap
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_api_delete(target_api: &TargetApi, guest: &Guest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:338,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:338,1
    - Dst: '&TargetApi::guest_args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:339,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:338,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:338,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:338,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:344,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:344,1
    - Dst: api_create_body
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:351,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:353,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:353,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:353,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:357,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:357,1
    - Dst: std::fs::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:358,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:358,1
    - Dst: as_os_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:359,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:359,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:359,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:365,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:365,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:367,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:378,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:378,1
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:381,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:381,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:395,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:395,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:401,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:402,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:402,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 2
    argNames:
    - target_api
    - guest
    argTypes:
    - '&TargetApi'
    - '&Guest'
    constantsTouched: []
    func_position:
      end: 405
      start: 337
    functionDepth: 13
    functionLinenumber: 337
    functionLinenumberEnd: 405
    functionName: _test_api_pause_resume
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - std::fs::write
    - ssh_command_ip
    - to_str
    - PathBuf::to_str
    - Result::unwrap_err
    - kill_child
    - handle_child_output
    - api_create_body
    - thread::sleep
    - wait_with_output
    - std::time::Duration::new
    - unwrap
    - join
    - '&TargetApi::guest_args'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - as_os_str
    - std::panic::catch_unwind
    - IoResult::unwrap
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_api_pause_resume(target_api: &TargetApi, guest: &Guest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::OpenOptions::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:408,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:408,1
    - Dst: IoResult::read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:408,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:408,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:408,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:418,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:418,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:420,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:420,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:422,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:422,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:424,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:424,1
    - Dst: pty_read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:429,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:431,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:433,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:433,1
    - Dst: Receiver::try_recv
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:434,1
    - Dst: Result::contains
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - pty_path
    argTypes:
    - PathBuf
    constantsTouched: []
    func_position:
      end: 451
      start: 407
    functionDepth: 9
    functionLinenumber: 407
    functionLinenumberEnd: 451
    functionName: _test_pty_interaction
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - std::fs::OpenOptions::new
    - Result::write
    - Result::contains
    - thread::sleep
    - String::new
    - std::time::Duration::new
    - IoResult::open
    - Receiver::try_recv
    - pty_read
    - unwrap
    - IoResult::read
    linkageType: ''
    returnType: void
    signature: 'fn _test_pty_interaction(pty_path: PathBuf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:454,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:454,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:455,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:458,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:459,1
    - Dst: Self::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:459,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:459,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:462,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:462,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:462,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:462,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:462,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:465,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:465,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:465,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:465,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:467,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:465,1
    - Dst: Vec::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:465,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:465,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:472,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 2
    argNames:
    - tmp_dir
    - shared_dir
    argTypes:
    - '&TempDir'
    - '&str'
    constantsTouched: []
    func_position:
      end: 475
      start: 453
    functionDepth: 5
    functionLinenumber: 453
    functionLinenumberEnd: 475
    functionName: prepare_virtiofsd
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - dirs::home_dir
    - thread::sleep
    - push
    - Self::as_str
    - std::time::Duration::new
    - Self::args
    - workload_path::push
    - join
    - Command::new
    - Vec::args
    - unwrap
    - Vec::spawn
    - '&TempDir::as_path'
    - io::Result::unwrap
    - to_str
    - String::from
    - Self::to_str
    linkageType: ''
    returnType: (std::process::Child, String)
    signature: 'fn prepare_virtiofsd(tmp_dir: &TempDir, shared_dir: &str) -> (std::process::Child,
      String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:484,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:484,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:485,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:488,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:489,1
    - Dst: Self::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:489,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:489,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:491,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:491,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:491,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:491,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:491,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:494,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:494,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:494,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:497,1
    - Dst: Vec::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:494,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:494,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:505,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 5
    argNames:
    - tmp_dir
    - blk_img
    - num_queues
    - rdonly
    - direct
    argTypes:
    - '&TempDir'
    - '&str'
    - usize
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 508
      start: 477
    functionDepth: 5
    functionLinenumber: 477
    functionLinenumberEnd: 508
    functionName: prepare_vubd
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - dirs::home_dir
    - as_str
    - thread::sleep
    - push
    - std::time::Duration::new
    - Self::args
    - workload_path::push
    - join
    - Command::new
    - Vec::spawn
    - unwrap
    - io::Result::unwrap
    - '&TempDir::as_path'
    - to_str
    - clh_command
    - String::from
    - Self::to_str
    linkageType: ''
    returnType: (std::process::Child, String)
    signature: 'fn prepare_vubd(tmp_dir: &TempDir,blk_img: &str,num_queues: usize,rdonly:
      bool,direct: bool,) -> (std::process::Child, String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:511,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:511,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:511,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:511,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: temp_vsock_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 4
    functionsReached:
    - '&TempDir::as_path'
    - unwrap
    - join
    - to_str
    - String::from
    linkageType: ''
    returnType: String
    signature: 'fn temp_vsock_path(tmp_dir: &TempDir) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:515,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:516,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:516,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:516,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: temp_api_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 52
    functionsReached:
    - '&TempDir::as_path'
    - unwrap
    - join
    - to_str
    - String::from
    linkageType: ''
    returnType: String
    signature: 'fn temp_api_path(tmp_dir: &TempDir) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:525,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:525,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:525,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:525,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: temp_event_monitor_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 8
    functionsReached:
    - '&TempDir::as_path'
    - unwrap
    - join
    - to_str
    - String::from
    linkageType: ''
    returnType: String
    signature: 'fn temp_event_monitor_path(tmp_dir: &TempDir) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:530,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:530,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:530,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:530,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:530,1
    - Dst: std::fs::create_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:531,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: temp_snapshot_dir_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 6
    functionsReached:
    - '&TempDir::as_path'
    - std::fs::create_dir
    - unwrap
    - join
    - to_str
    - String::from
    linkageType: ''
    returnType: String
    signature: 'fn temp_snapshot_dir_path(tmp_dir: &TempDir) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:536,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:536,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:536,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:536,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: temp_vmcore_file_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - '&TempDir::as_path'
    - unwrap
    - join
    - to_str
    - String::from
    linkageType: ''
    returnType: String
    signature: 'fn temp_vmcore_file_path(tmp_dir: &TempDir) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:96,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:96,1
    - Dst: push
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:97,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:101,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: direct_kernel_boot_path
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 96
    functionsReached:
    - workload_path::push
    - push
    - unwrap
    - dirs::home_dir
    linkageType: ''
    returnType: PathBuf
    signature: fn direct_kernel_boot_path() -> PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:556,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:556,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:557,1
    - Dst: PathBuf::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: edk2_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 16
    functionsReached:
    - PathBuf::push
    - push
    - unwrap
    - dirs::home_dir
    linkageType: ''
    returnType: PathBuf
    signature: fn edk2_path() -> PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:565,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:565,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:566,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:570,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:572,1
    - Dst: workload_path::into_os_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:574,1
    - Dst: into_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:574,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 575
    functionName: cloud_hypervisor_release_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 5
    functionsReached:
    - dirs::home_dir
    - into_string
    - workload_path::into_os_string
    - push
    - workload_path::push
    - unwrap
    linkageType: ''
    returnType: String
    signature: fn cloud_hypervisor_release_path() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:585,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:585,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:585,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:585,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:585,1
    - Dst: push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:593,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:593,1
    - Dst: push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:597,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:597,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:600,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:600,1
    - Dst: bool::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:601,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 6
    argNames:
    - tmp_dir
    - ip
    - tap
    - mtu
    - num_queues
    - client_mode
    argTypes:
    - '&TempDir'
    - '&str'
    - Option<&str>
    - Option<u16>
    - usize
    - bool
    constantsTouched: []
    func_position:
      end: 604
      start: 577
    functionDepth: 5
    functionLinenumber: 577
    functionLinenumberEnd: 604
    functionName: prepare_vhost_user_net_daemon
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&TempDir::as_path'
    - as_str
    - push_str
    - Command::new
    - bool::args
    - unwrap
    - join
    - to_str
    - clh_command
    - String::from
    linkageType: ''
    returnType: (std::process::Command, String)
    signature: 'fn prepare_vhost_user_net_daemon(tmp_dir: &TempDir,ip: &str,tap: Option<&str>,mtu:
      Option<u16>,num_queues: usize,client_mode: bool,) -> (std::process::Command,
      String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:607,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:607,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:607,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:607,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:607,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:608,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:609,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:609,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:609,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:609,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:609,1
    - Dst: std::fs::create_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:616,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:616,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:618,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - tmp_dir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 632
      start: 606
    functionDepth: 5
    functionLinenumber: 606
    functionLinenumberEnd: 632
    functionName: prepare_swtpm_daemon
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - '&TempDir::as_path'
    - std::fs::create_dir
    - Self::args
    - Command::new
    - unwrap
    - join
    - to_str
    - String::from
    linkageType: ''
    returnType: (std::process::Command, String)
    signature: 'fn prepare_swtpm_daemon(tmp_dir: &TempDir) -> (std::process::Command,
      String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:109,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:109,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:110,1
    - Dst: '&mut Self::arg'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:113,1
    - Dst: '&mut Self::output'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:115,1
    - Dst: (bool, Vec::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:115,1
    - Dst: success
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - api_socket
    - command
    - arg
    argTypes:
    - '&str'
    - '&str'
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: remote_command
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 4
    functionsReached:
    - std::process::Command::new
    - '&mut Self::output'
    - '&mut Self::args'
    - success
    - (bool, Vec::unwrap
    - '&mut Self::arg'
    - clh_command
    linkageType: ''
    returnType: bool
    signature: 'fn remote_command(api_socket: &str, command: &str, arg: Option<&str>)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:653,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:653,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:654,1
    - Dst: '&mut Self::arg'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:657,1
    - Dst: '&mut Self::output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:660,1
    - Dst: (bool, Vec::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:660,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - api_socket
    - command
    - arg
    argTypes:
    - '&str'
    - '&str'
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 663
      start: 652
    functionDepth: 5
    functionLinenumber: 652
    functionLinenumberEnd: 663
    functionName: remote_command_w_output
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 18
    functionsReached:
    - '&mut Self::output'
    - (bool, Vec::expect
    - '&mut Self::args'
    - success
    - Command::new
    - '&mut Self::arg'
    - clh_command
    linkageType: ''
    returnType: (bool, Vec
    signature: 'fn remote_command_w_output(api_socket: &str, command: &str, arg: Option<&str>)
      -> (bool, Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:672,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:672,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:673,1
    - Dst: '&mut Self::arg'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:676,1
    - Dst: '&mut Self::arg'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:680,1
    - Dst: '&mut Self::arg'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:684,1
    - Dst: '&mut Self::status'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:687,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:687,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:687,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:692,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:696,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:701,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 5
    argNames:
    - api_socket
    - desired_vcpus
    - desired_ram
    - desired_balloon
    - event_file
    argTypes:
    - '&str'
    - Option<u8>
    - Option<usize>
    - Option<usize>
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 706
      start: 665
    functionDepth: 5
    functionLinenumber: 665
    functionLinenumberEnd: 706
    functionName: resize_command
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 14
    functionsReached:
    - expect
    - '&mut Self::status'
    - '&mut Self::args'
    - success
    - '&str::to_string'
    - thread::sleep
    - std::time::Duration::new
    - Command::new
    - '&mut Self::arg'
    - clh_command
    linkageType: ''
    returnType: bool
    signature: 'fn resize_command(api_socket: &str,desired_vcpus: Option<u8>,desired_ram:
      Option<usize>,desired_balloon: Option<usize>,event_file: Option<&str>,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:709,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:709,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:710,1
    - Dst: '&mut Self::status'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:717,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:717,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - api_socket
    - id
    - desired_size
    argTypes:
    - '&str'
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: resize_zone_command
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 3
    functionsReached:
    - expect
    - '&mut Self::status'
    - '&mut Self::args'
    - success
    - Command::new
    - clh_command
    linkageType: ''
    returnType: bool
    signature: 'fn resize_zone_command(api_socket: &str, id: &str, desired_size: &str)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:721,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:721,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:722,1
    - Dst: '&mut Self::status'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:729,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:729,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - api_socket
    - id
    - desired_size
    argTypes:
    - '&str'
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 730
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 730
    functionName: resize_disk_command
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - expect
    - '&mut Self::status'
    - '&mut Self::args'
    - success
    - Command::new
    - clh_command
    linkageType: ''
    returnType: bool
    signature: 'fn resize_disk_command(api_socket: &str, id: &str, desired_size: &str)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 754
    functionName: setup_ovs_dpdk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn setup_ovs_dpdk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exec_host_command_status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 8
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: cleanup_ovs_dpdk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 4
    functionsReached:
    - exec_host_command_status
    linkageType: ''
    returnType: void
    signature: fn cleanup_ovs_dpdk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:766,1
    - Dst: cloud_hypervisor_release_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:769,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:771,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:778,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:778,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:778,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: '&Guest::default_net_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:781,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:781,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:774,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:791,1
    - Dst: '&Guest::wait_vm_boot'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:792,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:792,1
    - Dst: '&Guest::ssh_command'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:794,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:794,1
    - Dst: '&Guest::ssh_command'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:799,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:799,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:803,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:804,1
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:805,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:805,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:814,1
    - Dst: cleanup_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:815,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:817,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:818,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:818,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:819,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:828,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:828,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:828,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: '&Guest::default_net_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:831,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:831,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:823,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:836,1
    - Dst: '&Guest::wait_vm_boot'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:837,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:837,1
    - Dst: '&Guest::ssh_command'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:839,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:839,1
    - Dst: '&Guest::ssh_command'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:844,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:844,1
    - Dst: '&Guest::ssh_command'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:849,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:849,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:851,1
    - Dst: cleanup_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:852,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:854,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:855,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:856,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:856,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 172
    argCount: 4
    argNames:
    - guest1
    - guest2
    - api_socket
    - release_binary
    argTypes:
    - '&Guest'
    - '&Guest'
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 862
      start: 760
    functionDepth: 15
    functionLinenumber: 760
    functionLinenumberEnd: 862
    functionName: setup_ovs_dpdk_guests
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - GuestCommand::new_with_binary_path
    - u64::is_err
    - setup_ovs_dpdk
    - '&mut Self::args'
    - '&Guest::ssh_command'
    - cleanup_ovs_dpdk
    - ssh_command_ip
    - Result::unwrap
    - PathBuf::to_str
    - handle_child_output
    - Vec::args
    - '&Guest::default_net_string'
    - thread::spawn
    - clh_command
    - wait_with_output
    - '&Guest::wait_vm_boot'
    - unwrap
    - clone
    - '&mut Self::spawn'
    - cloud_hypervisor_release_path
    - Self::args
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: (Child, Child)
    signature: 'fn setup_ovs_dpdk_guests(guest1: &Guest,guest2: &Guest,api_socket:
      &str,release_binary: bool,) -> (Child, Child)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:870,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:870,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:871,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:875,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:879,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:880,1
    - Dst: String::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:884,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:884,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - _fw_type
    argTypes:
    - FwType
    constantsTouched: []
    func_position:
      end: 885
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 885
    functionName: fw_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 12
    functionsReached:
    - dirs::home_dir
    - push
    - unwrap
    - String::to_str
    - to_string
    - String::push
    linkageType: ''
    returnType: String
    signature: 'fn fw_path(_fw_type: FwType) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:896,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:896,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:898,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&serde_json::Value'
    constantsTouched: []
    func_position:
      end: 906
      start: 894
    functionDepth: 5
    functionLinenumber: 894
    functionLinenumberEnd: 906
    functionName: MetaEvent::match_with_json_event
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - as_str
    - unwrap
    linkageType: ''
    returnType: bool
    signature: 'pub fn match_with_json_event(&self, v: &serde_json::Value) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:463,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:463,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:464,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:465,1
    - Dst: trim
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:465,1
    - Dst: split
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:465,1
    - Dst: "trim()\n        .split(\"\\n\\n\")\n        .collect::<Vec<&str>>"
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:465,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:470,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:470,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - event_file
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 473
      start: 462
    functionDepth: 9
    functionLinenumber: 462
    functionLinenumberEnd: 473
    functionName: parse_event_file
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 4
    functionsReached:
    - Vec::new
    - trim
    - std::result::Result::unwrap
    - serde_json::from_str
    - String::from_utf8_lossy
    - IoResult::unwrap
    - fs::read
    - Result::push
    - split
    - "trim()\n        .split(\"\\n\\n\")\n        .collect::<Vec<&str>>"
    linkageType: ''
    returnType: Vec
    signature: 'fn parse_event_file(event_file: &str) -> Vec<serde_json::Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_event_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:928,1
    - Dst: '&[&MetaEvent]::len'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:929,1
    - Dst: match_with_json_event
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - expected_events
    - event_file
    argTypes:
    - '&[&MetaEvent]'
    - '&str'
    constantsTouched: []
    func_position:
      end: 951
      start: 927
    functionDepth: 10
    functionLinenumber: 927
    functionLinenumberEnd: 951
    functionName: check_sequential_events
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - match_with_json_event
    - parse_event_file
    - '&[&MetaEvent]::len'
    linkageType: ''
    returnType: bool
    signature: 'fn check_sequential_events(expected_events: &[&MetaEvent], event_file:
      &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_event_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:956,1
    - Dst: '&[&MetaEvent]::len'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:958,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:960,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:960,1
    - Dst: match_with_json_event
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - expected_events
    - event_file
    argTypes:
    - '&[&MetaEvent]'
    - '&str'
    constantsTouched: []
    func_position:
      end: 973
      start: 955
    functionDepth: 10
    functionLinenumber: 955
    functionLinenumberEnd: 973
    functionName: check_sequential_events_exact
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - parse_event_file
    - '&[&MetaEvent]::len'
    - impl Iterator::enumerate
    - match_with_json_event
    - Vec::iter
    linkageType: ''
    returnType: bool
    signature: 'fn check_sequential_events_exact(expected_events: &[&MetaEvent], event_file:
      &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_event_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:978,1
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:980,1
    - Dst: '&[&MetaEvent]::len'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:980,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:982,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:982,1
    - Dst: match_with_json_event
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - latest_events
    - event_file
    argTypes:
    - '&[&MetaEvent]'
    - '&str'
    constantsTouched: []
    func_position:
      end: 995
      start: 977
    functionDepth: 10
    functionLinenumber: 977
    functionLinenumberEnd: 995
    functionName: check_latest_events_exact
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - parse_event_file
    - '&[&MetaEvent]::len'
    - impl Iterator::enumerate
    - match_with_json_event
    - Vec::iter
    - Vec::len
    linkageType: ''
    returnType: bool
    signature: 'fn check_latest_events_exact(latest_events: &[&MetaEvent], event_file:
      &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:998,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:998,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:999,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:999,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1001,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1002,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1002,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1003,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1005,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1008,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1024,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1025,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1025,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1095,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1096,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1096,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1098,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 78
    argCount: 4
    argNames:
    - threads_per_core
    - cores_per_package
    - packages
    - use_fw
    argTypes:
    - u8
    - u8
    - u8
    - bool
    constantsTouched: []
    func_position:
      end: 1099
      start: 997
    functionDepth: 15
    functionLinenumber: 997
    functionLinenumberEnd: 1099
    functionName: test_cpu_topology
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 6
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - fw_path
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_cpu_topology(threads_per_core: u8, cores_per_package: u8,
      packages: u8, use_fw: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1103,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1103,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1104,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1104,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1105,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1107,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1110,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1112,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1130,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1130,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1115,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1139,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1140,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1140,1
    - Dst: check_numa_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1142,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1143,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1144,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1145,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1152,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1156,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1157,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1158,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1161,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1161,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1162,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1162,1
    - Dst: check_numa_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1164,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1165,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1166,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1172,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1173,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1173,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 120
    argCount: 1
    argNames:
    - acpi
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1176
      start: 1102
    functionDepth: 15
    functionLinenumber: 1102
    functionLinenumberEnd: 1176
    functionName: _test_guest_numa_nodes
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - check_numa_common
    - resize_zone_command
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - Vec::capture_output
    - edk2_path
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_guest_numa_nodes(acpi: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1180,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1180,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1181,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1181,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1182,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1183,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1186,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1189,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1191,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1196,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1196,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1194,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1203,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1203,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1205,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1206,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1206,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1210,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1210,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 1
    argNames:
    - acpi
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1213
      start: 1179
    functionDepth: 15
    functionLinenumber: 1179
    functionLinenumberEnd: 1213
    functionName: _test_power_button
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - Vec::capture_output
    - edk2_path
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_power_button(acpi: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1231,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1231,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1232,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1232,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1233,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1235,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1238,1
    - Dst: MacAddr::local_random
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1238,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1243,1
    - Dst: prepare_daemon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1245,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1271,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1273,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1275,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1275,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1278,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1272,1
    - Dst: Self::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1286,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1286,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1288,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1288,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1289,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1289,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1291,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1291,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1293,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1293,1
    - Dst: Self::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1294,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1294,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1297,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1298,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1298,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1301,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1306,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1365,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1369,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1369,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1371,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1371,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1380,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1381,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1381,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1383,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1383,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1384,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1385,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 135
    argCount: 5
    argNames:
    - tap
    - num_queues
    - prepare_daemon
    - generate_host_mac
    - client_mode_daemon
    argTypes:
    - Option<&str>
    - usize
    - '&PrepareNetDaemon'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1388
      start: 1224
    functionDepth: 15
    functionLinenumber: 1224
    functionLinenumberEnd: 1388
    functionName: test_vhost_user_net
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 7
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - MacAddr::local_random
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - exec_host_command_output
    - unwrap
    - wait_vm_boot
    - wait
    - prepare_daemon
    - Self::spawn
    - spawn
    - GuestCommand::new
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn test_vhost_user_net(tap: Option<&str>,num_queues: usize,prepare_daemon:
      &PrepareNetDaemon,generate_host_mac: bool,client_mode_daemon: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1398,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1398,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1399,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1399,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1400,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1402,1
    - Dst: Option<&PrepareBlkDaemon>::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1405,1
    - Dst: prepare_daemon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1408,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1414,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1419,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1421,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1421,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1425,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1430,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1435,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1418,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1443,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1444,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1444,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1482,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1482,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1483,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1485,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1483,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1499,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1503,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1503,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1505,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1505,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1518,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1518,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1519,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1519,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1522,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1523,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1523,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1526,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1526,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1527,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1528,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 124
    argCount: 4
    argNames:
    - num_queues
    - readonly
    - direct
    - prepare_vhost_user_blk_daemon
    argTypes:
    - usize
    - bool
    - bool
    - Option<&PrepareBlkDaemon>
    constantsTouched: []
    func_position:
      end: 1532
      start: 1392
    functionDepth: 15
    functionLinenumber: 1392
    functionLinenumberEnd: 1532
    functionName: test_vhost_user_blk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 3
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - enable_memory_hotplug
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - wait
    - prepare_daemon
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - kill
    - Vec::capture_output
    - io::Result::unwrap
    - Option<&PrepareBlkDaemon>::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn test_vhost_user_blk(num_queues: usize,readonly: bool,direct: bool,prepare_vhost_user_blk_daemon:
      Option<&PrepareBlkDaemon>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1540,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1540,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1541,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1541,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1543,1
    - Dst: disk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1545,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1545,1
    - Dst: Option<&PrepareBlkDaemon>::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1548,1
    - Dst: prepare_daemon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1550,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1552,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1562,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1567,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1569,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1569,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1573,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1574,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1566,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1585,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1586,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1586,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1592,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1593,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1593,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1596,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1596,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1597,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1598,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 83
    argCount: 4
    argNames:
    - num_queues
    - readonly
    - direct
    - prepare_vhost_user_blk_daemon
    argTypes:
    - usize
    - bool
    - bool
    - Option<&PrepareBlkDaemon>
    constantsTouched: []
    func_position:
      end: 1602
      start: 1534
    functionDepth: 15
    functionLinenumber: 1534
    functionLinenumberEnd: 1602
    functionName: test_boot_from_vhost_user_blk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - to_string
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - wait
    - disk
    - '&mut Self::capture_output'
    - prepare_daemon
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - kill
    - io::Result::unwrap
    - Option<&PrepareBlkDaemon>::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn test_boot_from_vhost_user_blk(num_queues: usize,readonly: bool,direct:
      bool,prepare_vhost_user_blk_daemon: Option<&PrepareBlkDaemon>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1611,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1613,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1616,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1617,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1618,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1618,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1619,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1621,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1621,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1622,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1625,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1628,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1631,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1633,1
    - Dst: prepare_daemon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1637,1
    - Dst: workload_path::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1637,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1637,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1639,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1640,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1640,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1640,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1643,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1643,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1640,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1640,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1640,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1640,1
    - Dst: Option<u16>::is_some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1648,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1649,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1666,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1666,1
    - Dst: Self::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1669,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1669,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1669,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1671,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1672,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1672,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1677,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1677,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1691,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1691,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1695,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1695,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1705,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1705,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1718,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1722,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1722,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1724,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1724,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1737,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1737,1
    - Dst: u64::is_ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1742,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1743,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1743,1
    - Dst: prepare_daemon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1745,1
    - Dst: workload_path::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1745,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1745,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1747,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1748,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1748,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1761,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1761,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1774,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1774,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1776,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1776,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1787,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1792,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1793,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1793,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1795,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1796,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1799,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1800,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1803,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 199
    argCount: 3
    argNames:
    - prepare_daemon
    - hotplug
    - pci_segment
    argTypes:
    - '&dyn Fn(&TempDir, &str) -> (std::process::Child, String)'
    - bool
    - Option<u16>
    constantsTouched: []
    func_position:
      end: 1804
      start: 1604
    functionDepth: 15
    functionLinenumber: 1604
    functionLinenumberEnd: 1804
    functionName: _test_virtio_fs
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 4
    functionsReached:
    - '&mut Self::default_net'
    - workload_path::to_str
    - '&mut Self::args'
    - push
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - u64::is_ok
    - dirs::home_dir
    - thread::sleep
    - workload_path::push
    - Vec::args
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Self::capture_output
    - Box::new
    - unwrap
    - wait_vm_boot
    - wait
    - prepare_daemon
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - edk2_path
    - io::Result::unwrap
    - remote_command_w_output
    - Option<u16>::is_some
    linkageType: ''
    returnType: void
    signature: 'fn _test_virtio_fs(prepare_daemon: &dyn Fn(&TempDir, &str) -> (std::process::Child,
      String),hotplug: bool,pci_segment: Option<u16>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1807,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1807,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1808,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1808,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1810,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1812,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1812,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1813,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1813,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1813,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1815,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1815,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1816,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1815,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1815,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1823,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1823,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1829,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1820,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1845,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1846,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1846,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1857,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1857,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1863,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1874,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1875,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1875,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - discard_writes
    - specify_size
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1878
      start: 1806
    functionDepth: 15
    functionLinenumber: 1806
    functionLinenumberEnd: 1878
    functionName: test_virtio_pmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 3
    functionsReached:
    - expect
    - TempFile::new
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - std::process::Command::new
    - handle_child_output
    - reboot_linux
    - output
    - Vec::args
    - as_file
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - set_len
    - wait_vm_boot
    - Self::arg
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_virtio_pmem(discard_writes: bool, specify_size: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1881,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1881,1
    - Dst: count
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pid
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1882
      start: 1880
    functionDepth: 7
    functionLinenumber: 1880
    functionLinenumberEnd: 1882
    functionName: get_fd_count
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - fs::read_dir
    - unwrap
    - count
    linkageType: ''
    returnType: usize
    signature: 'fn get_fd_count(pid: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1885,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1885,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1886,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1886,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1889,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1892,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1894,1
    - Dst: temp_vsock_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1897,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1898,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1900,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1901,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1902,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1903,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1904,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1904,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1904,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1905,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1906,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1907,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1910,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1910,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1913,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1913,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1913,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1915,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1916,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1916,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1919,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1922,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1922,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1929,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1929,1
    - Dst: check_vsock
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1939,1
    - Dst: Result::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1939,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1940,1
    - Dst: check_vsock
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1942,1
    - Dst: Result::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1942,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1949,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1950,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1950,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 109
    argCount: 1
    argNames:
    - hotplug
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1953
      start: 1884
    functionDepth: 15
    functionLinenumber: 1884
    functionLinenumberEnd: 1953
    functionName: _test_virtio_vsock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - temp_vsock_path
    - reboot_linux
    - thread::sleep
    - '&mut Self::default_disks'
    - check_vsock
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - Result::as_str
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - edk2_path
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: 'fn _test_virtio_vsock(hotplug: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1956,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1956,1
    - Dst: trim
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1956,1
    - Dst: "unwrap()\n        .trim()\n        .parse::<u32>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1956,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 1961
    functionName: get_ksm_pages_shared
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - trim
    - fs::read_to_string
    - unwrap
    - "unwrap()\n        .trim()\n        .parse::<u32>"
    linkageType: ''
    returnType: u32
    signature: fn get_ksm_pages_shared() -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ksm_pages_shared
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1971,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1973,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1973,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1974,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1974,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1977,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1978,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1978,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1978,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: Self::default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1981,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1981,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1975,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1987,1
    - Dst: Self::wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1988,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1988,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1990,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1991,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1992,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1992,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1993,1
    - Dst: get_ksm_pages_shared
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1997,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1999,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:1999,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2000,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2000,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2003,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2004,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2004,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2004,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: Self::default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2007,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2007,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2001,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2013,1
    - Dst: Self::wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2014,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2014,1
    - Dst: get_ksm_pages_shared
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2015,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2029,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2030,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2032,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2032,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2033,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2033,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2035,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 145
    argCount: 1
    argNames:
    - mergeable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2036
      start: 1963
    functionDepth: 15
    functionLinenumber: 1963
    functionLinenumberEnd: 2036
    functionName: test_memory_mergeable
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - u64::is_err
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - get_ksm_pages_shared
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait
    - Self::default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Self::wait_vm_boot
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_memory_mergeable(mergeable: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::File::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2039,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2039,1
    - Dst: io::BufReader::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2040,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2043,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2044,1
    - Dst: Result::lines
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2045,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2046,1
    - Dst: Result::contains
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2048,1
    - Dst: Result::split_whitespace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2049,1
    - Dst: collect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2049,1
    - Dst: (String, String, String)::last
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2050,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2050,1
    - Dst: trim
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2050,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2050,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2052,1
    - Dst: Result::starts_with
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2058,1
    - Dst: Result::split_whitespace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2059,1
    - Dst: collect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2059,1
    - Dst: parse::<u32>
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2060,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2060,1
    - Dst: Result::starts_with
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2070,1
    - Dst: Result::split_whitespace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2071,1
    - Dst: collect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2071,1
    - Dst: trim
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2072,1
    - Dst: trim().parse::<u32>
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2072,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2072,1
    - Dst: Result::entry
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2073,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2073,1
    - Dst: super::Result::or_insert
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2073,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 80
    argCount: 2
    argNames:
    - pid
    - guest_memory_size
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 2078
      start: 2038
    functionDepth: 5
    functionLinenumber: 2038
    functionLinenumberEnd: 2078
    functionName: _get_vmm_overhead
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - HashMap::new
    - collect
    - trim
    - '&str::to_string'
    - io::BufReader::new
    - to_string
    - Result::lines
    - fs::File::open
    - Result::split_whitespace
    - String::new
    - Result::entry
    - Result::contains
    - trim().parse::<u32>
    - super::Result::or_insert
    - unwrap
    - Result::clone
    - Result::starts_with
    - parse::<u32>
    - (String, String, String)::last
    linkageType: ''
    returnType: HashMap
    signature: 'fn _get_vmm_overhead(pid: u32, guest_memory_size: u32) -> HashMap<String,
      u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _get_vmm_overhead
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pid
    - guest_memory_size
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 2089
      start: 2080
    functionDepth: 6
    functionLinenumber: 2080
    functionLinenumberEnd: 2089
    functionName: get_vmm_overhead
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - _get_vmm_overhead
    linkageType: ''
    returnType: u32
    signature: 'fn get_vmm_overhead(pid: u32, guest_memory_size: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2093,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2094,1
    - Dst: trim
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2094,1
    - Dst: parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2094,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - pid
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 2095
      start: 2091
    functionDepth: 11
    functionLinenumber: 2091
    functionLinenumberEnd: 2095
    functionName: process_rss_kib
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - trim
    - parse
    - String::from_utf8_lossy
    - exec_host_command_output
    - unwrap
    linkageType: ''
    returnType: usize
    signature: 'fn process_rss_kib(pid: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2114,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2118,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2118,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2120,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2120,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2120,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2120,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2121,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2121,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2121,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2121,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2122,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2122,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2122,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2122,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2123,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2123,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2123,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2123,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2125,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2125,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2125,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2125,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2126,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2126,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2126,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2126,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2127,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2127,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2127,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2127,1
    - Dst: Counters::get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2128,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2128,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2128,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 79
    argCount: 1
    argNames:
    - api_socket
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2140
      start: 2112
    functionDepth: 7
    functionLinenumber: 2112
    functionLinenumberEnd: 2140
    functionName: get_counters
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - Counters::get
    - unwrap_or_default
    - vm::Result::unwrap
    - unwrap
    - get
    - serde_json::from_slice
    - remote_command_w_output
    linkageType: ''
    returnType: Counters
    signature: 'fn get_counters(api_socket: &str) -> Counters'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpsc::channel::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2143,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2144,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2146,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2146,1
    - Dst: read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2148,1
    - Dst: std::str::from_utf8
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2150,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2150,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2150,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - pty
    argTypes:
    - std::fs::File
    constantsTouched: []
    func_position:
      end: 2161
      start: 2142
    functionDepth: 8
    functionLinenumber: 2142
    functionLinenumberEnd: 2161
    functionName: pty_read
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - std::str::from_utf8
    - thread::sleep
    - mpsc::channel::<String>
    - std::time::Duration::new
    - unwrap
    - read
    - to_string
    - thread::spawn
    - Result::send
    linkageType: ''
    returnType: Receiver
    signature: 'fn pty_read(mut pty: std::fs::File) -> Receiver<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2164,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2166,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2166,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2168,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2169,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - api_socket
    - pty_type
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 2173
      start: 2163
    functionDepth: 6
    functionLinenumber: 2163
    functionLinenumberEnd: 2173
    functionName: get_pty_path
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - unwrap_or_default
    - expect
    - as_str
    - PathBuf::from
    - serde_json::from_slice
    - remote_command_w_output
    linkageType: ''
    returnType: PathBuf
    signature: 'fn get_pty_path(api_socket: &str, pty_type: &str) -> PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2178
    functionDepth: 0
    functionLinenumber: 2178
    functionLinenumberEnd: 2199
    functionName: setup_vfio_network_interfaces
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn setup_vfio_network_interfaces()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2209
    functionName: cleanup_vfio_network_interfaces
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn cleanup_vfio_network_interfaces()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2212,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2215,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2215,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2216,1
    - Dst: "to_string()\n        .parse::<u64>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2216,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2216,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2220,1
    - Dst: "to_string()\n        .parse::<u64>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2220,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - api_socket
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2225
      start: 2211
    functionDepth: 6
    functionLinenumber: 2211
    functionLinenumberEnd: 2225
    functionName: balloon_size
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 3
    functionsReached:
    - unwrap_or_default
    - "to_string()\n        .parse::<u64>"
    - unwrap
    - to_string
    - serde_json::from_slice
    - remote_command_w_output
    linkageType: ''
    returnType: u64
    signature: 'fn balloon_size(api_socket: &str) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2228,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2231,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2231,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2232,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2232,1
    - Dst: String::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - api_socket
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2235
      start: 2227
    functionDepth: 6
    functionLinenumber: 2227
    functionLinenumberEnd: 2235
    functionName: vm_state
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_default
    - as_str
    - String::to_string
    - unwrap
    - serde_json::from_slice
    - remote_command_w_output
    linkageType: ''
    returnType: String
    signature: 'fn vm_state(api_socket: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2249,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2251,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2252,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2253,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2253,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2256,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2259,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2261,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2267,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2267,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2271,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2276,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: default_net_string_w_iommu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2282,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2282,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2264,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2287,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2288,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2288,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2338,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2339,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2339,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 73
    argCount: 1
    argNames:
    - acpi
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2342
      start: 2243
    functionDepth: 15
    functionLinenumber: 2243
    functionLinenumberEnd: 2342
    functionName: _test_virtio_iommu
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string_w_iommu
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - String::as_str
    - edk2_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_virtio_iommu(acpi: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2345,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2345,1
    - Dst: trim
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2345,1
    - Dst: "ssh_command(\"sudo last | grep -c reboot\")\n        .unwrap()\n     \
        \   .trim()\n        .parse::<u32>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2345,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - guest
    argTypes:
    - '&Guest'
    constantsTouched: []
    func_position:
      end: 2351
      start: 2344
    functionDepth: 8
    functionLinenumber: 2344
    functionLinenumberEnd: 2351
    functionName: get_reboot_count
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - ssh_command
    - unwrap_or_default
    - trim
    - "ssh_command(\"sudo last | grep -c reboot\")\n        .unwrap()\n        .trim()\n\
      \        .parse::<u32>"
    - Result::unwrap
    linkageType: ''
    returnType: u32
    signature: 'fn get_reboot_count(guest: &Guest) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2362,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2362,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2368,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - guest
    - watchdog_sec
    argTypes:
    - '&Guest'
    - u32
    constantsTouched: []
    func_position:
      end: 2369
      start: 2353
    functionDepth: 8
    functionLinenumber: 2353
    functionLinenumberEnd: 2369
    functionName: enable_guest_watchdog
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - Result::unwrap
    - ssh_command
    linkageType: ''
    returnType: void
    signature: 'fn enable_guest_watchdog(guest: &Guest, watchdog_sec: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2380,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - guest
    argTypes:
    - '&Guest'
    constantsTouched: []
    func_position:
      end: 2381
      start: 2371
    functionDepth: 8
    functionLinenumber: 2371
    functionLinenumberEnd: 2381
    functionName: make_guest_panic
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 2
    functionsReached:
    - Result::unwrap
    - ssh_command
    linkageType: ''
    returnType: void
    signature: 'fn make_guest_panic(guest: &Guest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsRef<Path>::as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2390,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2391,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2393,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2393,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2393,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2393,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2393,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2398,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2398,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2398,1
    - Dst: Vec::write_all
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2399,1
    - Dst: Self::as_bytes
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2399,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2399,1
    - Dst: Vec::write_all
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2400,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2400,1
    - Dst: Vec::flush
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2401,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2401,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2403,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2403,1
    - Dst: (bool, Vec::as_bytes
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2404,1
    - Dst: '&[u8]::iter'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2404,1
    - Dst: impl Iterator::position
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2404,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2404,1
    - Dst: CStr::from_bytes_until_nul
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2405,1
    - Dst: (bool, Vec::as_bytes
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2405,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2405,1
    - Dst: to_string_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2406,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2406,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2410,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2411,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2411,1
    - Dst: trim
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2411,1
    - Dst: Self::split
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2418,1
    - Dst: next
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2418,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2418,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2459,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2461,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2459,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2470,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2470,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2503,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2505,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2503,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2515,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2515,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2517,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2517,1
    - Dst: (bool, Vec::as_bytes
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2518,1
    - Dst: '&[u8]::iter'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2518,1
    - Dst: impl Iterator::position
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2518,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2518,1
    - Dst: CStr::from_bytes_until_nul
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2519,1
    - Dst: (bool, Vec::as_bytes
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2519,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2519,1
    - Dst: to_string_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2520,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 127
    argCount: 3
    argNames:
    - guest
    - ivshmem_file_path
    - file_size
    argTypes:
    - '&Guest'
    - impl AsRef<Path>
    - '&str'
    constantsTouched: []
    func_position:
      end: 2523
      start: 2389
    functionDepth: 8
    functionLinenumber: 2389
    functionLinenumberEnd: 2523
    functionName: _test_ivshmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 3
    functionsReached:
    - trim
    - IoResult::write
    - Result::read
    - to_string
    - Result::unwrap
    - String::from
    - OpenOptions::new
    - '&[u8]::iter'
    - ssh_command
    - impl AsRef<Path>::as_ref
    - CStr::from_bytes_until_nul
    - (bool, Vec::as_bytes
    - to_string_lossy
    - Vec::seek
    - Vec::write_all
    - std::io::Result::unwrap
    - as_str
    - Vec::flush
    - unwrap
    - impl Iterator::position
    - fs::read_to_string
    - next
    - Self::split
    - Self::as_bytes
    - IoResult::open
    - SeekFrom::Start
    - IoResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_ivshmem(guest: &Guest, ivshmem_file_path: impl AsRef<Path>,
      file_size: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2534,1
    - Dst: test_simple_launch
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2533
    functionDepth: 16
    functionLinenumber: 2533
    functionLinenumberEnd: 2536
    functionName: common_parallel::test_focal_hypervisor_fw
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_simple_launch
    - fw_path
    linkageType: ''
    returnType: void
    signature: fn test_focal_hypervisor_fw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2541,1
    - Dst: test_simple_launch
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2540
    functionDepth: 16
    functionLinenumber: 2540
    functionLinenumberEnd: 2543
    functionName: common_parallel::test_focal_ovmf
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_simple_launch
    - fw_path
    linkageType: ''
    returnType: void
    signature: fn test_focal_ovmf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2547,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2547,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2547,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2548,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2549,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2558,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2551,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2563,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2564,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2564,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2564,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2572,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2576,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2580,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2584,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2585,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2585,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2588,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2589,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2589,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2600,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2601,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2602,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2603,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2605,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2605,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2606,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2606,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2609,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2613,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2617,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2624,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2625,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2625,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 116
    argCount: 2
    argNames:
    - fw_path
    - disk_path
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 2628
      start: 2546
    functionDepth: 15
    functionLinenumber: 2546
    functionLinenumberEnd: 2628
    functionName: common_parallel::test_simple_launch
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - '&str::to_string'
    - Result::unwrap
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - temp_event_monitor_path
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn test_simple_launch(fw_path: &str, disk_path: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2632,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2633,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2634,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2634,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2636,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2637,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2637,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2637,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2639,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2639,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2639,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2637,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2637,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2637,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2637,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2645,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2645,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2647,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2648,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2648,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2648,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2663,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2664,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2664,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2631
    functionDepth: 15
    functionLinenumber: 2631
    functionLinenumberEnd: 2667
    functionName: common_parallel::test_multi_cpu
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_multi_cpu()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cpu_topology
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2670
    functionDepth: 16
    functionLinenumber: 2670
    functionLinenumberEnd: 2672
    functionName: common_parallel::test_cpu_topology_421
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_cpu_topology
    linkageType: ''
    returnType: void
    signature: fn test_cpu_topology_421()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cpu_topology
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2675
    functionDepth: 16
    functionLinenumber: 2675
    functionLinenumberEnd: 2677
    functionName: common_parallel::test_cpu_topology_142
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_cpu_topology
    linkageType: ''
    returnType: void
    signature: fn test_cpu_topology_142()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cpu_topology
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2680
    functionDepth: 16
    functionLinenumber: 2680
    functionLinenumberEnd: 2682
    functionName: common_parallel::test_cpu_topology_262
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_cpu_topology
    linkageType: ''
    returnType: void
    signature: fn test_cpu_topology_262()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2688,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2688,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2689,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2689,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2694,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2694,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2694,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2691,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2702,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2703,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2703,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2715,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2716,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2716,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2687
    functionDepth: 15
    functionLinenumber: 2687
    functionLinenumberEnd: 2719
    functionName: common_parallel::test_cpu_physical_bits
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cpu_physical_bits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2723,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2723,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2724,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2724,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2728,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2740,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2740,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2740,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2737,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2748,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2749,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2749,1
    - Dst: id
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2750,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2751,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2751,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2753,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2753,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2757,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2758,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2758,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2722
    functionDepth: 15
    functionLinenumber: 2722
    functionLinenumberEnd: 2760
    functionName: common_parallel::test_cpu_affinity
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - id
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - exec_host_command_output
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cpu_affinity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2764,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2764,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2765,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2765,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2769,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2781,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2781,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2781,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2785,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2790,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2778,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2801,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2802,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2802,1
    - Dst: id
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2803,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2804,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2804,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2806,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2806,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2808,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2808,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2810,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2810,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2814,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2815,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2815,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2763
    functionDepth: 15
    functionLinenumber: 2763
    functionLinenumberEnd: 2817
    functionName: common_parallel::test_virtio_queue_affinity
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - id
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - exec_host_command_output
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_virtio_queue_affinity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2822,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2822,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2823,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2823,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2824,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2827,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2827,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2827,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2825,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2835,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2835,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2837,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2837,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2839,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2852,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2853,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2853,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2821
    functionDepth: 15
    functionLinenumber: 2821
    functionLinenumberEnd: 2856
    functionName: common_parallel::test_large_vm
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_large_vm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2861,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2861,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2862,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2862,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2863,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2864,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2864,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2864,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2866,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2866,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2866,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2864,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2864,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2864,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2864,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2872,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2872,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2874,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2874,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2874,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2876,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2880,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2881,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2881,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2860
    functionDepth: 15
    functionLinenumber: 2860
    functionLinenumberEnd: 2884
    functionName: common_parallel::test_huge_memory
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_huge_memory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_power_button
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2887
    functionDepth: 16
    functionLinenumber: 2887
    functionLinenumberEnd: 2889
    functionName: common_parallel::test_power_button
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_power_button
    linkageType: ''
    returnType: void
    signature: fn test_power_button()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2894,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2894,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2895,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2895,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2896,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2898,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2909,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2909,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2900,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2918,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2919,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2919,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2923,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2925,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2926,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2926,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2928,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2929,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2929,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2931,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2932,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2932,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2934,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2935,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2935,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2938,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2945,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2946,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2946,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2948,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2949,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2949,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2953,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2954,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2954,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2893
    functionDepth: 15
    functionLinenumber: 2893
    functionLinenumberEnd: 2957
    functionName: common_parallel::test_user_defined_memory_regions
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - resize_zone_command
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_user_defined_memory_regions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_guest_numa_nodes
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2961
    functionDepth: 16
    functionLinenumber: 2961
    functionLinenumberEnd: 2963
    functionName: common_parallel::test_guest_numa_nodes
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_guest_numa_nodes
    linkageType: ''
    returnType: void
    signature: fn test_guest_numa_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2968,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2969,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2970,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2970,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2973,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2974,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2974,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2974,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2974,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2986,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2987,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2992,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2992,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2992,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:2989,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3002,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3002,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3004,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3004,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3006,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3007,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3010,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3011,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3039,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3040,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3040,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 2967
    functionDepth: 15
    functionLinenumber: 2967
    functionLinenumberEnd: 3043
    functionName: common_parallel::test_iommu_segments
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - to_str
    - Result::unwrap
    - PathBuf::to_str
    - String::from
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - as_path
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: fn test_iommu_segments()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3047,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3047,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3048,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3048,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3049,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3050,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3050,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3050,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3052,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3052,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3052,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3050,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3050,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3050,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3050,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3058,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3058,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3060,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3060,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3067,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3079,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3080,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3080,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3046
    functionDepth: 15
    functionLinenumber: 3046
    functionLinenumberEnd: 3083
    functionName: common_parallel::test_pci_msi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pci_msi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3087,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3087,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3088,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3088,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3089,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3090,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3090,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3090,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3092,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3092,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3092,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3090,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3090,1
    - Dst: default_net_string_w_mtu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3094,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3094,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3090,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3090,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3098,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3098,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3100,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3100,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3107,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3126,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3127,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3127,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 3086
    functionDepth: 15
    functionLinenumber: 3086
    functionLinenumberEnd: 3130
    functionName: common_parallel::test_virtio_net_ctrl_queue
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string_w_mtu
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_virtio_net_ctrl_queue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3134,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3134,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3135,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3135,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3138,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3139,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3139,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3139,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3139,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3151,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3154,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3154,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3154,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3162,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3167,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3172,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3152,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3177,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3177,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3179,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3179,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3183,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3207,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3207,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3208,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3208,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3212,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3212,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3215,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3215,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3230,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3231,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3231,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3133
    functionDepth: 15
    functionLinenumber: 3133
    functionLinenumberEnd: 3234
    functionName: common_parallel::test_pci_multiple_segments
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - to_str
    - Result::unwrap
    - PathBuf::to_str
    - String::from
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pci_multiple_segments()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3238,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3238,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3239,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3239,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3240,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3242,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3244,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3247,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3248,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3248,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3248,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3248,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3271,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3271,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3277,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3282,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3287,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3261,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3295,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3296,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3296,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3309,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3310,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3310,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3313
      start: 3237
    functionDepth: 15
    functionLinenumber: 3237
    functionLinenumberEnd: 3313
    functionName: common_parallel::test_pci_multiple_segments_numa_node
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - to_str
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - String::from
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - as_path
    - Vec::capture_output
    - edk2_path
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pci_multiple_segments_numa_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3317,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3317,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3318,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3318,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3320,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3325,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3325,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3322,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3333,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3334,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3334,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3355,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3356,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3356,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3359
      start: 3316
    functionDepth: 15
    functionLinenumber: 3316
    functionLinenumberEnd: 3359
    functionName: common_parallel::test_direct_kernel_boot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_direct_kernel_boot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3364,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3364,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3365,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3365,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3367,1
    - Dst: PathBuf::pop
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3369,1
    - Dst: PathBuf::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3370,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3375,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3375,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3372,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3383,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3384,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3384,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3401,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3402,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3402,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3363
    functionDepth: 15
    functionLinenumber: 3363
    functionLinenumberEnd: 3405
    functionName: common_parallel::test_direct_kernel_boot_bzimage
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - PathBuf::pop
    - wait_with_output
    - Guest::new
    - PathBuf::push
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_direct_kernel_boot_bzimage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3413,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3413,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3414,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3414,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3416,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3416,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3417,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3420,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3422,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3427,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3427,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3431,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3436,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3441,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3424,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3454,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3455,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3455,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3491,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3492,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3492,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3494,1
    - Dst: disk_check_consistency
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3497,1
    - Dst: disk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3497,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 78
    argCount: 4
    argNames:
    - image_name
    - disable_io_uring
    - disable_aio
    - verify_os_disk
    argTypes:
    - '&str'
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 3499
      start: 3407
    functionDepth: 12
    functionLinenumber: 3407
    functionLinenumberEnd: 3499
    functionName: common_parallel::_test_virtio_block
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - push
    - disk_check_consistency
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - dirs::home_dir
    - workload_path::push
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - disk
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - kill
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_virtio_block(image_name: &str,disable_io_uring: bool,disable_aio:
      bool,verify_os_disk: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3504
      start: 3502
    functionDepth: 13
    functionLinenumber: 3502
    functionLinenumberEnd: 3504
    functionName: common_parallel::test_virtio_block_io_uring
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_io_uring()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3507
    functionDepth: 13
    functionLinenumber: 3507
    functionLinenumberEnd: 3509
    functionName: common_parallel::test_virtio_block_aio
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_aio()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3512
    functionDepth: 13
    functionLinenumber: 3512
    functionLinenumberEnd: 3514
    functionName: common_parallel::test_virtio_block_sync
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_sync()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsRef<std::path::Path>::as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3525,1
    - Dst: exists
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3525,1
    - Dst: impl AsRef<std::path::Path>::as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3527,1
    - Dst: to_path_buf
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3527,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3530,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3530,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3531,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3532,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3532,1
    - Dst: impl AsRef<std::path::Path>::as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3532,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3535,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3535,1
    - Dst: String::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3536,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3536,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3535,1
    - Dst: (bool, Vec::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - path_or_image_name
    argTypes:
    - impl AsRef<std::path::Path>
    constantsTouched: []
    func_position:
      end: 3545
      start: 3524
    functionDepth: 6
    functionLinenumber: 3524
    functionLinenumberEnd: 3545
    functionName: common_parallel::disk_check_consistency
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - std::process::Command::new
    - dirs::home_dir
    - to_path_buf
    - (bool, Vec::expect
    - impl AsRef<std::path::Path>::as_ref
    - push
    - Vec::output
    - Self::args
    - as_path
    - unwrap
    - join
    - String::to_str
    - exists
    linkageType: ''
    returnType: void
    signature: 'fn disk_check_consistency(path_or_image_name: impl AsRef<std::path::Path>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3550
      start: 3548
    functionDepth: 13
    functionLinenumber: 3548
    functionLinenumberEnd: 3550
    functionName: common_parallel::test_virtio_block_qcow2
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_qcow2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3553
    functionDepth: 13
    functionLinenumber: 3553
    functionLinenumberEnd: 3555
    functionName: common_parallel::test_virtio_block_qcow2_zlib
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_qcow2_zlib()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3558
    functionDepth: 13
    functionLinenumber: 3558
    functionLinenumberEnd: 3560
    functionName: common_parallel::test_virtio_block_qcow2_zstd
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_qcow2_zstd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3565
      start: 3563
    functionDepth: 13
    functionLinenumber: 3563
    functionLinenumberEnd: 3565
    functionName: common_parallel::test_virtio_block_qcow2_backing_zstd_file
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_qcow2_backing_zstd_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3568
    functionDepth: 13
    functionLinenumber: 3568
    functionLinenumberEnd: 3575
    functionName: common_parallel::test_virtio_block_qcow2_backing_uncompressed_file
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_block
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_qcow2_backing_uncompressed_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3579,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3579,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3580,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3582,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3584,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3585,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3594,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3594,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: workload_path::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3595,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3595,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3588,1
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3578
    functionDepth: 13
    functionLinenumber: 3578
    functionLinenumberEnd: 3600
    functionName: common_parallel::test_virtio_block_vhd
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - expect
    - std::process::Command::new
    - args
    - dirs::home_dir
    - workload_path::to_str
    - push
    - _test_virtio_block
    - workload_path::push
    - output
    - unwrap
    - to_str
    - arg
    - clone
    - Self::arg
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_vhd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3604,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3604,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3605,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3607,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3609,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3610,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3618,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3618,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: workload_path::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3619,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3619,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3613,1
    - Dst: _test_virtio_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3624
      start: 3603
    functionDepth: 13
    functionLinenumber: 3603
    functionLinenumberEnd: 3624
    functionName: common_parallel::test_virtio_block_vhdx
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - expect
    - std::process::Command::new
    - args
    - dirs::home_dir
    - workload_path::to_str
    - push
    - _test_virtio_block
    - workload_path::push
    - output
    - unwrap
    - to_str
    - arg
    - clone
    - Self::arg
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_vhdx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3633,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3633,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3634,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3634,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3635,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3637,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3637,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3638,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3638,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3641,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3641,1
    - Dst: args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3641,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3641,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3641,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3645,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3641,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3641,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3655,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3655,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3659,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3664,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3669,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3652,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3676,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3677,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3677,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3691,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3691,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3699,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3700,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3700,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3702,1
    - Dst: disk_check_consistency
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3627
    functionDepth: 15
    functionLinenumber: 3627
    functionLinenumberEnd: 3705
    functionName: common_parallel::test_virtio_block_dynamic_vhdx_expand
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - expect
    - args
    - disk_check_consistency
    - to_string
    - to_str
    - Result::unwrap
    - arg
    - PathBuf::to_str
    - Vec::default_net
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - std::process::Command::new
    - handle_child_output
    - output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - Self::arg
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - as_path
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_dynamic_vhdx_expand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::File::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3708,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3708,1
    - Dst: seek
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3708,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3710,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - disk_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 3712
      start: 3707
    functionDepth: 2
    functionLinenumber: 3707
    functionLinenumberEnd: 3712
    functionName: common_parallel::vhdx_image_size
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::End
    - std::fs::File::open
    - seek
    - unwrap
    linkageType: ''
    returnType: u64
    signature: 'fn vhdx_image_size(disk_name: &str) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3716,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3716,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3717,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3717,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3722,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3722,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3723,1
    - Dst: TempDir::new_in
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3724,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3724,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3724,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3725,1
    - Dst: to_path_buf
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3725,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3726,1
    - Dst: rate_limited_copy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3727,1
    - Dst: disk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3728,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3728,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3729,1
    - Dst: io::Result::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3727,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3736,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3736,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3739,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3740,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3733,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3751,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3752,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3752,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3752,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3755,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3756,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3756,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3715
    functionDepth: 15
    functionLinenumber: 3715
    functionLinenumberEnd: 3759
    functionName: common_parallel::test_virtio_block_direct_and_firmware
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - to_path_buf
    - push
    - to_string
    - Result::unwrap
    - Vec::default_net
    - TempDir::new_in
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - dirs::home_dir
    - Vec::args
    - rate_limited_copy
    - fw_path
    - wait_with_output
    - as_str
    - Guest::new
    - io::Result::expect
    - Box::new
    - unwrap
    - wait_vm_boot
    - disk
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - Self::args
    - std::panic::catch_unwind
    - as_path
    - String::as_str
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_direct_and_firmware()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3764
      start: 3762
    functionDepth: 16
    functionLinenumber: 3762
    functionLinenumberEnd: 3764
    functionName: common_parallel::test_vhost_user_net_default
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_vhost_user_net
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_net_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3768,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3767
    functionDepth: 16
    functionLinenumber: 3767
    functionLinenumberEnd: 3775
    functionName: common_parallel::test_vhost_user_net_named_tap
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - Some
    - test_vhost_user_net
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_net_named_tap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3779,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3778
    functionDepth: 16
    functionLinenumber: 3778
    functionLinenumberEnd: 3786
    functionName: common_parallel::test_vhost_user_net_existing_tap
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - Some
    - test_vhost_user_net
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_net_existing_tap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3789
    functionDepth: 16
    functionLinenumber: 3789
    functionLinenumberEnd: 3791
    functionName: common_parallel::test_vhost_user_net_multiple_queues
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_vhost_user_net
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_net_multiple_queues()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3795,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3794
    functionDepth: 16
    functionLinenumber: 3794
    functionLinenumberEnd: 3802
    functionName: common_parallel::test_vhost_user_net_tap_multiple_queues
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - Some
    - test_vhost_user_net
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_net_tap_multiple_queues()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3807
      start: 3805
    functionDepth: 16
    functionLinenumber: 3805
    functionLinenumberEnd: 3807
    functionName: common_parallel::test_vhost_user_net_host_mac
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_vhost_user_net
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_net_host_mac()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3812
      start: 3810
    functionDepth: 16
    functionLinenumber: 3810
    functionLinenumberEnd: 3812
    functionName: common_parallel::test_vhost_user_net_client_mode
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_vhost_user_net
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_net_client_mode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_blk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3817,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3816
    functionDepth: 16
    functionLinenumber: 3816
    functionLinenumberEnd: 3818
    functionName: common_parallel::test_vhost_user_blk_default
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_vhost_user_blk
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_blk_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_blk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3823,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3824
      start: 3822
    functionDepth: 16
    functionLinenumber: 3822
    functionLinenumberEnd: 3824
    functionName: common_parallel::test_vhost_user_blk_readonly
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_vhost_user_blk
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_blk_readonly()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vhost_user_blk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3829,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 3828
    functionDepth: 16
    functionLinenumber: 3828
    functionLinenumberEnd: 3830
    functionName: common_parallel::test_vhost_user_blk_direct
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_vhost_user_blk
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_vhost_user_blk_direct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_boot_from_vhost_user_blk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3834,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3835
      start: 3833
    functionDepth: 16
    functionLinenumber: 3833
    functionLinenumberEnd: 3835
    functionName: common_parallel::test_boot_from_vhost_user_blk_default
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_boot_from_vhost_user_blk
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_boot_from_vhost_user_blk_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3840,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3840,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3841,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3841,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3846,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3846,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3846,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3843,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3854,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3855,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3855,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3877,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3878,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3878,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3839
    functionDepth: 13
    functionLinenumber: 3839
    functionLinenumberEnd: 3881
    functionName: common_parallel::test_split_irqchip
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_split_irqchip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3886,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3886,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3887,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3887,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3892,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3892,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3892,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3889,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3901,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3902,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3902,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3913,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3914,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3914,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3885
    functionDepth: 15
    functionLinenumber: 3885
    functionLinenumberEnd: 3917
    functionName: common_parallel::test_dmi_serial_number
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_dmi_serial_number()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3922,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3922,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3923,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3923,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3928,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3928,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3928,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3925,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3937,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3938,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3938,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3949,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3950,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3950,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3953
      start: 3921
    functionDepth: 15
    functionLinenumber: 3921
    functionLinenumberEnd: 3953
    functionName: common_parallel::test_dmi_uuid
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_dmi_uuid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3958,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3958,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3959,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3959,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3969,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3969,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3969,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3966,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3978,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3979,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:3979,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4006,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4007,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4007,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4010
      start: 3957
    functionDepth: 15
    functionLinenumber: 3957
    functionLinenumberEnd: 4010
    functionName: common_parallel::test_dmi_oem_strings
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_dmi_oem_strings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_fs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4015
      start: 4013
    functionDepth: 16
    functionLinenumber: 4013
    functionLinenumberEnd: 4015
    functionName: common_parallel::test_virtio_fs
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_fs
    linkageType: ''
    returnType: void
    signature: fn test_virtio_fs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_fs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 4018
    functionDepth: 16
    functionLinenumber: 4018
    functionLinenumberEnd: 4020
    functionName: common_parallel::test_virtio_fs_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_fs
    linkageType: ''
    returnType: void
    signature: fn test_virtio_fs_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_fs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4024,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4025
      start: 4023
    functionDepth: 16
    functionLinenumber: 4023
    functionLinenumberEnd: 4025
    functionName: common_parallel::test_virtio_fs_multi_segment_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - Some
    - _test_virtio_fs
    linkageType: ''
    returnType: void
    signature: fn test_virtio_fs_multi_segment_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_fs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4029,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 4028
    functionDepth: 16
    functionLinenumber: 4028
    functionLinenumberEnd: 4030
    functionName: common_parallel::test_virtio_fs_multi_segment
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - Some
    - _test_virtio_fs
    linkageType: ''
    returnType: void
    signature: fn test_virtio_fs_multi_segment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_virtio_pmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4035
      start: 4033
    functionDepth: 16
    functionLinenumber: 4033
    functionLinenumberEnd: 4035
    functionName: common_parallel::test_virtio_pmem_discard_writes
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_virtio_pmem
    linkageType: ''
    returnType: void
    signature: fn test_virtio_pmem_discard_writes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_virtio_pmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4040
      start: 4038
    functionDepth: 16
    functionLinenumber: 4038
    functionLinenumberEnd: 4040
    functionName: common_parallel::test_virtio_pmem_with_size
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_virtio_pmem
    linkageType: ''
    returnType: void
    signature: fn test_virtio_pmem_with_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4044,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4044,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4045,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4045,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4047,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4052,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4052,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4055,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4064,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: replace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4075,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4075,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4049,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4083,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4084,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4084,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4091,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4092,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4092,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4095
      start: 4043
    functionDepth: 15
    functionLinenumber: 4043
    functionLinenumberEnd: 4095
    functionName: common_parallel::test_boot_from_virtio_pmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - replace
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_boot_from_virtio_pmem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4099,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4099,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4100,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4100,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4102,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4107,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4107,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4112,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4112,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4104,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4120,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4121,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4121,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4123,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4138,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4139,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4139,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4142
      start: 4098
    functionDepth: 15
    functionLinenumber: 4098
    functionLinenumberEnd: 4142
    functionName: common_parallel::test_multiple_network_interfaces
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - exec_host_command_output
    - unwrap
    - wait_vm_boot
    - default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_multiple_network_interfaces()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4147,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4147,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4148,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4148,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4152,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4152,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4152,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4149,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4160,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4161,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4161,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4175,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4176,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4176,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4179
      start: 4146
    functionDepth: 15
    functionLinenumber: 4146
    functionLinenumberEnd: 4179
    functionName: common_parallel::test_pmu_on
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pmu_on()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4183,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4183,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4184,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4184,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4188,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4188,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4188,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4185,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4197,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4198,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4198,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4212,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4213,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4213,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4216
      start: 4182
    functionDepth: 15
    functionLinenumber: 4182
    functionLinenumberEnd: 4216
    functionName: common_parallel::test_serial_off
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_serial_off()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4220,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4220,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4221,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4221,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4222,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4230,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4230,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4230,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: replace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4233,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4233,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4228,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4243,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4243,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4245,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4246,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4246,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4260,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4261,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4261,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4262,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4264,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4219
    functionDepth: 15
    functionLinenumber: 4219
    functionLinenumberEnd: 4269
    functionName: common_parallel::test_serial_null
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - replace
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_serial_null()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4273,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4273,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4274,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4274,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4276,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4286,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4286,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: replace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4289,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4289,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4283,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4301,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4302,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4302,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4317,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4317,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4319,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4320,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4320,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4321,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4323,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4328
      start: 4272
    functionDepth: 15
    functionLinenumber: 4272
    functionLinenumberEnd: 4328
    functionName: common_parallel::test_serial_tty
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - Vec::args
    - replace
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_serial_tty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4332,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4332,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4333,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4333,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4335,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4335,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4344,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4344,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4344,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: replace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4347,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4347,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4355,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4341,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4361,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4362,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4362,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4375,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4375,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4378,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4378,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4379,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4380,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4380,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4381,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4383,1
    - Dst: std::fs::File::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4389,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4389,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4390,1
    - Dst: Result::read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4391,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4391,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4396
      start: 4331
    functionDepth: 15
    functionLinenumber: 4331
    functionLinenumberEnd: 4396
    functionName: common_parallel::test_serial_file
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - String::new
    - std::fs::File::open
    - Vec::args
    - replace
    - Result::read_to_string
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_serial_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4400,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4400,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4401,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4401,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4402,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4408,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4413,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4413,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4413,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: Vec::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4410,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4423,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4424,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4424,1
    - Dst: get_pty_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4426,1
    - Dst: _test_pty_interaction
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4427,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4429,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4429,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4432,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4432,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4433,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4434,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4434,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4435,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4437,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4442
      start: 4399
    functionDepth: 15
    functionLinenumber: 4399
    functionLinenumberEnd: 4442
    functionName: common_parallel::test_pty_interaction
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - to_owned
    - '&mut Self::default_net'
    - get_pty_path
    - '&mut Self::args'
    - Vec::spawn
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - _test_pty_interaction
    - GuestCommand::new
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pty_interaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4446,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4446,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4447,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4447,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4448,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4448,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4449,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4449,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4455,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4460,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4460,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4460,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4467,1
    - Dst: Vec::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4457,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4472,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4473,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4473,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4476,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4481,1
    - Dst: Self::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4483,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4483,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4484,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4484,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4486,1
    - Dst: _test_pty_interaction
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4487,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4490,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4491,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4493,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4494,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4494,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4497,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4497,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4498,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4499,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4499,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4500,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4502,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4504,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4445
    functionDepth: 15
    functionLinenumber: 4445
    functionLinenumberEnd: 4512
    functionName: common_parallel::test_serial_socket_interaction
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - to_owned
    - '&mut Self::default_net'
    - '&mut Self::args'
    - Vec::spawn
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - success
    - Vec::args
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - wait
    - _test_pty_interaction
    - Self::spawn
    - GuestCommand::new
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Command::new
    - kill
    - as_path
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_serial_socket_interaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4516,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4516,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4517,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4517,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4519,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4524,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4524,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4521,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4534,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4537,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4538,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4538,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4546,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4546,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4549,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4550,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4550,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4551,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4553,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4515
    functionDepth: 15
    functionLinenumber: 4515
    functionLinenumberEnd: 4558
    functionName: common_parallel::test_virtio_console
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - String::from
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_virtio_console()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4562,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4562,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4563,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4563,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4565,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4565,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4569,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4569,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4569,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4575,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4566,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4581,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4581,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4583,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4583,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4585,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4585,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4586,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4587,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4587,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4589,1
    - Dst: std::fs::File::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4595,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4595,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4596,1
    - Dst: Result::read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4597,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4597,1
    - Dst: Self::contains
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4599,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4608
      start: 4561
    functionDepth: 15
    functionLinenumber: 4561
    functionLinenumberEnd: 4608
    functionName: common_parallel::test_console_file
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - Self::contains
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - String::new
    - std::fs::File::open
    - Vec::args
    - Result::read_to_string
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_console_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_vfio_network_interfaces
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4624,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4626,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4626,1
    - Dst: Guest::new_from_ip_range
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4627,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4627,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4629,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4629,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4630,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4632,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4634,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4635,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4637,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4638,1
    - Dst: rate_limited_copy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4642,1
    - Dst: disk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4643,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4643,1
    - Dst: io::Result::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4642,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4648,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4649,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4652,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4652,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4652,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4654,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4654,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4652,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4655,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4655,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4652,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4652,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4652,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4659,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4665,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4675,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4675,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4678,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4683,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4688,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4689,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4693,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4700,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4701,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4706,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4711,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4672,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4721,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4721,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4723,1
    - Dst: ssh_command_l1
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4724,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4724,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4725,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4725,1
    - Dst: ssh_command_l1
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4763,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4763,1
    - Dst: ssh_command_l1
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4768,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4768,1
    - Dst: ssh_command_l1
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4771,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4771,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4784,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4784,1
    - Dst: ssh_command_l1
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4809,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4809,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4816,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4816,1
    - Dst: ssh_command_l2_1
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4833,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4833,1
    - Dst: ssh_command_l1
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4838,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4838,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4848,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4849,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4849,1
    - Dst: cleanup_vfio_network_interfaces
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4851,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 189
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4854
      start: 4623
    functionDepth: 13
    functionLinenumber: 4623
    functionLinenumberEnd: 4854
    functionName: common_parallel::test_vfio
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - push
    - to_string
    - to_str
    - Result::unwrap
    - arg
    - PathBuf::to_str
    - cleanup_vfio_network_interfaces
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - dirs::home_dir
    - success
    - thread::sleep
    - setup_vfio_network_interfaces
    - output
    - workload_path::push
    - Vec::args
    - rate_limited_copy
    - Guest::new_from_ip_range
    - wait_with_output
    - as_str
    - io::Result::expect
    - std::time::Duration::new
    - ssh_command_l1
    - Box::new
    - unwrap
    - disk
    - clone
    - Self::arg
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - Command::new
    - Vec::capture_output
    - io::Result::unwrap
    - ssh_command_l2_1
    linkageType: ''
    returnType: void
    signature: fn test_vfio()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4858,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4858,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4859,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4859,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4861,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4866,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4866,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4869,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4863,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4877,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4878,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4878,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4884,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4885,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4885,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4888
      start: 4857
    functionDepth: 15
    functionLinenumber: 4857
    functionLinenumberEnd: 4888
    functionName: common_parallel::test_direct_kernel_boot_noacpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_direct_kernel_boot_noacpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_vsock
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4893
      start: 4891
    functionDepth: 16
    functionLinenumber: 4891
    functionLinenumberEnd: 4893
    functionName: common_parallel::test_virtio_vsock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_vsock
    linkageType: ''
    returnType: void
    signature: fn test_virtio_vsock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_vsock
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4898
      start: 4896
    functionDepth: 16
    functionLinenumber: 4896
    functionLinenumberEnd: 4898
    functionName: common_parallel::test_virtio_vsock_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_vsock
    linkageType: ''
    returnType: void
    signature: fn test_virtio_vsock_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4902,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4902,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4903,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4903,1
    - Dst: TargetApi::new_http_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4905,1
    - Dst: _test_api_shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4907
      start: 4901
    functionDepth: 15
    functionLinenumber: 4901
    functionLinenumberEnd: 4907
    functionName: common_parallel::test_api_http_shutdown
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - _test_api_shutdown
    - TargetApi::new_http_api
    - Guest::new
    - Box::new
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_http_shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4911,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4911,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4912,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4912,1
    - Dst: TargetApi::new_http_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4914,1
    - Dst: _test_api_delete
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4916
      start: 4910
    functionDepth: 15
    functionLinenumber: 4910
    functionLinenumberEnd: 4916
    functionName: common_parallel::test_api_http_delete
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - TargetApi::new_http_api
    - _test_api_delete
    - Guest::new
    - Box::new
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_http_delete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4920,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4920,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4921,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4921,1
    - Dst: TargetApi::new_http_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4923,1
    - Dst: _test_api_pause_resume
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4925
      start: 4919
    functionDepth: 15
    functionLinenumber: 4919
    functionLinenumberEnd: 4925
    functionName: common_parallel::test_api_http_pause_resume
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - TargetApi::new_http_api
    - Guest::new
    - Box::new
    - _test_api_pause_resume
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_http_pause_resume()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4929,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4929,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4930,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4930,1
    - Dst: TargetApi::new_http_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4932,1
    - Dst: _test_api_create_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4934
      start: 4928
    functionDepth: 15
    functionLinenumber: 4928
    functionLinenumberEnd: 4934
    functionName: common_parallel::test_api_http_create_boot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - TargetApi::new_http_api
    - Guest::new
    - Box::new
    - _test_api_create_boot
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_http_create_boot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_iommu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4939
      start: 4937
    functionDepth: 16
    functionLinenumber: 4937
    functionLinenumberEnd: 4939
    functionName: common_parallel::test_virtio_iommu
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_iommu
    linkageType: ''
    returnType: void
    signature: fn test_virtio_iommu()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4952,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4952,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4953,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4953,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4956,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4958,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4963,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4963,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4968,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4968,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4960,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4975,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4976,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4976,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4989,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4989,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4996,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:4996,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5012,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5012,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5027,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5027,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5039,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5040,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5040,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5043
      start: 4951
    functionDepth: 15
    functionLinenumber: 4951
    functionLinenumberEnd: 5043
    functionName: common_parallel::test_pci_bar_reprogramming
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - edk2_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pci_bar_reprogramming()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_memory_mergeable
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5048
      start: 5046
    functionDepth: 16
    functionLinenumber: 5046
    functionLinenumberEnd: 5048
    functionName: common_parallel::test_memory_mergeable_off
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_memory_mergeable
    linkageType: ''
    returnType: void
    signature: fn test_memory_mergeable_off()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5054,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5054,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5055,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5055,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5056,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5059,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5064,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5064,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: replace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5067,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5067,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5061,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5080,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5081,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5081,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5087,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5087,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5089,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5089,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5092,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5092,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5095,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5095,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5101,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5110,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5110,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5112,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5112,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5120,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5120,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5122,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5122,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5125,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5125,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5128,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5128,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5135,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5136,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5136,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5139
      start: 5053
    functionDepth: 15
    functionLinenumber: 5053
    functionLinenumberEnd: 5139
    functionName: common_parallel::test_cpu_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - replace
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_cpu_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5144,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5146,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5147,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5148,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5148,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5149,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5152,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5154,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5159,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5159,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5156,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5169,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5170,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5170,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5174,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5178,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5178,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5180,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5180,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5185,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5185,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5187,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5187,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5191,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5197,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5197,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5199,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5199,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5203,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5207,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5207,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5209,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5209,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5214,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5214,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5216,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5222,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5223,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5223,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5226
      start: 5142
    functionDepth: 15
    functionLinenumber: 5142
    functionLinenumberEnd: 5226
    functionName: common_parallel::test_memory_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - edk2_path
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_memory_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5231,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5231,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5232,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5232,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5233,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5235,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5243,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5243,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5237,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5252,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5253,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5253,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5257,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5261,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5261,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5263,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5263,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5268,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5268,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5270,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5270,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5275,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5275,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5277,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5277,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5281,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5289,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5289,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5290,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5290,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5295,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5296,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5296,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5299
      start: 5230
    functionDepth: 15
    functionLinenumber: 5230
    functionLinenumberEnd: 5299
    functionName: common_parallel::test_virtio_mem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_virtio_mem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5305,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5305,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5306,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5306,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5307,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5309,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5314,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5314,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5311,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5323,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5324,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5324,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5329,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5334,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5336,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5337,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5342,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5342,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5345,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5345,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5348,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5348,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5357,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5358,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5358,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5361
      start: 5304
    functionDepth: 15
    functionLinenumber: 5304
    functionLinenumberEnd: 5361
    functionName: common_parallel::test_resize
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_resize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5365,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5365,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5366,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5366,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5368,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5374,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5375,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5375,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5372,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5383,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5383,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5385,1
    - Dst: get_vmm_overhead
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5386,1
    - Dst: id
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5386,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5391,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5392,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5392,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5395
      start: 5364
    functionDepth: 15
    functionLinenumber: 5364
    functionLinenumberEnd: 5395
    functionName: common_parallel::test_memory_overhead
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - id
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - as_str
    - get_vmm_overhead
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_memory_overhead()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5403,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5403,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5404,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5404,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5407,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5409,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5411,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5417,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5417,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5413,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5426,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5427,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5427,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5441,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5441,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5442,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5443,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5459,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5460,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5460,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5463
      start: 5402
    functionDepth: 15
    functionLinenumber: 5402
    functionLinenumberEnd: 5463
    functionName: common_parallel::test_landlock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - push
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - dirs::home_dir
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - edk2_path
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_landlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5466,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5466,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5467,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5467,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5470,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5472,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5474,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5476,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5476,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5477,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5478,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5480,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5482,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5482,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5484,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5491,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5491,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5488,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5497,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5497,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5499,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5500,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5500,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5514,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5517,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5518,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5531,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5531,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5544,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5544,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5550,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5550,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5563,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5566,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5567,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5580,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5580,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5593,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5593,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5598,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5613,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5613,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5626,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5640,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5641,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5641,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 131
    argCount: 1
    argNames:
    - landlock_enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 5644
      start: 5465
    functionDepth: 15
    functionLinenumber: 5465
    functionLinenumberEnd: 5644
    functionName: common_parallel::_test_disk_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - push
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - dirs::home_dir
    - reboot_linux
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - edk2_path
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: 'fn _test_disk_hotplug(landlock_enabled: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_disk_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5647
    functionDepth: 16
    functionLinenumber: 5647
    functionLinenumberEnd: 5649
    functionName: common_parallel::test_disk_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_disk_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_disk_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_disk_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5655
      start: 5653
    functionDepth: 16
    functionLinenumber: 5653
    functionLinenumberEnd: 5655
    functionName: common_parallel::test_disk_hotplug_with_landlock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_disk_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_disk_hotplug_with_landlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5659,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5659,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5660,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5660,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5663,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5665,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5667,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5678,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5683,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5683,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5680,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5689,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5689,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5691,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5692,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5692,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5695,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5698,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5718,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5718,1
    - Dst: resize_disk_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5724,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5738,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5738,1
    - Dst: resize_disk_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5744,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5758,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5758,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5763,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5764,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5764,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5767
      start: 5658
    functionDepth: 15
    functionLinenumber: 5658
    functionLinenumberEnd: 5767
    functionName: common_parallel::test_disk_resize
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - resize_disk_command
    - wait_with_output
    - Some
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - edk2_path
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: fn test_disk_resize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5822,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5822,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5822,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5822,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5822,1
    - Dst: libc::ioctl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5830,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5830,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5840,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5840,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5840,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5840,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5840,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5847,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5847,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5847,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5847,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5847,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5854,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5856,1
    - Dst: libc::ioctl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5861,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5862,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5888,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5888,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 68
    argCount: 3
    argNames:
    - backing_file_path
    - block_size
    - num_retries
    argTypes:
    - '&str'
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 5892
      start: 5769
    functionDepth: 8
    functionLinenumber: 5769
    functionLinenumberEnd: 5892
    functionName: common_parallel::create_loop_device
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - OpenOptions::new
    - Default::default
    - thread::sleep
    - std::time::Duration::new
    - IoResult::open
    - libc::ioctl
    - unwrap
    - IoResult::write
    - Result::read
    - as_raw_fd
    linkageType: ''
    returnType: String
    signature: 'fn create_loop_device(backing_file_path: &str, block_size: u32, num_retries:
      usize) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5896,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5896,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5897,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5897,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5899,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5900,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5900,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5902,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5903,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5909,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5910,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5911,1
    - Dst: create_loop_device
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5915,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5915,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5915,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5920,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5920,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5924,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5929,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5934,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5917,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5941,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5942,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5942,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5976,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5977,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5977,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5979,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5981,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5981,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5981,1
    - Dst: (bool, Vec::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5985
      start: 5895
    functionDepth: 15
    functionLinenumber: 5895
    functionLinenumberEnd: 5985
    functionName: common_parallel::test_virtio_block_topology
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - (bool, Vec::expect
    - to_string
    - to_str
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - create_loop_device
    - success
    - String::from_utf8_lossy
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - exec_host_command_output
    - unwrap
    - join
    - wait_vm_boot
    - Vec::output
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - Command::new
    - as_path
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_virtio_block_topology()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5989,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5989,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5990,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5990,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5992,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5994,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6001,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6001,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:5997,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6010,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6011,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6011,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6016,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6016,1
    - Dst: balloon_size
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6018,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6024,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6024,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6030,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6030,1
    - Dst: balloon_size
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6033,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6039,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6040,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6040,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 5988
    functionDepth: 15
    functionLinenumber: 5988
    functionLinenumberEnd: 6043
    functionName: common_parallel::test_virtio_balloon_deflate_on_oom
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - balloon_size
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_virtio_balloon_deflate_on_oom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6048,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6048,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6049,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6049,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6055,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6055,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6055,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6052,1
    - Dst: id
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6064,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6065,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6066,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6066,1
    - Dst: process_rss_kib
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6069,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6075,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6076,1
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6077,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6077,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6088,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6088,1
    - Dst: process_rss_kib
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6089,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6097,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6097,1
    - Dst: process_rss_kib
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6098,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6103,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6104,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6104,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6107
      start: 6047
    functionDepth: 15
    functionLinenumber: 6047
    functionLinenumberEnd: 6107
    functionName: common_parallel::test_virtio_balloon_free_page_reporting
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - ssh_command_ip
    - to_string
    - Result::unwrap
    - id
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - Vec::args
    - thread::spawn
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - clone
    - '&mut Self::capture_output'
    - process_rss_kib
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_virtio_balloon_free_page_reporting()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_pmem_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6112
      start: 6110
    functionDepth: 16
    functionLinenumber: 6110
    functionLinenumberEnd: 6112
    functionName: common_parallel::test_pmem_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_pmem_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_pmem_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_pmem_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6116,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6117
      start: 6115
    functionDepth: 16
    functionLinenumber: 6115
    functionLinenumberEnd: 6117
    functionName: common_parallel::test_pmem_multi_segment_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - Some
    - _test_pmem_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_pmem_multi_segment_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6121,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6123,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6124,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6125,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6125,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6128,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6130,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6132,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6134,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6139,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6139,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6136,1
    - Dst: Option<u16>::is_some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6145,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6146,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6152,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6152,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6154,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6155,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6155,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6168,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6168,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6169,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6169,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6169,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6170,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6173,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6206,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6221,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6221,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6234,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6248,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6249,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6249,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 106
    argCount: 1
    argNames:
    - pci_segment
    argTypes:
    - Option<u16>
    constantsTouched: []
    func_position:
      end: 6252
      start: 6119
    functionDepth: 15
    functionLinenumber: 6119
    functionLinenumberEnd: 6252
    functionName: common_parallel::_test_pmem_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - as_file
    - wait_with_output
    - Some
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - set_len
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - edk2_path
    - io::Result::unwrap
    - remote_command_w_output
    - Option<u16>::is_some
    linkageType: ''
    returnType: void
    signature: 'fn _test_pmem_hotplug(pci_segment: Option<u16>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_net_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6257
      start: 6255
    functionDepth: 16
    functionLinenumber: 6255
    functionLinenumberEnd: 6257
    functionName: common_parallel::test_net_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_net_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_net_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_net_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6261,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6262
      start: 6260
    functionDepth: 16
    functionLinenumber: 6260
    functionLinenumberEnd: 6262
    functionName: common_parallel::test_net_multi_segment_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - Some
    - _test_net_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_net_multi_segment_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6265,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6265,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6266,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6266,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6269,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6271,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6273,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6276,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6281,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6281,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6278,1
    - Dst: Option<u16>::is_some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6287,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6288,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6294,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6294,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6296,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6296,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6298,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6300,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6303,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6304,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6330,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6330,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6360,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6360,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6363,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6366,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6367,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6393,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6393,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6406,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6435,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6436,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6436,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 107
    argCount: 1
    argNames:
    - pci_segment
    argTypes:
    - Option<u16>
    constantsTouched: []
    func_position:
      end: 6439
      start: 6264
    functionDepth: 15
    functionLinenumber: 6264
    functionLinenumberEnd: 6439
    functionName: common_parallel::_test_net_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - '&mut Self::default_disks'
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - edk2_path
    - io::Result::unwrap
    - remote_command_w_output
    - Option<u16>::is_some
    linkageType: ''
    returnType: void
    signature: 'fn _test_net_hotplug(pci_segment: Option<u16>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6443,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6443,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6444,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6444,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6445,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6445,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6446,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6451,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6455,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6456,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6457,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6461,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6463,1
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6466,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6466,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6467,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6467,1
    - Dst: String::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6468,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6468,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6467,1
    - Dst: workload_path::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6469,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6469,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6467,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6467,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6467,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6467,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6475,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6475,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6477,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6478,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6478,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6480,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6481,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6488
      start: 6442
    functionDepth: 15
    functionLinenumber: 6442
    functionLinenumberEnd: 6488
    functionName: common_parallel::test_initramfs
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - workload_path::to_str
    - push
    - to_string
    - String::from
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - dirs::home_dir
    - thread::sleep
    - String::from_utf8_lossy
    - workload_path::push
    - Vec::args
    - iter
    - for_each
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - String::to_str
    - clone
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_initramfs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6492,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6492,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6493,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6493,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6494,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6496,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6499,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6499,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6499,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6502,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6502,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6497,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6506,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6506,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6508,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6509,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6509,1
    - Dst: get_counters
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6511,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6512,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6512,1
    - Dst: get_counters
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6516,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6522,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6523,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6523,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6526
      start: 6491
    functionDepth: 15
    functionLinenumber: 6491
    functionLinenumberEnd: 6526
    functionName: common_parallel::test_counters
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string
    - get_counters
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_counters()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6531,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6531,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6532,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6532,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6533,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6535,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6536,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6536,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6536,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6538,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6538,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6536,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6536,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6540,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6540,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6536,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6536,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6544,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6544,1
    - Dst: temp_vmcore_file_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6545,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6547,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6548,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6548,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6561,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6566,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6570,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6571,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6571,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6574
      start: 6530
    functionDepth: 15
    functionLinenumber: 6530
    functionLinenumberEnd: 6574
    functionName: common_parallel::test_coredump
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - fw_path
    - wait_with_output
    - Guest::new
    - Box::new
    - exec_host_command_output
    - unwrap
    - wait_vm_boot
    - default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - temp_vmcore_file_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_coredump()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6579,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6579,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6580,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6580,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6581,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6583,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6584,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6584,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6584,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6586,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6586,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6584,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6584,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6588,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6588,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6584,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6584,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6592,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6592,1
    - Dst: temp_vmcore_file_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6593,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6595,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6596,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6596,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6607,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6608,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6608,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6611
      start: 6578
    functionDepth: 15
    functionLinenumber: 6578
    functionLinenumberEnd: 6611
    functionName: common_parallel::test_coredump_no_pause
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - fw_path
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - temp_vmcore_file_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_coredump_no_pause()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6615,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6615,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6616,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6616,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6617,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6619,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6620,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6622,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6625,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6625,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6628,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6628,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6631,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6623,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6634,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6634,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6636,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6637,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6637,1
    - Dst: enable_guest_watchdog
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6642,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6656,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6656,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6661,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6661,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6663,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6663,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6663,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6674,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6678,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6690,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6691,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6691,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6694
      start: 6614
    functionDepth: 15
    functionLinenumber: 6614
    functionLinenumberEnd: 6694
    functionName: common_parallel::test_watchdog
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - '&str::to_string'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - enable_guest_watchdog
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - temp_event_monitor_path
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_watchdog()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6698,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6698,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6699,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6699,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6700,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6701,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6703,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6705,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6708,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6708,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6711,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6711,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6714,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6706,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6717,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6717,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6719,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6720,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6720,1
    - Dst: make_guest_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6723,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6726,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6726,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6729,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6738,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6739,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6739,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6742
      start: 6697
    functionDepth: 15
    functionLinenumber: 6697
    functionLinenumberEnd: 6742
    functionName: common_parallel::test_pvpanic
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - '&str::to_string'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - make_guest_panic
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - temp_event_monitor_path
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pvpanic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6746,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6746,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6747,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6747,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6748,1
    - Dst: net_util::open_tap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6754,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6755,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6756,1
    - Dst: std::net::IpAddr::V4
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6756,1
    - Dst: std::net::Ipv4Addr::from_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6757,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6757,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6763,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6754,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6770,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6770,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6767,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6787,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6788,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6788,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6800,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6813,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6814,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6814,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6817
      start: 6745
    functionDepth: 15
    functionLinenumber: 6745
    functionLinenumberEnd: 6817
    functionName: common_parallel::test_tap_from_fd
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - std::net::IpAddr::V4
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - Vec::args
    - std::net::Ipv4Addr::from_str
    - wait_with_output
    - Guest::new
    - std::result::Result::unwrap
    - net_util::open_tap
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_tap_from_fd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6829,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6829,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6830,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6830,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6831,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6834,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6836,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6859,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6859,1
    - Dst: std::ffi::CString::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6864,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6864,1
    - Dst: libc::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6865,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6865,1
    - Dst: libc::open
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6867,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6867,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6891,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6892,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6892,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6892,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6895,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6895,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6892,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6892,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6892,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6906,1
    - Dst: Self::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6909,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6909,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6909,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6915,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6915,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6918,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6918,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6935,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6936,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6936,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6948,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6961,1
    - Dst: exec_host_command_status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6963,1
    - Dst: exec_host_command_status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6964,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6966,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6966,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 110
    argCount: 3
    argNames:
    - hotplug
    - guest_macvtap_name
    - host_macvtap_name
    argTypes:
    - bool
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 6969
      start: 6828
    functionDepth: 15
    functionLinenumber: 6828
    functionLinenumberEnd: 6969
    functionName: common_parallel::_test_macvtap
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - libc::open
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - as_ptr
    - wait_with_output
    - Some
    - Guest::new
    - std::time::Duration::new
    - std::ffi::CString::new
    - Self::capture_output
    - Box::new
    - unwrap
    - wait_vm_boot
    - fs::read_to_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - edk2_path
    - io::Result::unwrap
    - exec_host_command_status
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: 'fn _test_macvtap(hotplug: bool, guest_macvtap_name: &str, host_macvtap_name:
      &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_macvtap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6975
      start: 6973
    functionDepth: 16
    functionLinenumber: 6973
    functionLinenumberEnd: 6975
    functionName: common_parallel::test_macvtap
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_macvtap
    linkageType: ''
    returnType: void
    signature: fn test_macvtap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_macvtap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6981
      start: 6979
    functionDepth: 16
    functionLinenumber: 6979
    functionLinenumberEnd: 6981
    functionName: common_parallel::test_macvtap_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_macvtap
    linkageType: ''
    returnType: void
    signature: fn test_macvtap_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6986,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6986,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6987,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6987,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6989,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6989,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6990,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6990,1
    - Dst: setup_ovs_dpdk_guests
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6994,1
    - Dst: temp_snapshot_dir_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6997,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:6999,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7004,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7005,1
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7006,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7006,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7016,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7016,1
    - Dst: Self::ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7019,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7019,1
    - Dst: Self::ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7025,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7025,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7038,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7038,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7042,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7043,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7043,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7044,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7047,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7047,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7047,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7047,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7047,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7055,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7055,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7055,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7059,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7055,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7055,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7055,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7066,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7066,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7068,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7073,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7074,1
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7075,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7075,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7085,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7085,1
    - Dst: Self::ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7088,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7088,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7091,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7092,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7094,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7094,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7095,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7095,1
    - Dst: cleanup_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7097,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 134
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7100
      start: 6985
    functionDepth: 15
    functionLinenumber: 6985
    functionLinenumberEnd: 7100
    functionName: common_parallel::test_ovs_dpdk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - setup_ovs_dpdk_guests
    - cleanup_ovs_dpdk
    - ssh_command_ip
    - to_string
    - Result::unwrap
    - arg
    - kill_child
    - UbuntuDiskConfig::new
    - Result::unwrap_err
    - handle_child_output
    - Self::ssh_command
    - temp_snapshot_dir_path
    - thread::sleep
    - output
    - Vec::args
    - thread::spawn
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait
    - clone
    - Self::arg
    - GuestCommand::new
    - '&mut Self::spawn'
    - Self::args
    - std::panic::catch_unwind
    - Command::new
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_ovs_dpdk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_spdk_nvme
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7103,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7128,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7128,1
    - Dst: Vec::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7128,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7128,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7132,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - nvme_dir
    argTypes:
    - '&std::path::Path'
    constantsTouched: []
    func_position:
      end: 7161
      start: 7102
    functionDepth: 9
    functionLinenumber: 7102
    functionLinenumberEnd: 7161
    functionName: common_parallel::setup_spdk_nvme
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - std::time::Duration::new
    - Self::args
    - Vec::spawn
    - Command::new
    - io::Result::unwrap
    - cleanup_spdk_nvme
    linkageType: ''
    returnType: Child
    signature: 'fn setup_spdk_nvme(nvme_dir: &std::path::Path) -> Child'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exec_host_command_status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7165
      start: 7163
    functionDepth: 8
    functionLinenumber: 7163
    functionLinenumberEnd: 7165
    functionName: common_parallel::cleanup_spdk_nvme
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - exec_host_command_status
    linkageType: ''
    returnType: void
    signature: fn cleanup_spdk_nvme()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7169,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7170,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7171,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7171,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7173,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7173,1
    - Dst: setup_spdk_nvme
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7174,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7174,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7176,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7181,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7181,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7177,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7189,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7190,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7190,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7193,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7196,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7211,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7211,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7230,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7230,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7236,1
    - Dst: Child::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7247,1
    - Dst: Child::wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7248,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7250,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7251,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7251,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7254
      start: 7168
    functionDepth: 15
    functionLinenumber: 7168
    functionLinenumberEnd: 7254
    functionName: common_parallel::test_vfio_user
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - Child::wait
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - reboot_linux
    - thread::sleep
    - Vec::args
    - Child::kill
    - fw_path
    - wait_with_output
    - Some
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - setup_spdk_nvme
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - as_path
    - String::as_str
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: fn test_vfio_user()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7262,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7262,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7263,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7263,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7264,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7266,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7271,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7271,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7268,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7282,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7283,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7283,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7298,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7298,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7308,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7311,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7319,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7319,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7347,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7347,1
    - Dst: remote_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7358,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7358,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7360,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7360,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7374,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7375,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7375,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7258
    functionDepth: 15
    functionLinenumber: 7258
    functionLinenumberEnd: 7378
    functionName: common_parallel::test_vdpa_block
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Some
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - remote_command
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: fn test_vdpa_block()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exec_host_command_status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7384,1
    - Dst: ExitStatus::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7384,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7388,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7388,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7389,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7389,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7391,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7396,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7396,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7393,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7405,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7406,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7406,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7419,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7419,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7422,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7422,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7425,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7425,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7439,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7439,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7456,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7457,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7457,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7460
      start: 7382
    functionDepth: 15
    functionLinenumber: 7382
    functionLinenumberEnd: 7460
    functionName: common_parallel::test_vdpa_net
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - ExitStatus::success
    - wait_with_output
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    - exec_host_command_status
    linkageType: ''
    returnType: void
    signature: fn test_vdpa_net()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7466,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7466,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7467,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7467,1
    - Dst: prepare_swtpm_daemon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7469,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7471,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7472,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7472,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7472,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7475,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7475,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7472,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7472,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7472,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7472,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7482,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7482,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7483,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7483,1
    - Dst: Self::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7484,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7484,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7485,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7486,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7486,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7491,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7491,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7492,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7492,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7495,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7495,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7498,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7499,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7499,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7501,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7502,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7502,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7465
    functionDepth: 15
    functionLinenumber: 7465
    functionLinenumberEnd: 7505
    functionName: common_parallel::test_tpm
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - to_string
    - Result::unwrap
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - fw_path
    - '&mut Self::default_disks'
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - Self::spawn
    - spawn
    - GuestCommand::new
    - kill
    - Self::args
    - std::panic::catch_unwind
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    - prepare_swtpm_daemon
    linkageType: ''
    returnType: void
    signature: fn test_tpm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7510,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7510,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7511,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7511,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7512,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7513,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7520,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7524,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7524,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: replace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7527,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7527,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: '&mut Self::default_disks'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7522,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7538,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7538,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7540,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7541,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7541,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7544,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7545,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7545,1
    - Dst: u64::is_ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7547,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7548,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7549,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7557
      start: 7509
    functionDepth: 15
    functionLinenumber: 7509
    functionLinenumberEnd: 7557
    functionName: common_parallel::test_double_tty
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - u64::is_ok
    - String::from_utf8_lossy
    - Vec::args
    - replace
    - '&mut Self::default_disks'
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_double_tty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7562,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7562,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7563,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7563,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7564,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7565,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7567,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7570,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7573,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7573,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7574,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7576,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7576,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7579,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7571,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7582,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7582,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7584,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7585,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7585,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7590,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7590,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7593,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7602,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7603,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7603,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7606
      start: 7561
    functionDepth: 15
    functionLinenumber: 7561
    functionLinenumberEnd: 7606
    functionName: common_parallel::test_nmi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - '&str::to_string'
    - temp_api_path
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - default_net_string
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - temp_event_monitor_path
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_nmi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7618,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7618,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7619,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7619,1
    - Dst: TargetApi::new_dbus_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7620,1
    - Dst: TargetApi::new_http_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7621,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7623,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7623,1
    - Dst: Self::guest_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7624,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7623,1
    - Dst: Self::guest_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7625,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7623,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7623,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7623,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7630,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7630,1
    - Dst: api_create_body
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7638,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7640,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7640,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7640,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7644,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7644,1
    - Dst: std::fs::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7645,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7645,1
    - Dst: as_os_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7646,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7646,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7646,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7648,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7654,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7654,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7662,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7662,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7663,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7663,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7666,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7666,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7673,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7673,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7680,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7681,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7681,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7684
      start: 7617
    functionDepth: 15
    functionLinenumber: 7617
    functionLinenumberEnd: 7684
    functionName: dbus_api::test_api_dbus_and_http_interleaved
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - std::fs::write
    - to_string
    - to_str
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - TargetApi::new_http_api
    - handle_child_output
    - api_create_body
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Self::guest_args
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - TargetApi::new_dbus_api
    - Self::args
    - direct_kernel_boot_path
    - as_os_str
    - IoResult::unwrap
    - std::panic::catch_unwind
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_api_dbus_and_http_interleaved()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7688,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7688,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7689,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7689,1
    - Dst: TargetApi::new_dbus_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7691,1
    - Dst: _test_api_create_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7693
      start: 7687
    functionDepth: 15
    functionLinenumber: 7687
    functionLinenumberEnd: 7693
    functionName: dbus_api::test_api_dbus_create_boot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - Guest::new
    - TargetApi::new_dbus_api
    - Box::new
    - _test_api_create_boot
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_dbus_create_boot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7697,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7697,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7698,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7698,1
    - Dst: TargetApi::new_dbus_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7700,1
    - Dst: _test_api_shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7702
      start: 7696
    functionDepth: 15
    functionLinenumber: 7696
    functionLinenumberEnd: 7702
    functionName: dbus_api::test_api_dbus_shutdown
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - _test_api_shutdown
    - Guest::new
    - TargetApi::new_dbus_api
    - Box::new
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_dbus_shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7706,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7706,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7707,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7707,1
    - Dst: TargetApi::new_dbus_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7709,1
    - Dst: _test_api_delete
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7711
      start: 7705
    functionDepth: 15
    functionLinenumber: 7705
    functionLinenumberEnd: 7711
    functionName: dbus_api::test_api_dbus_delete
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - _test_api_delete
    - Guest::new
    - TargetApi::new_dbus_api
    - Box::new
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_dbus_delete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7715,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7715,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7716,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7716,1
    - Dst: TargetApi::new_dbus_api
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7718,1
    - Dst: _test_api_pause_resume
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7720
      start: 7714
    functionDepth: 15
    functionLinenumber: 7714
    functionLinenumberEnd: 7720
    functionName: dbus_api::test_api_dbus_pause_resume
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - Guest::new
    - TargetApi::new_dbus_api
    - Box::new
    - _test_api_pause_resume
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_api_dbus_pause_resume()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7733,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7733,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7734,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7734,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7735,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7736,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7752,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7752,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7753,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7753,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7753,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7754,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7754,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7755,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7754,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7754,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7758,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7760,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7761,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7761,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7761,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7761,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7771,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7771,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7774,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7775,1
    - Dst: Vec::status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7771,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7771,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7782,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7783,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7784,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7788,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7791,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7791,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7794,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7798,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7785,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7802,1
    - Dst: Self::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7804,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7804,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7804,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7807,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7808,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7809,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7809,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7809,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7809,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7809,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7815,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7816,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7816,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7824,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7824,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7824,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7835,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7835,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7843,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7843,1
    - Dst: _test_ivshmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7847,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7849,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7849,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7852,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7853,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7853,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7853,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7853,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7873,1
    - Dst: live_migration::print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7874,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7883,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7883,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7884,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7884,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7884,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7884,1
    - Dst: live_migration::print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7885,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7894,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7899,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7899,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7899,1
    - Dst: _test_ivshmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7902,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7906,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7907,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7907,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7908,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7911,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 223
    argCount: 1
    argNames:
    - local
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 7915
      start: 7732
    functionDepth: 15
    functionLinenumber: 7732
    functionLinenumberEnd: 7915
    functionName: ivshmem::_test_live_migration_ivshmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - GuestCommand::new_with_binary_path
    - expect
    - TempFile::new
    - u64::is_err
    - '&mut Self::args'
    - _test_ivshmem
    - temp_api_path
    - to_string
    - to_str
    - Result::unwrap
    - String::from
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - std::process::Command::new
    - String::push_str
    - try_wait
    - thread::sleep
    - Duration::new
    - output
    - Vec::args
    - as_file
    - clh_command
    - is_some_and
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Self::capture_output
    - Box::new
    - unwrap
    - join
    - set_len
    - wait_vm_boot
    - Self::arg
    - FdtWriterResult::success
    - GuestCommand::new
    - live_migration::print_and_panic
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Command::new
    - check_devices_common
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - kill
    - Vec::status
    linkageType: ''
    returnType: void
    signature: 'fn _test_live_migration_ivshmem(local: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7919,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7919,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7920,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7920,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7921,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7923,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7925,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7926,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7926,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7926,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7926,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7936,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7936,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7939,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7940,1
    - Dst: Vec::status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7936,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7936,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7949,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7949,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7955,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7946,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7962,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7963,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7963,1
    - Dst: _test_ivshmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7964,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7966,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7967,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7967,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7970
      start: 7918
    functionDepth: 15
    functionLinenumber: 7918
    functionLinenumberEnd: 7970
    functionName: ivshmem::test_ivshmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - _test_ivshmem
    - temp_api_path
    - to_string
    - to_str
    - Result::unwrap
    - PathBuf::to_str
    - String::from
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Command::new
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - Vec::status
    linkageType: ''
    returnType: void
    signature: fn test_ivshmem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7975,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7975,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7976,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7976,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7977,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7981,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7982,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7982,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7982,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7982,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7992,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7992,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7995,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7996,1
    - Dst: Vec::status
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7992,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:7992,1
    - Dst: temp_vsock_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8002,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8003,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8007,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8010,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8010,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8013,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8017,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8005,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8023,1
    - Dst: temp_snapshot_dir_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8025,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8027,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8028,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8028,1
    - Dst: common_sequential::snapshot_and_check_events
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8033,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8041,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8042,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8042,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8043,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8046,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8046,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8046,1
    - Dst: Result::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8048,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8046,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8046,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8056,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8056,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8056,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8060,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8056,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8064,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8056,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8056,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8056,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8071,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8071,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8074,1
    - Dst: remove_dir_all
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8083,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8083,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8085,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8093,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8093,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8096,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8100,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8111,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8111,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8111,1
    - Dst: _test_ivshmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8112,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8115,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8116,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8116,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8117,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8119,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 199
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8124
      start: 7974
    functionDepth: 15
    functionLinenumber: 7974
    functionLinenumberEnd: 8124
    functionName: ivshmem::test_snapshot_restore_ivshmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - common_sequential::snapshot_and_check_events
    - '&mut Self::args'
    - '&str::to_string'
    - _test_ivshmem
    - to_string
    - to_str
    - Result::unwrap
    - arg
    - PathBuf::to_str
    - String::from
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - temp_snapshot_dir_path
    - temp_vsock_path
    - thread::sleep
    - output
    - Vec::args
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - Self::arg
    - Result::as_str
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Command::new
    - temp_event_monitor_path
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - remove_dir_all
    - String::as_str
    - check_devices_common
    - Vec::status
    linkageType: ''
    returnType: void
    signature: fn test_snapshot_restore_ivshmem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_ivshmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8130
      start: 8128
    functionDepth: 16
    functionLinenumber: 8128
    functionLinenumberEnd: 8130
    functionName: ivshmem::test_live_migration_ivshmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_ivshmem
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_ivshmem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_ivshmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8136
      start: 8134
    functionDepth: 16
    functionLinenumber: 8134
    functionLinenumberEnd: 8136
    functionName: ivshmem::test_live_migration_ivshmem_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_ivshmem
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_ivshmem_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_memory_mergeable
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8148
      start: 8146
    functionDepth: 16
    functionLinenumber: 8146
    functionLinenumberEnd: 8148
    functionName: common_sequential::test_memory_mergeable_on
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_memory_mergeable
    linkageType: ''
    returnType: void
    signature: fn test_memory_mergeable_on()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8159,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8163,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8168,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8168,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8179,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8179,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8183,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8187,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8192,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 3
    argNames:
    - api_socket
    - snapshot_dir
    - event_path
    argTypes:
    - '&str'
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 8194
      start: 8150
    functionDepth: 2
    functionLinenumber: 8150
    functionLinenumberEnd: 8194
    functionName: common_sequential::snapshot_and_check_events
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - thread::sleep
    - '&str::to_string'
    - std::time::Duration::new
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn snapshot_and_check_events(api_socket: &str,snapshot_dir:
      &str,event_path: &str,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_snapshot_restore
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8203
      start: 8201
    functionDepth: 16
    functionLinenumber: 8201
    functionLinenumberEnd: 8203
    functionName: common_sequential::test_snapshot_restore_hotplug_virtiomem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_snapshot_restore
    linkageType: ''
    returnType: void
    signature: fn test_snapshot_restore_hotplug_virtiomem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_snapshot_restore
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8209
      start: 8207
    functionDepth: 16
    functionLinenumber: 8207
    functionLinenumberEnd: 8209
    functionName: common_sequential::test_snapshot_restore_basic
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_snapshot_restore
    linkageType: ''
    returnType: void
    signature: fn test_snapshot_restore_basic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8212,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8212,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8213,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8213,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8214,1
    - Dst: temp_vsock_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8234,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8235,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8239,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8243,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8243,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8246,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8251,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8253,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8254,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8237,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8260,1
    - Dst: temp_snapshot_dir_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8262,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8264,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8265,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8265,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8273,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8276,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8278,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8280,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8280,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8283,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8287,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8288,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8290,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8290,1
    - Dst: get_total_memory
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8291,1
    - Dst: Result::unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8291,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8296,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8296,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8296,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8312,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8312,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8314,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8315,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8315,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8318,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8318,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8327,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8327,1
    - Dst: snapshot_and_check_events
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8330,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8334,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8335,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8335,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8336,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8338,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8342,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8345,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8345,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8345,1
    - Dst: Result::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8347,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8345,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8345,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8355,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8355,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8355,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8359,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8355,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8363,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8355,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8355,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8355,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8370,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8370,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8373,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8377,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8378,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8378,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8381,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8382,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8382,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8385,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8394,1
    - Dst: remove_dir_all
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8403,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8403,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8405,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8413,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8413,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8416,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8420,1
    - Dst: get_total_memory
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8431,1
    - Dst: Result::unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8431,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8436,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8436,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8437,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8437,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8440,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8440,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8441,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8441,1
    - Dst: get_total_memory
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8442,1
    - Dst: Result::unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8442,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8449,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8449,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8449,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8452,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8453,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8453,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8454,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8456,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 301
    argCount: 1
    argNames:
    - use_hotplug
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 8461
      start: 8211
    functionDepth: 15
    functionLinenumber: 8211
    functionLinenumberEnd: 8461
    functionName: common_sequential::_test_snapshot_restore
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - get_total_memory
    - Result::unwrap_or_default
    - '&str::to_string'
    - to_string
    - Result::unwrap
    - arg
    - String::from
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - temp_snapshot_dir_path
    - temp_vsock_path
    - thread::sleep
    - output
    - Vec::args
    - snapshot_and_check_events
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - Self::arg
    - Result::as_str
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - temp_event_monitor_path
    - check_devices_common
    - Command::new
    - Vec::capture_output
    - io::Result::unwrap
    - remove_dir_all
    - String::as_str
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_snapshot_restore(use_hotplug: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8467,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8467,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8468,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8468,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8469,1
    - Dst: net_util::open_tap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8478,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8479,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8480,1
    - Dst: std::net::IpAddr::V4
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8480,1
    - Dst: std::net::Ipv4Addr::from_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8481,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8481,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8487,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8478,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8506,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8510,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8511,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8513,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8513,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8516,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8521,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8523,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8508,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8529,1
    - Dst: temp_snapshot_dir_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8531,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8533,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8534,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8534,1
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8537,1
    - Dst: libc::close
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8538,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8538,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8547,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8547,1
    - Dst: snapshot_and_check_events
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8549,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8553,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8554,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8554,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8555,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8557,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8561,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8567,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8567,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8567,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8571,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8567,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8567,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8567,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8576,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8576,1
    - Dst: net_util::open_tap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8578,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8579,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8580,1
    - Dst: std::net::IpAddr::V4
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8580,1
    - Dst: std::net::Ipv4Addr::from_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8581,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8581,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8587,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8578,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8604,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8604,1
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8607,1
    - Dst: libc::close
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8608,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8608,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8613,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8617,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8618,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8618,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8621,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8622,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8622,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8625,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8634,1
    - Dst: remove_dir_all
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8643,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8643,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8645,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8653,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8653,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8656,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8660,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8673,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8673,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8676,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8677,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8677,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8678,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8680,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 237
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8685
      start: 8466
    functionDepth: 15
    functionLinenumber: 8466
    functionLinenumberEnd: 8685
    functionName: common_sequential::test_snapshot_restore_with_fd
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - libc::close
    - '&str::to_string'
    - std::net::IpAddr::V4
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - String::from
    - Result::as_raw_fd
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - temp_snapshot_dir_path
    - thread::sleep
    - Vec::args
    - iter
    - snapshot_and_check_events
    - std::net::Ipv4Addr::from_str
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - std::result::Result::unwrap
    - net_util::open_tap
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - temp_event_monitor_path
    - check_devices_common
    - Vec::capture_output
    - io::Result::unwrap
    - remove_dir_all
    - String::as_str
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_snapshot_restore_with_fd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_snapshot_restore_devices
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8692
      start: 8690
    functionDepth: 16
    functionLinenumber: 8690
    functionLinenumberEnd: 8692
    functionName: common_sequential::test_snapshot_restore_pvpanic
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_snapshot_restore_devices
    linkageType: ''
    returnType: void
    signature: fn test_snapshot_restore_pvpanic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8695,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8695,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8696,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8696,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8697,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8704,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8704,1
    - Dst: temp_vsock_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8709,1
    - Dst: temp_event_monitor_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8710,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8714,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8717,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8717,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8720,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8712,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8727,1
    - Dst: temp_snapshot_dir_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8729,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8731,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8732,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8732,1
    - Dst: snapshot_and_check_events
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8737,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8741,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8742,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8742,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8743,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8746,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8746,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8746,1
    - Dst: Result::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8748,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8746,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8746,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8756,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8756,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8756,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8760,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8756,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8764,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8756,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8756,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8756,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8771,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8771,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8774,1
    - Dst: remove_dir_all
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8783,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8783,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8785,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8793,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8793,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8796,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8800,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8811,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8811,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8811,1
    - Dst: make_guest_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8815,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8817,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8817,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8820,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8830,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8831,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8831,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8832,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8834,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 189
    argCount: 1
    argNames:
    - pvpanic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 8839
      start: 8694
    functionDepth: 15
    functionLinenumber: 8694
    functionLinenumberEnd: 8839
    functionName: common_sequential::_test_snapshot_restore_devices
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - '&str::to_string'
    - to_string
    - Result::unwrap
    - arg
    - PathBuf::to_str
    - String::from
    - kill_child
    - UbuntuDiskConfig::new
    - handle_child_output
    - temp_snapshot_dir_path
    - temp_vsock_path
    - thread::sleep
    - output
    - Vec::args
    - make_guest_panic
    - String::push
    - snapshot_and_check_events
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - Self::arg
    - Result::as_str
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - temp_event_monitor_path
    - Command::new
    - check_devices_common
    - Vec::capture_output
    - io::Result::unwrap
    - remove_dir_all
    - String::as_str
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_snapshot_restore_devices(pvpanic: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_virtio_pmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:8843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8844
      start: 8842
    functionDepth: 16
    functionLinenumber: 8842
    functionLinenumberEnd: 8844
    functionName: common_sequential::test_virtio_pmem_persist_writes
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_virtio_pmem
    linkageType: ''
    returnType: void
    signature: fn test_virtio_pmem_persist_writes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9106,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9106,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9107,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9106,1
    - Dst: (bool, Vec::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9106,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9111,1
    - Dst: matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9111,1
    - Dst: count
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - pid
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 9112
      start: 9104
    functionDepth: 5
    functionLinenumber: 9104
    functionLinenumberEnd: 9112
    functionName: windows::vcpu_threads_count
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - (bool, Vec::expect
    - as_str
    - Self::args
    - String::from_utf8_lossy
    - Command::new
    - Vec::output
    - matches
    - count
    linkageType: ''
    returnType: u8
    signature: 'fn vcpu_threads_count(pid: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9116,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9116,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9117,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9116,1
    - Dst: (bool, Vec::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9116,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9122,1
    - Dst: split_whitespace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9122,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9122,1
    - Dst: FdtWriterResult::starts_with
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9124,1
    - Dst: FdtWriterResult::ends_with
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - pid
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 9126
      start: 9114
    functionDepth: 5
    functionLinenumber: 9114
    functionLinenumberEnd: 9126
    functionName: windows::netdev_ctrl_threads_count
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - for_each
    - (bool, Vec::expect
    - FdtWriterResult::ends_with
    - as_str
    - FdtWriterResult::starts_with
    - Self::args
    - String::from_utf8_lossy
    - split_whitespace
    - Command::new
    - Vec::output
    linkageType: ''
    returnType: u8
    signature: 'fn netdev_ctrl_threads_count(pid: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9130,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9130,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9131,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9130,1
    - Dst: (bool, Vec::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9130,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9136,1
    - Dst: split_whitespace
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9136,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9136,1
    - Dst: FdtWriterResult::starts_with
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9138,1
    - Dst: FdtWriterResult::ends_with
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - pid
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 9140
      start: 9128
    functionDepth: 5
    functionLinenumber: 9128
    functionLinenumberEnd: 9140
    functionName: windows::disk_ctrl_threads_count
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - for_each
    - (bool, Vec::expect
    - FdtWriterResult::ends_with
    - as_str
    - FdtWriterResult::starts_with
    - Self::args
    - String::from_utf8_lossy
    - split_whitespace
    - Command::new
    - Vec::output
    linkageType: ''
    returnType: u8
    signature: 'fn disk_ctrl_threads_count(pid: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9144,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9149,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9149,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9149,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9146,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9158,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9158,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9158,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9159,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9160,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9160,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9160,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9161,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9165,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9167,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9171,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9174,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9174,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9175,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9176,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9176,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9178,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9179,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9182
      start: 9143
    functionDepth: 16
    functionLinenumber: 9143
    functionLinenumberEnd: 9182
    functionName: windows::test_windows_guest
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - as_ref
    - shutdown
    - libc::fcntl
    - PathBuf::to_str
    - handle_child_output
    - Vec::args
    - as_raw_fd
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - run_dnsmasq
    - guest
    - unwrap
    - wait
    - '&mut Self::capture_output'
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - edk2_path
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9186,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9188,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9188,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9189,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9190,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9195,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9195,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9200,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9212,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9192,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9223,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9223,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9223,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9224,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9225,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9225,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9225,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9226,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9230,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9232,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9236,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9239,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9239,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9240,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9241,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9241,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9243,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9244,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9247
      start: 9185
    functionDepth: 17
    functionLinenumber: 9185
    functionLinenumberEnd: 9247
    functionName: windows::test_windows_guest_multiple_queues
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - push
    - shutdown
    - to_str
    - libc::fcntl
    - handle_child_output
    - dirs::home_dir
    - Vec::args
    - as_raw_fd
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - as_str
    - run_dnsmasq
    - guest
    - unwrap
    - wait
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_multiple_queues()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9253,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9255,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9255,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9256,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9257,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9259,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9259,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9266,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9266,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9262,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9275,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9275,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9275,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9276,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9277,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9277,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9277,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9278,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9282,1
    - Dst: temp_snapshot_dir_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9287,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9300,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9300,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9302,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9303,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9303,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9308,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9308,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9308,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9308,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9312,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9308,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9308,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9308,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9319,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9319,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9321,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9325,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9328,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9328,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9329,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9330,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9330,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9332,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9333,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9336
      start: 9252
    functionDepth: 17
    functionLinenumber: 9252
    functionLinenumberEnd: 9336
    functionName: windows::test_windows_guest_snapshot_restore
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - as_ref
    - push
    - to_str
    - shutdown
    - libc::fcntl
    - TempDir::new_with_prefix
    - handle_child_output
    - temp_snapshot_dir_path
    - dirs::home_dir
    - thread::sleep
    - Vec::args
    - as_raw_fd
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - as_str
    - std::time::Duration::new
    - run_dnsmasq
    - guest
    - unwrap
    - wait
    - '&mut Self::capture_output'
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_snapshot_restore()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9342,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9344,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9344,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9345,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9346,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9348,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9348,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9349,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9355,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9355,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9351,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9364,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9366,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9378,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9378,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9380,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9380,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9388,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9388,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9390,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9390,1
    - Dst: reboot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9392,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9394,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9394,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9400,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9403,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9403,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9404,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9405,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9405,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9407,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9408,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9411
      start: 9341
    functionDepth: 17
    functionLinenumber: 9341
    functionLinenumberEnd: 9411
    functionName: windows::test_windows_guest_cpu_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - push
    - temp_api_path
    - to_str
    - shutdown
    - TempDir::new_with_prefix
    - reboot
    - handle_child_output
    - dirs::home_dir
    - thread::sleep
    - Vec::args
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - std::time::Duration::new
    - run_dnsmasq
    - resize_command
    - guest
    - unwrap
    - wait
    - '&mut Self::capture_output'
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_cpu_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9417,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9419,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9419,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9420,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9421,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9423,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9423,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9424,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9430,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9430,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9426,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9439,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9441,1
    - Dst: ram_size
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9447,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9457,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9457,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9459,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9459,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9465,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9465,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9467,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9467,1
    - Dst: reboot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9469,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9471,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9471,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9475,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9478,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9478,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9479,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9480,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9480,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9482,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9483,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9486
      start: 9416
    functionDepth: 17
    functionLinenumber: 9416
    functionLinenumberEnd: 9486
    functionName: windows::test_windows_guest_ram_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - push
    - temp_api_path
    - to_str
    - shutdown
    - TempDir::new_with_prefix
    - reboot
    - handle_child_output
    - dirs::home_dir
    - thread::sleep
    - ram_size
    - Vec::args
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - std::time::Duration::new
    - run_dnsmasq
    - resize_command
    - guest
    - unwrap
    - wait
    - '&mut Self::capture_output'
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_ram_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9491,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9493,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9493,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9494,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9495,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9497,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9497,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9498,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9504,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9504,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9500,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9513,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9515,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9525,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9528,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9528,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9528,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9528,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9532,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9532,1
    - Dst: remote_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9539,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9539,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9541,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9541,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9547,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9550,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9550,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9551,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9552,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9552,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9554,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9555,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9490
    functionDepth: 17
    functionLinenumber: 9490
    functionLinenumberEnd: 9558
    functionName: windows::test_windows_guest_netdev_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - push
    - temp_api_path
    - to_str
    - shutdown
    - TempDir::new_with_prefix
    - handle_child_output
    - dirs::home_dir
    - thread::sleep
    - Vec::args
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - Some
    - std::time::Duration::new
    - run_dnsmasq
    - guest
    - unwrap
    - wait
    - '&mut Self::capture_output'
    - default_net_string
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - remote_command
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_netdev_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9565,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9567,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9567,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9568,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9569,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9571,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9571,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9572,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9578,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9578,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9574,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9587,1
    - Dst: disk_new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9589,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9591,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9601,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9604,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9604,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9608,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9608,1
    - Dst: disks_set_rw
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9610,1
    - Dst: disks_online
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9611,1
    - Dst: disk_file_put
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9619,1
    - Dst: remote_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9622,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9622,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9624,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9624,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9631,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9634,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9634,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9637,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9637,1
    - Dst: disk_file_read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9638,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9643,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9646,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9646,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9647,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9648,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9648,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9650,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9651,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9654
      start: 9564
    functionDepth: 17
    functionLinenumber: 9564
    functionLinenumberEnd: 9654
    functionName: windows::test_windows_guest_disk_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - push
    - temp_api_path
    - to_str
    - shutdown
    - TempDir::new_with_prefix
    - disk_file_read
    - handle_child_output
    - dirs::home_dir
    - thread::sleep
    - Vec::args
    - disks_online
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - Some
    - as_str
    - std::time::Duration::new
    - run_dnsmasq
    - guest
    - unwrap
    - wait
    - '&mut Self::capture_output'
    - disk_file_put
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - remote_command
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - disks_set_rw
    - io::Result::unwrap
    - remote_command_w_output
    - disk_new
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_disk_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9661,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9663,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9663,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9664,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9665,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9667,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9667,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9668,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9674,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9674,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9670,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9683,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9688,1
    - Dst: disk_new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9689,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9690,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9691,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9694,1
    - Dst: disk_new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9695,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9696,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9697,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9701,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9711,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9712,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9714,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9717,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9717,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9724,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9724,1
    - Dst: disks_set_rw
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9726,1
    - Dst: disks_online
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9727,1
    - Dst: len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9730,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9736,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9737,1
    - Dst: disk_file_put
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9738,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9743,1
    - Dst: remote_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9744,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9744,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9746,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9746,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9756,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9757,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9760,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9760,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9763,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9763,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9768,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9769,1
    - Dst: disk_file_read
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9770,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9776,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9779,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9779,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9780,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9781,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9781,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9783,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9784,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9786,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 182
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9787
      start: 9660
    functionDepth: 17
    functionLinenumber: 9660
    functionLinenumberEnd: 9787
    functionName: windows::test_windows_guest_disk_hotplug_multi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - push
    - '&str::to_string'
    - temp_api_path
    - to_str
    - shutdown
    - TempDir::new_with_prefix
    - disk_file_read
    - handle_child_output
    - dirs::home_dir
    - thread::sleep
    - Vec::args
    - len
    - disks_online
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - Some
    - as_str
    - std::time::Duration::new
    - run_dnsmasq
    - guest
    - unwrap
    - wait
    - '&mut Self::capture_output'
    - disk_file_put
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - remote_command
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - disks_set_rw
    - io::Result::unwrap
    - remote_command_w_output
    - disk_new
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_disk_hotplug_multi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowsGuest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9793,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9795,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9795,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9796,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9797,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9799,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9799,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9800,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9806,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9806,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: guest
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9813,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9813,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9813,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9802,1
    - Dst: run_dnsmasq
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9821,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9823,1
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9831,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9834,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9837,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9837,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9838,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9839,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9839,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9841,1
    - Dst: wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9842,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9845
      start: 9792
    functionDepth: 17
    functionLinenumber: 9792
    functionLinenumberEnd: 9845
    functionName: windows::test_windows_guest_netdev_multi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - push
    - temp_api_path
    - to_str
    - shutdown
    - TempDir::new_with_prefix
    - handle_child_output
    - dirs::home_dir
    - Vec::args
    - std::time::Duration::from_secs
    - wait_with_output
    - wait_timeout
    - run_dnsmasq
    - guest
    - exec_host_command_output
    - unwrap
    - wait
    - default_net_string
    - WindowsGuest::new
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_windows_guest_netdev_multi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9854,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9854,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9855,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9855,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9856,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9862,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9864,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9864,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9865,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9858,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9873,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9874,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9874,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9878,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9882,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9882,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9883,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9883,1
    - Dst: check_nvidia_gpu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9887,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9890,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9891,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9891,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 1
    argNames:
    - hotplug_method
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 9894
      start: 9853
    functionDepth: 15
    functionLinenumber: 9853
    functionLinenumberEnd: 9894
    functionName: vfio::test_nvidia_card_memory_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - enable_memory_hotplug
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - check_nvidia_gpu
    - Vec::args
    - fw_path
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn test_nvidia_card_memory_hotplug(hotplug_method: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_nvidia_card_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9899
      start: 9897
    functionDepth: 16
    functionLinenumber: 9897
    functionLinenumberEnd: 9899
    functionName: vfio::test_nvidia_card_memory_hotplug_acpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_nvidia_card_memory_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_nvidia_card_memory_hotplug_acpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_nvidia_card_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9904
      start: 9902
    functionDepth: 16
    functionLinenumber: 9902
    functionLinenumberEnd: 9904
    functionName: vfio::test_nvidia_card_memory_hotplug_virtio_mem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_nvidia_card_memory_hotplug
    linkageType: ''
    returnType: void
    signature: fn test_nvidia_card_memory_hotplug_virtio_mem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9908,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9908,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9909,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9909,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9910,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9915,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9915,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9912,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9923,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9924,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9924,1
    - Dst: remote_command_w_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9927,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9930,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9930,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9938,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9938,1
    - Dst: check_nvidia_gpu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9941,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9944,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9945,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9945,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9948
      start: 9907
    functionDepth: 15
    functionLinenumber: 9907
    functionLinenumberEnd: 9948
    functionName: vfio::test_nvidia_card_pci_hotplug
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - UbuntuDiskConfig::new
    - handle_child_output
    - thread::sleep
    - check_nvidia_gpu
    - Vec::args
    - fw_path
    - wait_with_output
    - Some
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - io::Result::unwrap
    - remote_command_w_output
    linkageType: ''
    returnType: void
    signature: fn test_nvidia_card_pci_hotplug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9952,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9952,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9953,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9953,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9954,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9959,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9959,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9962,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9956,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9971,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9972,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9972,1
    - Dst: check_nvidia_gpu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9975,1
    - Dst: reboot_linux
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9977,1
    - Dst: check_nvidia_gpu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9980,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9983,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9984,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9984,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9987
      start: 9951
    functionDepth: 15
    functionLinenumber: 9951
    functionLinenumberEnd: 9987
    functionName: vfio::test_nvidia_card_reboot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - UbuntuDiskConfig::new
    - handle_child_output
    - reboot_linux
    - check_nvidia_gpu
    - Vec::args
    - fw_path
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_nvidia_card_reboot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9991,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9991,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9992,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9992,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9993,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: fw_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9998,1
    - Dst: String::as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9998,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9999,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:9995,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10011,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10012,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10012,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10022,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10023,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10023,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10026
      start: 9990
    functionDepth: 15
    functionLinenumber: 9990
    functionLinenumberEnd: 10026
    functionName: vfio::test_nvidia_card_iommu_address_width
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - temp_api_path
    - to_string
    - Result::unwrap
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - fw_path
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - '&mut Self::capture_output'
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - String::as_str
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_nvidia_card_iommu_address_width()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10039,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10039,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10039,1
    - Dst: Vec::stderr
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10039,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10045,1
    - Dst: stdout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10039,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10046,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10039,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10039,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10050,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10050,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10055,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10053,1
    - Dst: Vec::insert
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10061,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10061,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10064,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10064,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10064,1
    - Dst: Vec::stderr
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10064,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10066,1
    - Dst: stdout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10064,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10067,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10064,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10064,1
    - Dst: ApiResult::wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10072,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10073,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10072,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10076,1
    - Dst: ApiResult::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10082,1
    - Dst: ApiResult::wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10083,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10083,1
    - Dst: ApiResult::wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10094,1
    - Dst: std::time::Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10095,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10094,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10098,1
    - Dst: ApiResult::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10104,1
    - Dst: ApiResult::wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10105,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 4
    argNames:
    - migration_socket
    - src_api_socket
    - dest_api_socket
    - local
    argTypes:
    - '&str'
    - '&str'
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 10116
      start: 10032
    functionDepth: 8
    functionLinenumber: 10032
    functionLinenumberEnd: 10116
    functionName: live_migration::start_live_migration
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - stdout
    - '&str::to_string'
    - Vec::stderr
    - Stdio::piped
    - Result::unwrap
    - ApiResult::wait_timeout
    - thread::sleep
    - success
    - clh_command
    - std::time::Duration::from_secs
    - std::time::Duration::new
    - unwrap
    - Vec::insert
    - to_vec
    - spawn
    - ApiResult::kill
    - Self::args
    - Command::new
    - ApiResult::wait_with_output
    linkageType: ''
    returnType: bool
    signature: 'pub fn start_live_migration(migration_socket: &str,src_api_socket:
      &str,dest_api_socket: &str,local: bool,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Child::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10127,1
    - Dst: Child::wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10128,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10128,1
    - Dst: Child::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10137,1
    - Dst: Child::wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10138,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10138,1
    - Dst: Option<Child>::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10150,1
    - Dst: Option<Child>::wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10151,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10151,1
    - Dst: cleanup_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 4
    argNames:
    - src_vm
    - dest_vm
    - ovs_vm
    - message
    argTypes:
    - Child
    - Child
    - Option<Child>
    - '&str'
    constantsTouched: []
    func_position:
      end: 10165
      start: 10118
    functionDepth: 10
    functionLinenumber: 10118
    functionLinenumberEnd: 10165
    functionName: live_migration::print_and_panic
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 1
    functionsReached:
    - cleanup_ovs_dpdk
    - Option<Child>::wait_with_output
    - unwrap
    - Child::wait_with_output
    - Option<Child>::kill
    - Child::kill
    linkageType: ''
    returnType: '!'
    signature: 'pub fn print_and_panic(src_vm: Child,dest_vm: Child,ovs_vm: Option<Child>,message:
      &str,) -> !'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10176,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10176,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10177,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10177,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10178,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10179,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10195,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10195,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10196,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10196,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10196,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10197,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10197,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10198,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10197,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10197,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10201,1
    - Dst: cloud_hypervisor_release_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10205,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10207,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10209,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10210,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10214,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10217,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10217,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10220,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10211,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10224,1
    - Dst: Self::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10226,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10226,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10226,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10229,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10230,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10231,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10231,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10231,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10231,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10231,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10237,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10238,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10238,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10248,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10248,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10248,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10260,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10260,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10268,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10268,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10272,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10273,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10273,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10273,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10273,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10288,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10289,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10298,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10298,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10299,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10299,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10299,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10299,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10300,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10309,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10314,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10314,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10314,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10318,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10319,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10319,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10320,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10323,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 186
    argCount: 2
    argNames:
    - upgrade_test
    - local
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 10327
      start: 10175
    functionDepth: 15
    functionLinenumber: 10175
    functionLinenumberEnd: 10327
    functionName: live_migration::_test_live_migration
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - GuestCommand::new_with_binary_path
    - expect
    - TempFile::new
    - u64::is_err
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - to_str
    - String::from
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - std::process::Command::new
    - String::push_str
    - try_wait
    - print_and_panic
    - thread::sleep
    - output
    - Vec::args
    - as_file
    - clh_command
    - is_some_and
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Self::capture_output
    - Box::new
    - unwrap
    - set_len
    - wait_vm_boot
    - join
    - Self::arg
    - FdtWriterResult::success
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - cloud_hypervisor_release_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - check_devices_common
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - kill
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_live_migration(upgrade_test: bool, local: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10330,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10330,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10331,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10331,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10332,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10333,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10359,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10359,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10360,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10360,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10360,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10361,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10361,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10362,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10361,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10361,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10365,1
    - Dst: cloud_hypervisor_release_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10369,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10371,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10373,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10374,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10378,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10381,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10381,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10384,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10375,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10388,1
    - Dst: Self::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10390,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10390,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10390,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10393,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10394,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10395,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10395,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10395,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10395,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10395,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10401,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10402,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10402,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10411,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10411,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10412,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10412,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10415,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10415,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10416,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10416,1
    - Dst: get_total_memory
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10417,1
    - Dst: Result::unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10417,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10422,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10422,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10422,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10434,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10434,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10442,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10442,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10446,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10447,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10447,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10447,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10447,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10462,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10463,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10472,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10472,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10473,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10473,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10473,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10473,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10474,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10483,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10488,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10488,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10488,1
    - Dst: get_total_memory
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10491,1
    - Dst: Result::unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10491,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10495,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10495,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10496,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10496,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10499,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10499,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10500,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10500,1
    - Dst: get_total_memory
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10501,1
    - Dst: Result::unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10501,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10507,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10508,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10508,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10509,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10512,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 237
    argCount: 2
    argNames:
    - upgrade_test
    - local
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 10516
      start: 10329
    functionDepth: 15
    functionLinenumber: 10329
    functionLinenumberEnd: 10516
    functionName: live_migration::_test_live_migration_balloon
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - GuestCommand::new_with_binary_path
    - expect
    - TempFile::new
    - get_total_memory
    - Result::unwrap_or_default
    - u64::is_err
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - to_str
    - String::from
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - std::process::Command::new
    - String::push_str
    - try_wait
    - print_and_panic
    - thread::sleep
    - output
    - Vec::args
    - as_file
    - clh_command
    - is_some_and
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Self::capture_output
    - Box::new
    - unwrap
    - set_len
    - wait_vm_boot
    - join
    - Self::arg
    - FdtWriterResult::success
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - cloud_hypervisor_release_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - check_devices_common
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - kill
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_live_migration_balloon(upgrade_test: bool, local: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10519,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10519,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10520,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10520,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10521,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10522,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10560,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10560,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10561,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10561,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10561,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10562,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10562,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10563,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10562,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10562,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10566,1
    - Dst: cloud_hypervisor_release_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10570,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10572,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10574,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10575,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10579,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10582,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10582,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10585,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10576,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10589,1
    - Dst: Self::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10591,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10591,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10591,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10594,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10595,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10596,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10596,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10596,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10596,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10596,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10602,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10603,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10603,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10613,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10613,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10613,1
    - Dst: check_numa_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10619,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10620,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10621,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10622,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10629,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10633,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10634,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10635,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10636,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10636,1
    - Dst: check_numa_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10638,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10638,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10652,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10652,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10660,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10660,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10664,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10665,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10665,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10665,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10665,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10680,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10681,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10690,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10690,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10691,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10691,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10691,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10691,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10692,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10701,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10709,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10709,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10709,1
    - Dst: check_numa_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10715,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10716,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10717,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10718,1
    - Dst: check_numa_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10726,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10727,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10728,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10729,1
    - Dst: enable_memory_hotplug
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10732,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10736,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10737,1
    - Dst: resize_zone_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10738,1
    - Dst: resize_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10741,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10741,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10742,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10742,1
    - Dst: check_numa_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10744,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10745,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10746,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10754,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10755,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10755,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10756,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10759,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 301
    argCount: 2
    argNames:
    - upgrade_test
    - local
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 10763
      start: 10518
    functionDepth: 15
    functionLinenumber: 10518
    functionLinenumberEnd: 10763
    functionName: live_migration::_test_live_migration_numa
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - GuestCommand::new_with_binary_path
    - expect
    - TempFile::new
    - u64::is_err
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - to_str
    - enable_memory_hotplug
    - String::from
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - std::process::Command::new
    - String::push_str
    - try_wait
    - print_and_panic
    - thread::sleep
    - output
    - Vec::args
    - as_file
    - clh_command
    - is_some_and
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - resize_command
    - Self::capture_output
    - Box::new
    - unwrap
    - set_len
    - wait_vm_boot
    - join
    - Self::arg
    - check_numa_common
    - resize_zone_command
    - FdtWriterResult::success
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - cloud_hypervisor_release_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - check_devices_common
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - kill
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_live_migration_numa(upgrade_test: bool, local: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10766,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10766,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10767,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10767,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10768,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10769,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10785,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10785,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10786,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10786,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10786,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10787,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10787,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10788,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10787,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10787,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10791,1
    - Dst: cloud_hypervisor_release_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10795,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10797,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10799,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10800,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10804,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10807,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10807,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10810,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10814,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10801,1
    - Dst: Self::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10817,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10817,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10817,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10820,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10821,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10822,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10822,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10822,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10822,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10822,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10828,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10829,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10829,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10837,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10837,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10837,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10848,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10848,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10856,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10856,1
    - Dst: enable_guest_watchdog
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10862,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10875,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10875,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10880,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10881,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10881,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10881,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10881,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10896,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10897,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10906,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10906,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10907,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10907,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10907,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10907,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10908,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10917,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10922,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10922,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10922,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10928,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10928,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10933,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10933,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10935,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10935,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10935,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10944,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10944,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10953,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10954,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10954,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10955,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10958,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10961,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 222
    argCount: 2
    argNames:
    - upgrade_test
    - local
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 10962
      start: 10765
    functionDepth: 15
    functionLinenumber: 10765
    functionLinenumberEnd: 10962
    functionName: live_migration::_test_live_migration_watchdog
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - GuestCommand::new_with_binary_path
    - expect
    - TempFile::new
    - u64::is_err
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - to_str
    - String::from
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - ssh_command
    - std::process::Command::new
    - String::push_str
    - handle_child_output
    - try_wait
    - print_and_panic
    - thread::sleep
    - output
    - Vec::args
    - as_file
    - clh_command
    - enable_guest_watchdog
    - is_some_and
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Self::capture_output
    - Box::new
    - unwrap
    - set_len
    - wait_vm_boot
    - join
    - Self::arg
    - FdtWriterResult::success
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - cloud_hypervisor_release_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - check_devices_common
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - kill
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_live_migration_watchdog(upgrade_test: bool, local: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10965,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10965,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10966,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10966,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10968,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10968,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10969,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10969,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10970,1
    - Dst: setup_ovs_dpdk_guests
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10974,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10977,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10978,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10979,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10979,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10979,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10979,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10979,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10985,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10987,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10987,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10990,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10991,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10991,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10991,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:10991,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11006,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11007,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11010,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11016,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11016,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11017,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11017,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11017,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11017,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11018,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11021,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11027,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11030,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11031,1
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11032,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11032,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11042,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11042,1
    - Dst: Self::ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11045,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11045,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11051,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11052,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11053,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11053,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11054,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11054,1
    - Dst: cleanup_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11056,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11058,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11059,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 120
    argCount: 2
    argNames:
    - upgrade_test
    - local
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 11060
      start: 10964
    functionDepth: 15
    functionLinenumber: 10964
    functionLinenumberEnd: 11060
    functionName: live_migration::_test_live_migration_ovs_dpdk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - u64::is_err
    - setup_ovs_dpdk_guests
    - cleanup_ovs_dpdk
    - ssh_command_ip
    - temp_api_path
    - to_string
    - to_str
    - Result::unwrap
    - String::from
    - Ok
    - UbuntuDiskConfig::new
    - handle_child_output
    - String::push_str
    - Self::ssh_command
    - try_wait
    - print_and_panic
    - thread::sleep
    - thread::spawn
    - is_some_and
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - join
    - clone
    - FdtWriterResult::success
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - std::panic::catch_unwind
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn _test_live_migration_ovs_dpdk(upgrade_test: bool, local: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11073,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11073,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11074,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11074,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11075,1
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11085,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11085,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11086,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11087,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11089,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11093,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11096,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11096,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11101,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11104,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11090,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11111,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11112,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11113,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11113,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11113,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11113,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11113,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11119,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11120,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11120,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11137,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11138,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11138,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11138,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11138,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11153,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11154,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11163,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11163,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11164,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11164,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11164,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11164,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11165,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11174,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11188,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11189,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11189,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 139
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11191
      start: 11072
    functionDepth: 15
    functionLinenumber: 11072
    functionLinenumberEnd: 11191
    functionName: live_migration::_test_live_migration_with_landlock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - u64::is_err
    - '&mut Self::args'
    - push
    - temp_api_path
    - to_string
    - Result::unwrap
    - to_str
    - PathBuf::to_str
    - String::from
    - UbuntuDiskConfig::new
    - handle_child_output
    - String::push_str
    - dirs::home_dir
    - try_wait
    - print_and_panic
    - thread::sleep
    - Vec::args
    - is_some_and
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - FdtWriterResult::success
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn _test_live_migration_with_landlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpListener::bind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11195,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11195,1
    - Dst: local_addr
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11195,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11195,1
    - Dst: port
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11200
      start: 11194
    functionDepth: 6
    functionLinenumber: 11194
    functionLinenumberEnd: 11200
    functionName: live_migration::get_available_port
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - local_addr
    - unwrap
    - TcpListener::bind
    - Result::expect
    - port
    linkageType: ''
    returnType: u16
    signature: fn get_available_port() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_available_port
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11204,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: Vec::stdin
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: Stdio::null
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11214,1
    - Dst: stderr
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11215,1
    - Dst: stdout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11216,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11208,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11221,1
    - Dst: Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11221,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: Vec::stdin
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: Stdio::null
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11230,1
    - Dst: stderr
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11231,1
    - Dst: stdout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11232,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11224,1
    - Dst: ApiResult::wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11237,1
    - Dst: Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11238,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11237,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11241,1
    - Dst: ApiResult::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11247,1
    - Dst: ApiResult::wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11248,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11248,1
    - Dst: ApiResult::wait_timeout
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11257,1
    - Dst: Duration::from_secs
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11258,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11257,1
    - Dst: success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11261,1
    - Dst: ApiResult::kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11267,1
    - Dst: ApiResult::wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11268,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 81
    argCount: 2
    argNames:
    - src_api_socket
    - dest_api_socket
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 11277
      start: 11202
    functionDepth: 16
    functionLinenumber: 11202
    functionLinenumberEnd: 11277
    functionName: live_migration::start_live_migration_tcp
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - ApiResult::wait_timeout
    - stdout
    - spawn
    - thread::sleep
    - Duration::from_secs
    - success
    - Stdio::piped
    - Vec::stdin
    - Self::args
    - Stdio::null
    - ApiResult::kill
    - Command::new
    - stderr
    - unwrap
    - ApiResult::wait_with_output
    - Result::unwrap
    - clh_command
    - get_available_port
    linkageType: ''
    returnType: bool
    signature: 'fn start_live_migration_tcp(src_api_socket: &str, dest_api_socket:
      &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11280,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11280,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11281,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11281,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11282,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11283,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11292,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11292,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11293,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11293,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11293,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11294,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11294,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11295,1
    - Dst: output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11294,1
    - Dst: expect
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11294,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11298,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11301,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11302,1
    - Dst: GuestCommand::new_with_binary_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11303,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11307,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11310,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11310,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11313,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11317,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11304,1
    - Dst: Self::spawn
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11324,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11324,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11327,1
    - Dst: String::push_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11328,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11329,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11329,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11329,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11329,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11329,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11335,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11336,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11336,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11340,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11340,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11340,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11350,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11350,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11357,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11357,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11367,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11368,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11377,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11377,1
    - Dst: try_wait
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11378,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11378,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11378,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11378,1
    - Dst: print_and_panic
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11379,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11388,1
    - Dst: check_devices_common
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11392,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11392,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11392,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11396,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11397,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11397,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11398,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11401,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11405
      start: 11279
    functionDepth: 15
    functionLinenumber: 11279
    functionLinenumberEnd: 11405
    functionName: live_migration::_test_live_migration_tcp
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - GuestCommand::new_with_binary_path
    - expect
    - TempFile::new
    - u64::is_err
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - Result::unwrap
    - String::from
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - std::process::Command::new
    - String::push_str
    - try_wait
    - print_and_panic
    - thread::sleep
    - Duration::new
    - output
    - Vec::args
    - as_file
    - clh_command
    - is_some_and
    - wait_with_output
    - as_str
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - set_len
    - wait_vm_boot
    - Self::arg
    - Self::spawn
    - FdtWriterResult::success
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - check_devices_common
    - kill
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn _test_live_migration_tcp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11412
      start: 11410
    functionDepth: 16
    functionLinenumber: 11410
    functionLinenumberEnd: 11412
    functionName: live_migration::test_live_migration_basic
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_basic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11417
      start: 11415
    functionDepth: 16
    functionLinenumber: 11415
    functionLinenumberEnd: 11417
    functionName: live_migration::test_live_migration_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_tcp
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11422
      start: 11420
    functionDepth: 16
    functionLinenumber: 11420
    functionLinenumberEnd: 11422
    functionName: live_migration::test_live_migration_tcp
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_tcp
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_tcp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_watchdog
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11427
      start: 11425
    functionDepth: 16
    functionLinenumber: 11425
    functionLinenumberEnd: 11427
    functionName: live_migration::test_live_migration_watchdog
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_watchdog
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_watchdog()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_watchdog
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11432
      start: 11430
    functionDepth: 16
    functionLinenumber: 11430
    functionLinenumberEnd: 11432
    functionName: live_migration::test_live_migration_watchdog_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_watchdog
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_watchdog_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11438
      start: 11436
    functionDepth: 16
    functionLinenumber: 11436
    functionLinenumberEnd: 11438
    functionName: live_migration::test_live_upgrade_basic
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_basic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11444
      start: 11442
    functionDepth: 16
    functionLinenumber: 11442
    functionLinenumberEnd: 11444
    functionName: live_migration::test_live_upgrade_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_watchdog
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11450
      start: 11448
    functionDepth: 16
    functionLinenumber: 11448
    functionLinenumberEnd: 11450
    functionName: live_migration::test_live_upgrade_watchdog
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_watchdog
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_watchdog()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_watchdog
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11456
      start: 11454
    functionDepth: 16
    functionLinenumber: 11454
    functionLinenumberEnd: 11456
    functionName: live_migration::test_live_upgrade_watchdog_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_watchdog
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_watchdog_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_with_landlock
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11461
      start: 11459
    functionDepth: 16
    functionLinenumber: 11459
    functionLinenumberEnd: 11461
    functionName: live_migration::test_live_migration_with_landlock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_with_landlock
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_with_landlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_balloon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11472
      start: 11470
    functionDepth: 16
    functionLinenumber: 11470
    functionLinenumberEnd: 11472
    functionName: live_migration::test_live_migration_balloon
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_balloon
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_balloon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_balloon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11477
      start: 11475
    functionDepth: 16
    functionLinenumber: 11475
    functionLinenumberEnd: 11477
    functionName: live_migration::test_live_migration_balloon_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_balloon
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_balloon_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_balloon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11483
      start: 11481
    functionDepth: 16
    functionLinenumber: 11481
    functionLinenumberEnd: 11483
    functionName: live_migration::test_live_upgrade_balloon
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_balloon
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_balloon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_balloon
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11489
      start: 11487
    functionDepth: 16
    functionLinenumber: 11487
    functionLinenumberEnd: 11489
    functionName: live_migration::test_live_upgrade_balloon_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_balloon
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_balloon_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_numa
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11495
      start: 11493
    functionDepth: 16
    functionLinenumber: 11493
    functionLinenumberEnd: 11495
    functionName: live_migration::test_live_migration_numa
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_numa
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_numa()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_numa
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11501
      start: 11499
    functionDepth: 16
    functionLinenumber: 11499
    functionLinenumberEnd: 11501
    functionName: live_migration::test_live_migration_numa_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_numa
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_numa_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_numa
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11507
      start: 11505
    functionDepth: 16
    functionLinenumber: 11505
    functionLinenumberEnd: 11507
    functionName: live_migration::test_live_upgrade_numa
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_numa
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_numa()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_numa
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11513
      start: 11511
    functionDepth: 16
    functionLinenumber: 11511
    functionLinenumberEnd: 11513
    functionName: live_migration::test_live_upgrade_numa_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_numa
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_numa_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11522
      start: 11520
    functionDepth: 16
    functionLinenumber: 11520
    functionLinenumberEnd: 11522
    functionName: live_migration::test_live_migration_ovs_dpdk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_ovs_dpdk
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_ovs_dpdk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11529
      start: 11527
    functionDepth: 16
    functionLinenumber: 11527
    functionLinenumberEnd: 11529
    functionName: live_migration::test_live_migration_ovs_dpdk_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_ovs_dpdk
    linkageType: ''
    returnType: void
    signature: fn test_live_migration_ovs_dpdk_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11537
      start: 11535
    functionDepth: 16
    functionLinenumber: 11535
    functionLinenumberEnd: 11537
    functionName: live_migration::test_live_upgrade_ovs_dpdk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_ovs_dpdk
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_ovs_dpdk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_live_migration_ovs_dpdk
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11545
      start: 11543
    functionDepth: 16
    functionLinenumber: 11543
    functionLinenumberEnd: 11545
    functionName: live_migration::test_live_upgrade_ovs_dpdk_local
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_live_migration_ovs_dpdk
    linkageType: ''
    returnType: void
    signature: fn test_live_upgrade_ovs_dpdk_local()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11555,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11555,1
    - Dst: drain
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11557,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11557,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11558,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: edk2_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11563,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11563,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11563,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11560,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11571,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11572,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11572,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11572,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11579,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11580,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11580,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11584
      start: 11554
    functionDepth: 15
    functionLinenumber: 11554
    functionLinenumberEnd: 11584
    functionName: aarch64_acpi::test_simple_launch_acpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - for_each
    - wait_with_output
    - drain
    - Guest::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - kill
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::capture_output
    - edk2_path
    - io::Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_simple_launch_acpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_guest_numa_nodes
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11589
      start: 11587
    functionDepth: 16
    functionLinenumber: 11587
    functionLinenumberEnd: 11589
    functionName: aarch64_acpi::test_guest_numa_nodes_acpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_guest_numa_nodes
    linkageType: ''
    returnType: void
    signature: fn test_guest_numa_nodes_acpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cpu_topology
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11594
      start: 11592
    functionDepth: 16
    functionLinenumber: 11592
    functionLinenumberEnd: 11594
    functionName: aarch64_acpi::test_cpu_topology_421_acpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_cpu_topology
    linkageType: ''
    returnType: void
    signature: fn test_cpu_topology_421_acpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cpu_topology
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11599
      start: 11597
    functionDepth: 16
    functionLinenumber: 11597
    functionLinenumberEnd: 11599
    functionName: aarch64_acpi::test_cpu_topology_142_acpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_cpu_topology
    linkageType: ''
    returnType: void
    signature: fn test_cpu_topology_142_acpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cpu_topology
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11604
      start: 11602
    functionDepth: 16
    functionLinenumber: 11602
    functionLinenumberEnd: 11604
    functionName: aarch64_acpi::test_cpu_topology_262_acpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - test_cpu_topology
    linkageType: ''
    returnType: void
    signature: fn test_cpu_topology_262_acpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_power_button
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11609
      start: 11607
    functionDepth: 16
    functionLinenumber: 11607
    functionLinenumberEnd: 11609
    functionName: aarch64_acpi::test_power_button_acpi
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_power_button
    linkageType: ''
    returnType: void
    signature: fn test_power_button_acpi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_virtio_iommu
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11612
    functionDepth: 16
    functionLinenumber: 11612
    functionLinenumberEnd: 11614
    functionName: aarch64_acpi::test_virtio_iommu
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_virtio_iommu
    linkageType: ''
    returnType: void
    signature: fn test_virtio_iommu()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - measured
    - limit
    - difference
    argTypes:
    - f64
    - f64
    - f64
    constantsTouched: []
    func_position:
      end: 11637
      start: 11622
    functionDepth: 0
    functionLinenumber: 11622
    functionLinenumberEnd: 11637
    functionName: rate_limiter::check_rate_limit
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn check_rate_limit(measured: f64, limit: f64, difference: f64) ->
      bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11640,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11640,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11641,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11641,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11663,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11663,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11663,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11666,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11660,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11671,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11672,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11672,1
    - Dst: measure_virtio_net_throughput
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11674,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11674,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11679,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11680,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11680,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 1
    argNames:
    - rx
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 11682
      start: 11639
    functionDepth: 15
    functionLinenumber: 11639
    functionLinenumberEnd: 11682
    functionName: rate_limiter::_test_rate_limiter_net
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - measure_virtio_net_throughput
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - Guest::new
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_rate_limiter_net(rx: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_rate_limiter_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11687
      start: 11685
    functionDepth: 16
    functionLinenumber: 11685
    functionLinenumberEnd: 11687
    functionName: rate_limiter::test_rate_limiter_net_rx
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_rate_limiter_net
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_net_rx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_rate_limiter_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11692
      start: 11690
    functionDepth: 16
    functionLinenumber: 11690
    functionLinenumberEnd: 11692
    functionName: rate_limiter::test_rate_limiter_net_tx
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_rate_limiter_net
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_net_tx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11706,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11706,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11707,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11707,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11708,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11709,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11709,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11711,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11711,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11711,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11711,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11711,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11735,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11735,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11735,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11739,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11744,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11749,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11732,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11757,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11758,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11758,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11765,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11765,1
    - Dst: parse_fio_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11769,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11769,1
    - Dst: parse_fio_output_iops
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11771,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11771,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11776,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11777,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11777,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 102
    argCount: 2
    argNames:
    - bandwidth
    - num_queues
    argTypes:
    - bool
    - u32
    constantsTouched: []
    func_position:
      end: 11779
      start: 11694
    functionDepth: 15
    functionLinenumber: 11694
    functionLinenumberEnd: 11779
    functionName: rate_limiter::_test_rate_limiter_block
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - temp_api_path
    - to_string
    - to_str
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - TempDir::new_with_prefix
    - String::from
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - wait_with_output
    - as_str
    - parse_fio_output_iops
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - parse_fio_output
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - kill
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_rate_limiter_block(bandwidth: bool, num_queues: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11793,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11793,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11794,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11794,1
    - Dst: temp_api_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11795,1
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11796,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11796,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11817,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11818,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11818,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11818,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11818,1
    - Dst: push
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11833,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11841,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11841,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11841,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11838,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11851,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11852,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11852,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11873,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11873,1
    - Dst: parse_fio_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11877,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11877,1
    - Dst: parse_fio_output_iops
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11879,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11879,1
    - Dst: kill
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11884,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11885,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11885,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11886,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 112
    argCount: 3
    argNames:
    - bandwidth
    - num_queues
    - num_disks
    argTypes:
    - bool
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 11887
      start: 11781
    functionDepth: 15
    functionLinenumber: 11781
    functionLinenumberEnd: 11887
    functionName: rate_limiter::_test_rate_limiter_group_block
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - push
    - temp_api_path
    - to_string
    - to_str
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - TempDir::new_with_prefix
    - String::from
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - Vec::args
    - wait_with_output
    - parse_fio_output_iops
    - Guest::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - parse_fio_output
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - kill
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn _test_rate_limiter_group_block(bandwidth: bool, num_queues: u32,
      num_disks: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_rate_limiter_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11891,1
    - Dst: _test_rate_limiter_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11893
      start: 11890
    functionDepth: 16
    functionLinenumber: 11890
    functionLinenumberEnd: 11893
    functionName: rate_limiter::test_rate_limiter_block_bandwidth
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_rate_limiter_block
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_block_bandwidth()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11897,1
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11898,1
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11899,1
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 16
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: rate_limiter::test_rate_limiter_group_block_bandwidth
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_rate_limiter_group_block
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_block_bandwidth()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_rate_limiter_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11905,1
    - Dst: _test_rate_limiter_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11907
      start: 11904
    functionDepth: 16
    functionLinenumber: 11904
    functionLinenumberEnd: 11907
    functionName: rate_limiter::test_rate_limiter_block_iops
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_rate_limiter_block
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_block_iops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11911,1
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11912,1
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11913,1
    - Dst: _test_rate_limiter_group_block
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11915
      start: 11910
    functionDepth: 16
    functionLinenumber: 11910
    functionLinenumberEnd: 11915
    functionName: rate_limiter::test_rate_limiter_group_block_iops
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - _test_rate_limiter_group_block
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_block_iops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11925,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11925,1
    - Dst: Guest::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11926,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11926,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11927,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11929,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11932,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11932,1
    - Dst: std::fs::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11933,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11933,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11937,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11937,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: '&mut Self::default_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11935,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11950,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11950,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11952,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11953,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11953,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11955,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11955,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11956,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11956,1
    - Dst: kill_child
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11964,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11965,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11965,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs:11967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11968
      start: 11924
    functionDepth: 15
    functionLinenumber: 11924
    functionLinenumberEnd: 11968
    functionName: fw_cfg::test_fw_cfg
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::default_net'
    - '&mut Self::args'
    - std::fs::write
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - kill_child
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - thread::sleep
    - Vec::args
    - wait_with_output
    - Guest::new
    - std::time::Duration::new
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - IoResult::unwrap
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_fw_cfg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_base_iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/test_util.rs:14,1
    - Dst: zip
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/test_util.rs:14,1
    - Dst: get_base_iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/test_util.rs:14,1
    - Dst: skip
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/test_util.rs:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - get_base_iter
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: assert_args_sorted
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/test_util.rs
    functionUses: 3
    functionsReached:
    - get_base_iter
    - zip
    - skip
    linkageType: ''
    returnType: void
    signature: 'pub fn assert_args_sorted<''a, F: Fn() -> R, R: Iterator<Item = &''a
      Arg>>(get_base_iter: F)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''a (dyn Error + ''static)::source'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs:26,1
    - Dst: Result::is_none
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs:26,1
    - Dst: std::iter::successors
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs:31,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs:31,1
    - Dst: source
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs:34,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs:31,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - top_error
    - component
    - display_modifier
    argTypes:
    - '&''a (dyn Error + ''static)'
    - '&str'
    - "impl Fn(\n        /* level */ usize,\n        /*indention */ usize,\n     \
      \   &'a (dyn Error + 'static),\n    ) -> Option<String>"
    constantsTouched: []
    func_position:
      end: 46
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 46
    functionName: cli_print_error_chain
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs
    functionUses: 0
    functionsReached:
    - for_each
    - std::iter::successors
    - Some
    - enumerate
    - source
    - Result::is_none
    - '&''a (dyn Error + ''static)::source'
    linkageType: ''
    returnType: void
    signature: 'pub fn cli_print_error_chain<''a>(top_error: &''a (dyn Error + ''static),component:
      &str,// Function optionally returning the display representation of an error.display_modifier:
      impl Fn(/* level */ usize,/*indention */ usize,&''a (dyn Error + ''static),)
      -> Option<String>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _metadata
    argTypes:
    - '&log::Metadata'
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Logger::enabled
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn enabled(&self, _metadata: &log::Metadata) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Logger::enabled
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:130,1
    - Dst: '&log::Record::metadata'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:130,1
    - Dst: std::time::Instant::now
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:134,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:135,1
    - Dst: as_secs_f32
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:136,1
    - Dst: '&log::Record::file'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:138,1
    - Dst: '&log::Record::line'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:138,1
    - Dst: '&log::Record::target'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:141,1
    - Dst: vm::Result::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:141,1
    - Dst: lock
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:144,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:144,1
    - Dst: ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - record
    argTypes:
    - '&log::Record'
    constantsTouched: []
    func_position:
      end: 156
      start: 129
    functionDepth: 13
    functionLinenumber: 129
    functionLinenumberEnd: 156
    functionName: Logger::log
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - Logger::enabled
    - as_secs_f32
    - '&log::Record::metadata'
    - '&log::Record::target'
    - std::time::Instant::now
    - lock
    - ok
    - vm::Result::to_string
    - unwrap
    - duration_since
    - '&log::Record::file'
    - '&log::Record::line'
    linkageType: ''
    returnType: void
    signature: 'fn log(&self, record: &log::Record)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Logger::flush
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn flush(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: default_vcpus
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:161,1
    - Dst: default_memory
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:161,1
    - Dst: default_rng
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: prepare_default_values
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 2
    functionsReached:
    - default_vcpus
    - default_memory
    - default_rng
    linkageType: ''
    returnType: (String, String, String)
    signature: fn prepare_default_values() -> (String, String, String)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: default_vcpus
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: fn default_vcpus() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: default_memory
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: fn default_memory() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: default_rng
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: fn default_rng() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:188,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:188,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:188,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:188,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:188,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:193,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:193,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:193,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:193,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:193,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:198,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:198,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:198,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:198,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:198,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:202,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:202,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:202,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:202,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:202,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:209,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:209,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:209,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:209,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:209,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:222,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:222,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:222,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:222,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:222,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:228,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:228,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:228,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:228,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:228,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:234,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:234,1
    - Dst: u8::action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:234,1
    - Dst: help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:234,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:234,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:234,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:241,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:241,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:241,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:241,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:241,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:246,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:246,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:246,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:246,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:246,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:251,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:251,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:251,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:251,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:251,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:256,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:256,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:256,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:256,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:256,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:261,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:261,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:261,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:261,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:261,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:266,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:266,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:266,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:266,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:266,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:272,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:272,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:272,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:272,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:272,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:278,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:278,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:278,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:278,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:278,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:284,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:284,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:284,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:284,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:284,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:290,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:290,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:290,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:290,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:290,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:295,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:295,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:295,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:295,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:295,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:301,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:301,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:301,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:301,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:301,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:306,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:306,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:306,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:306,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:306,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:314,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:314,1
    - Dst: u8::num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:314,1
    - Dst: help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:314,1
    - Dst: action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:314,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:314,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:314,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:323,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:323,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:323,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:323,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:323,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:328,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:328,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:328,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:328,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:328,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:333,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:333,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:333,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:333,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:333,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:346,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:346,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:346,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:346,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:346,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:360,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:360,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:360,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:360,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:360,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:365,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:365,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:365,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:365,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:365,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:370,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:370,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:370,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:370,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:370,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:375,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:375,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:375,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:375,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:375,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:382,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:382,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:382,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:382,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:382,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:388,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:388,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:388,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:388,1
    - Dst: action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:388,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:388,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:394,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:394,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:394,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:394,1
    - Dst: action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:394,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:394,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:400,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:400,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:400,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:400,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:400,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:405,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:405,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:405,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:405,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:405,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:410,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:410,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:410,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:410,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:410,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:417,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:417,1
    - Dst: u8::num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:417,1
    - Dst: value_parser
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:417,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:417,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:422,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:422,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:422,1
    - Dst: default_value
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:422,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:422,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:427,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:427,1
    - Dst: u8::num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:427,1
    - Dst: help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:427,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:427,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:432,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:432,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:432,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:432,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:432,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:437,1
    - Dst: Result::short
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:437,1
    - Dst: action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:437,1
    - Dst: help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:437,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:437,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:442,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:442,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:442,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:442,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:442,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:447,1
    - Dst: Result::short
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:447,1
    - Dst: long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:447,1
    - Dst: action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:447,1
    - Dst: help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:447,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:447,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:453,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:453,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:453,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:453,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:453,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:458,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:458,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:458,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:458,1
    - Dst: action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:458,1
    - Dst: group
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:458,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:187,1
    - Dst: into_boxed_slice
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 437
    argCount: 3
    argNames:
    - default_vcpus
    - default_memory
    - default_rng
    argTypes:
    - String
    - String
    - String
    constantsTouched: []
    func_position:
      end: 465
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 465
    functionName: get_cli_options_sorted
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 2
    functionsReached:
    - u8::action
    - long
    - num_args
    - action
    - Result::short
    - Result::long
    - value_parser
    - to_vec
    - u8::help
    - group
    - into_boxed_slice
    - help
    - default_value
    - Arg::new
    - u8::num_args
    linkageType: ''
    returnType: Box
    signature: 'fn get_cli_options_sorted(default_vcpus: String,default_memory: String,default_rng:
      String,) -> Box<[Arg]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ArgGroup::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:470,1
    - Dst: Result::multiple
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:470,1
    - Dst: bool::requires
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:470,1
    - Dst: ArgGroup::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:473,1
    - Dst: Result::multiple
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:473,1
    - Dst: ArgGroup::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:474,1
    - Dst: Result::multiple
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:474,1
    - Dst: ArgGroup::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:475,1
    - Dst: Result::multiple
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:475,1
    - Dst: get_cli_options_sorted
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:478,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:480,1
    - Dst: Self::author
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:480,1
    - Dst: about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:480,1
    - Dst: arg_required_else_help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:480,1
    - Dst: groups
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:480,1
    - Dst: args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - default_vcpus
    - default_memory
    - default_rng
    argTypes:
    - String
    - String
    - String
    constantsTouched: []
    func_position:
      end: 488
      start: 468
    functionDepth: 9
    functionLinenumber: 468
    functionLinenumberEnd: 488
    functionName: create_app
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 1
    functionsReached:
    - Result::multiple
    - args
    - bool::requires
    - ArgGroup::new
    - get_cli_options_sorted
    - Self::author
    - Command::new
    - arg_required_else_help
    - about
    - groups
    linkageType: ''
    returnType: Command
    signature: 'fn create_app(default_vcpus: String, default_memory: String, default_rng:
      String) -> Command'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&ArgMatches::get_count'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:491,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:499,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:501,1
    - Dst: std::fs::File::create
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:501,1
    - Dst: std::path::Path::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:501,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:501,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:503,1
    - Dst: std::io::stderr
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:503,1
    - Dst: log::set_boxed_logger
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:506,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:506,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:507,1
    - Dst: std::time::Instant::now
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:508,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:506,1
    - Dst: log::set_max_level
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:510,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:506,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:514,1
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:515,1
    - Dst: add
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:516,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:516,1
    - Dst: parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:517,1
    - Dst: Result::unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:517,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:519,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:522,1
    - Dst: parse::<RawFd>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:522,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:522,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:524,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:525,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:528,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:528,1
    - Dst: FdtWriterResult::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:530,1
    - Dst: std::sync::mpsc::channel
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:538,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:539,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:539,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:541,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:542,1
    - Dst: signal_hook::low_level::register
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:560,1
    - Dst: signal_hook::low_level::emulate_default_handler
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:566,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:566,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:559,1
    - Dst: ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:559,1
    - Dst: libc::signal
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:575,1
    - Dst: vmm_sys_util::signal::block_signal
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:582,1
    - Dst: vmm_sys_util::signal::block_signal
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:588,1
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:593,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:593,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:596,1
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:597,1
    - Dst: add
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:598,1
    - Dst: parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:599,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:599,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:601,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:602,1
    - Dst: std::path::PathBuf::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:602,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:602,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:602,1
    - Dst: Err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:604,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:610,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:610,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:612,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:612,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:614,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:614,1
    - Dst: '&ArgMatches::get_flag'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:615,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:618,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:618,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:618,1
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:622,1
    - Dst: add
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:623,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:623,1
    - Dst: parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:624,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:624,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:628,1
    - Dst: convert
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:629,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:629,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:629,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:634,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:634,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:634,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:635,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:636,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:636,1
    - Dst: std::fs::OpenOptions::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:637,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:637,1
    - Dst: IoResult::create
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:637,1
    - Dst: truncate
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:637,1
    - Dst: open
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:637,1
    - Dst: get
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:641,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:641,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:637,1
    - Dst: Err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:645,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:618,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:618,1
    - Dst: event_monitor::set_monitor
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:650,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:650,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:618,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:656,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:657,1
    - Dst: take
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:662,1
    - Dst: event_monitor::set_monitor
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:664,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:664,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:667,1
    - Dst: String::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:668,1
    - Dst: '&ArgMatches::get_flag'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:669,1
    - Dst: io::Result::subscribe
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:670,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:673,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:674,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:674,1
    - Dst: Err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:676,1
    - Dst: Err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:677,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:678,1
    - Dst: vmm::start_event_monitor_thread
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:682,1
    - Dst: Result::hypervisor_type
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:686,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:687,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:687,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:682,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:692,1
    - Dst: vmm::start_vmm_thread
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:694,1
    - Dst: vmm::VmmVersionInfo::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:695,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:700,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:700,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:706,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:706,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:708,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:708,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:709,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:709,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:694,1
    - Dst: '&ArgMatches::contains_id'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:718,1
    - Dst: '&ArgMatches::contains_id'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:719,1
    - Dst: '&ArgMatches::contains_id'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:720,1
    - Dst: '&ArgMatches::contains_id'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:723,1
    - Dst: '&ArgMatches::contains_id'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:723,1
    - Dst: VmParams::from_arg_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:726,1
    - Dst: VmConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:727,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:727,1
    - Dst: clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:730,1
    - Dst: send
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:731,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:733,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:733,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:735,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:731,1
    - Dst: send
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:738,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:739,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:739,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:738,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:741,1
    - Dst: send
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:742,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:744,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:744,1
    - Dst: RestoreConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:746,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:746,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:742,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:751,1
    - Dst: u64::is_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:754,1
    - Dst: write
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:755,1
    - Dst: Landlock::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:761,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:761,1
    - Dst: restrict_self
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:761,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:761,1
    - Dst: join
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:767,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:767,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:767,1
    - Dst: vmm::api::http::http_api_graceful_shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:774,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:774,1
    - Dst: vmm::api::dbus::dbus_api_graceful_shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:779,1
    - Dst: u64::map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:782,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 406
    argCount: 1
    argNames:
    - cmd_arguments
    argTypes:
    - '&ArgMatches'
    constantsTouched: []
    func_position:
      end: 783
      start: 490
    functionDepth: 17
    functionLinenumber: 490
    functionLinenumberEnd: 783
    functionName: start_vmm
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - vmm::start_event_monitor_thread
    - map_err
    - Result::unwrap_or_default
    - as_ref
    - u64::is_err
    - File::from_raw_fd
    - std::io::stderr
    - EventFd::new
    - io::Result::map_err
    - String::to_string
    - take
    - event_monitor::set_monitor
    - Result::to_string
    - Result::hypervisor_type
    - write
    - get_one::<String>
    - Landlock::new
    - Ok
    - transpose
    - Result::write
    - signal_hook::low_level::register
    - event_monitor::event
    - log::set_boxed_logger
    - log::set_max_level
    - std::sync::mpsc::channel
    - libc::signal
    - hypervisor::new
    - convert
    - try_clone
    - '&ArgMatches::contains_id'
    - RestoreConfig::parse
    - u64::map
    - vmm::api::http::http_api_graceful_shutdown
    - get
    - '&ArgMatches::get_count'
    - signal_hook::low_level::emulate_default_handler
    - vm::Result::unwrap
    - std::fs::OpenOptions::new
    - vmm::VmmVersionInfo::new
    - std::path::Path::new
    - parse::<RawFd>
    - is_set
    - Err
    - Mutex::new
    - vmm::start_vmm_thread
    - Box::new
    - unwrap
    - '&mut Self::add'
    - join
    - vmm::api::dbus::dbus_api_graceful_shutdown
    - send
    - io::Result::subscribe
    - clone
    - vmm_sys_util::signal::block_signal
    - FdtWriterResult::to_string
    - map
    - IoResult::create
    - add
    - std::path::PathBuf::from
    - open
    - VmParams::from_arg_matches
    - truncate
    - parse
    - ok
    - std::time::Instant::now
    - Result::map_err
    - VmConfig::parse
    - restrict_self
    - OptionParser::new
    - std::fs::File::create
    - Some
    - '&ArgMatches::get_flag'
    linkageType: ''
    returnType: Result
    signature: 'fn start_vmm(cmd_arguments: &ArgMatches) -> Result<Option<String>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::getrlimit
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:816,1
    - Dst: Err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:817,1
    - Dst: FdTableError::GetRLimit
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:817,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:817,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:823,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:829,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:832,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:832,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:836,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:839,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:842,1
    - Dst: raw_os_error
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:843,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:843,1
    - Dst: Err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:844,1
    - Dst: FdTableError::GetFd
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:844,1
    - Dst: libc::dup2
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:847,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:847,1
    - Dst: Err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:848,1
    - Dst: FdTableError::Dup2
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:848,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:848,1
    - Dst: libc::close
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:851,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:853,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 809
    functionDepth: 7
    functionLinenumber: 809
    functionLinenumberEnd: 854
    functionName: expand_fdtable
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - libc::dup2
    - libc::close
    - std::cmp::min
    - raw_os_error
    - Some
    - EventFd::new
    - libc::getrlimit
    - Err
    - as_raw_fd
    - Result::map_err
    - FdTableError::GetFd
    - FdTableError::Dup2
    - FdTableError::GetRLimit
    - libc::fcntl
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn expand_fdtable() -> Result<(), FdTableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_default_values
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:922,1
    - Dst: create_app
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:924,1
    - Dst: Command::get_matches_from
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:924,1
    - Dst: VmParams::from_arg_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:925,1
    - Dst: VmConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:927,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - '&[&str]'
    constantsTouched: []
    func_position:
      end: 928
      start: 921
    functionDepth: 13
    functionLinenumber: 921
    functionLinenumberEnd: 928
    functionName: unit_tests::get_vm_config_from_vec
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - prepare_default_values
    - VmParams::from_arg_matches
    - create_app
    - VmConfig::parse
    - Command::get_matches_from
    - Result::unwrap
    linkageType: ''
    returnType: VmConfig
    signature: 'fn get_vm_config_from_vec(args: &[&str]) -> VmConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_vm_config_from_vec
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:935,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:936,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cli
    - openapi
    - equal
    argTypes:
    - '&[&str]'
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 945
      start: 930
    functionDepth: 14
    functionLinenumber: 930
    functionLinenumberEnd: 945
    functionName: unit_tests::compare_vm_config_cli_vs_json
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - get_vm_config_from_vec
    - std::result::Result::unwrap
    - serde_json::from_str
    linkageType: ''
    returnType: (VmConfig, VmConfig)
    signature: 'fn compare_vm_config_cli_vs_json(cli: &[&str],openapi: &str,equal:
      bool,) -> (VmConfig, VmConfig)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:953,1
    - Dst: CpuFeatures::default
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:964,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:980,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:981,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:981,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:996,1
    - Dst: DebugConsoleConfig::default
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 948
    functionDepth: 15
    functionLinenumber: 948
    functionLinenumberEnd: 1039
    functionName: unit_tests::test_valid_vm_config_default
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - compare_vm_config_cli_vs_json
    - PathBuf::from
    - CpuFeatures::default
    - Some
    - DebugConsoleConfig::default
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1043,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1043,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1042
    functionDepth: 15
    functionLinenumber: 1042
    functionLinenumberEnd: 1091
    functionName: unit_tests::test_valid_vm_config_cpus
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_cpus()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1095,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1095,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1094
    functionDepth: 15
    functionLinenumber: 1094
    functionLinenumberEnd: 1155
    functionName: unit_tests::test_valid_vm_config_memory
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_memory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1159,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1159,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 15
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: unit_tests::test_valid_vm_config_kernel
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_kernel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1174,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1174,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1173
    functionDepth: 15
    functionLinenumber: 1173
    functionLinenumberEnd: 1191
    functionName: unit_tests::test_valid_vm_config_cmdline
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_cmdline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1195,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1195,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1194
    functionDepth: 15
    functionLinenumber: 1194
    functionLinenumberEnd: 1297
    functionName: unit_tests::test_valid_vm_config_disks
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_disks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1301,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1301,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1300
    functionDepth: 15
    functionLinenumber: 1300
    functionLinenumberEnd: 1472
    functionName: unit_tests::test_valid_vm_config_net
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_net()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1476,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1476,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1475
    functionDepth: 15
    functionLinenumber: 1475
    functionLinenumberEnd: 1494
    functionName: unit_tests::test_valid_vm_config_rng
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_rng()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1498,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1498,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1497
    functionDepth: 15
    functionLinenumber: 1497
    functionLinenumberEnd: 1571
    functionName: unit_tests::test_valid_vm_config_fs
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_fs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1575,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1575,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1574
    functionDepth: 15
    functionLinenumber: 1574
    functionLinenumberEnd: 1634
    functionName: unit_tests::test_valid_vm_config_pmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_pmem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1639,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1639,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1638
    functionDepth: 15
    functionLinenumber: 1638
    functionLinenumberEnd: 1658
    functionName: unit_tests::test_valid_vm_config_debug_console
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_debug_console()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1662,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1662,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1661
    functionDepth: 15
    functionLinenumber: 1661
    functionLinenumberEnd: 1709
    functionName: unit_tests::test_valid_vm_config_serial_console
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_serial_console()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1713,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1713,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1712
    functionDepth: 15
    functionLinenumber: 1712
    functionLinenumberEnd: 1760
    functionName: unit_tests::test_valid_vm_config_serial_pty_console_pty
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_serial_pty_console_pty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1765,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1765,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1764
    functionDepth: 15
    functionLinenumber: 1764
    functionLinenumberEnd: 1855
    functionName: unit_tests::test_valid_vm_config_devices
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_devices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1859,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1859,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1858
    functionDepth: 15
    functionLinenumber: 1858
    functionLinenumberEnd: 1900
    functionName: unit_tests::test_valid_vm_config_vdpa
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_vdpa()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1904,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1904,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1903
    functionDepth: 15
    functionLinenumber: 1903
    functionLinenumberEnd: 1983
    functionName: unit_tests::test_valid_vm_config_vsock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_vsock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1987,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:1987,1
    - Dst: compare_vm_config_cli_vs_json
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1986
    functionDepth: 15
    functionLinenumber: 1986
    functionLinenumberEnd: 2005
    functionName: unit_tests::test_valid_vm_config_tpm_socket
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - compare_vm_config_cli_vs_json
    linkageType: ''
    returnType: void
    signature: fn test_valid_vm_config_tpm_socket()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_default_values
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:2012,1
    - Dst: get_cli_options_sorted
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:2013,1
    - Dst: assert_args_sorted
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:2015,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2011
    functionDepth: 9
    functionLinenumber: 2011
    functionLinenumberEnd: 2016
    functionName: unit_tests::test_cli_options_sorted
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
    functionUses: 0
    functionsReached:
    - prepare_default_values
    - get_cli_options_sorted
    - assert_args_sorted
    - Vec::iter
    linkageType: ''
    returnType: void
    signature: fn test_cli_options_sorted()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zbus::blocking::Connection::system
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:115,1
    - Dst: zbus::blocking::Connection::session
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:117,1
    - Dst: Self::builder
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:120,1
    - Dst: destination
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:120,1
    - Dst: path
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:120,1
    - Dst: build
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - name
    - path
    - system_bus
    argTypes:
    - '&''a str'
    - '&''a str'
    - bool
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: DBusApi1ProxyBlocking::new_connection
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - build
    - zbus::blocking::Connection::system
    - Self::builder
    - destination
    - path
    - zbus::blocking::Connection::session
    linkageType: ''
    returnType: Result
    signature: 'fn new_connection(name: &''a str, path: &''a str, system_bus: bool)
      -> Result<Self, zbus::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:127,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - result
    argTypes:
    - zbus::Result<Optional<String>>
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: DBusApi1ProxyBlocking::print_response
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 9
    functionsReached:
    - Result::map
    - Self::map_err
    linkageType: ''
    returnType: ApiResult
    signature: 'fn print_response(&self, result: zbus::Result<Optional<String>>) ->
      ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vmm_ping
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:137,1
    - Dst: ApiResult::map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:137,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: DBusApi1ProxyBlocking::api_vmm_ping
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vmm_ping
    - ApiResult::map
    - Self::map_err
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vmm_ping(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vmm_shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:143,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: DBusApi1ProxyBlocking::api_vmm_shutdown
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vmm_shutdown
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vmm_shutdown(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:147,1
    - Dst: DBusApi1ProxyBlocking::vm_add_device
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - device_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: DBusApi1ProxyBlocking::api_vm_add_device
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::print_response
    - DBusApi1ProxyBlocking::vm_add_device
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_device(&self, device_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:151,1
    - Dst: DBusApi1ProxyBlocking::vm_add_disk
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - disk_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: DBusApi1ProxyBlocking::api_vm_add_disk
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::print_response
    - DBusApi1ProxyBlocking::vm_add_disk
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_disk(&self, disk_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:155,1
    - Dst: DBusApi1ProxyBlocking::vm_add_fs
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fs_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: DBusApi1ProxyBlocking::api_vm_add_fs
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::print_response
    - DBusApi1ProxyBlocking::vm_add_fs
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_fs(&self, fs_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:159,1
    - Dst: DBusApi1ProxyBlocking::vm_add_net
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - net_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: DBusApi1ProxyBlocking::api_vm_add_net
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::print_response
    - DBusApi1ProxyBlocking::vm_add_net
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_net(&self, net_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:163,1
    - Dst: DBusApi1ProxyBlocking::vm_add_pmem
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pmem_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: DBusApi1ProxyBlocking::api_vm_add_pmem
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::print_response
    - DBusApi1ProxyBlocking::vm_add_pmem
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_pmem(&self, pmem_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:167,1
    - Dst: DBusApi1ProxyBlocking::vm_add_user_device
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vm_add_user_device
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: DBusApi1ProxyBlocking::api_vm_add_user_device
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_add_user_device
    - DBusApi1ProxyBlocking::print_response
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_user_device(&self, vm_add_user_device: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:171,1
    - Dst: DBusApi1ProxyBlocking::vm_add_vdpa
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vdpa_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: DBusApi1ProxyBlocking::api_vm_add_vdpa
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_add_vdpa
    - DBusApi1ProxyBlocking::print_response
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_vdpa(&self, vdpa_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:175,1
    - Dst: DBusApi1ProxyBlocking::vm_add_vsock
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vsock_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: DBusApi1ProxyBlocking::api_vm_add_vsock
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_add_vsock
    - DBusApi1ProxyBlocking::print_response
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_add_vsock(&self, vsock_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_boot
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:179,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: DBusApi1ProxyBlocking::api_vm_boot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_boot
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_boot(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_coredump
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:183,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vm_coredump_data
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: DBusApi1ProxyBlocking::api_vm_coredump
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_coredump
    - ApiResult::map_err
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_coredump(&self, vm_coredump_data: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::print_response
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:188,1
    - Dst: DBusApi1ProxyBlocking::vm_counters
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: DBusApi1ProxyBlocking::api_vm_counters
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_counters
    - DBusApi1ProxyBlocking::print_response
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_counters(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_create
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:192,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: DBusApi1ProxyBlocking::api_vm_create
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_create
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_create(&self, vm_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_delete
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:196,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: DBusApi1ProxyBlocking::api_vm_delete
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_delete
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_delete(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_info
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:200,1
    - Dst: ApiResult::map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:200,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: DBusApi1ProxyBlocking::api_vm_info
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map
    - Self::map_err
    - DBusApi1ProxyBlocking::vm_info
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_info(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_pause
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:206,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: DBusApi1ProxyBlocking::api_vm_pause
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_pause
    - ApiResult::map_err
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_pause(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_power_button
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:210,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: DBusApi1ProxyBlocking::api_vm_power_button
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_power_button
    - ApiResult::map_err
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_power_button(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_reboot
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:214,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: DBusApi1ProxyBlocking::api_vm_reboot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_reboot
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_reboot(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_remove_device
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:218,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vm_remove_device
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: DBusApi1ProxyBlocking::api_vm_remove_device
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_remove_device
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_remove_device(&self, vm_remove_device: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_resize
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:223,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vm_resize
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: DBusApi1ProxyBlocking::api_vm_resize
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_resize
    - ApiResult::map_err
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_resize(&self, vm_resize: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_resize_zone
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:227,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vm_resize_zone
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: DBusApi1ProxyBlocking::api_vm_resize_zone
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_resize_zone
    - ApiResult::map_err
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_resize_zone(&self, vm_resize_zone: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_restore
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:232,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - restore_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: DBusApi1ProxyBlocking::api_vm_restore
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_restore
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_restore(&self, restore_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_receive_migration
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:237,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - receive_migration_data
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: DBusApi1ProxyBlocking::api_vm_receive_migration
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - DBusApi1ProxyBlocking::vm_receive_migration
    - ApiResult::map_err
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_receive_migration(&self, receive_migration_data: &str) ->
      ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_send_migration
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:242,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - send_migration_data
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: DBusApi1ProxyBlocking::api_vm_send_migration
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_send_migration
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_send_migration(&self, send_migration_data: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_resume
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:247,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: DBusApi1ProxyBlocking::api_vm_resume
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_resume
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_resume(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_shutdown
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:251,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: DBusApi1ProxyBlocking::api_vm_shutdown
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_shutdown
    linkageType: ''
    returnType: ApiResult
    signature: fn api_vm_shutdown(&self) -> ApiResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi1ProxyBlocking::vm_snapshot
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:255,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vm_snapshot_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: DBusApi1ProxyBlocking::api_vm_snapshot
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - ApiResult::map_err
    - DBusApi1ProxyBlocking::vm_snapshot
    linkageType: ''
    returnType: ApiResult
    signature: 'fn api_vm_snapshot(&self, vm_snapshot_config: &str) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rest_api_do_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:263,1
    - Dst: dbus_api_do_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - matches
    argTypes:
    - '&ArgMatches'
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 17
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: TargetApi::do_command
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - dbus_api_do_command
    - rest_api_do_command
    linkageType: ''
    returnType: ApiResult
    signature: 'fn do_command(&mut self, matches: &ArgMatches) -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::subcommand_name
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:271,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:273,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:273,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:276,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:276,1
    - Dst: simple_api_full_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:278,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:278,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:281,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:281,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:284,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:284,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:287,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:287,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:290,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:290,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:293,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:293,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:296,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:296,1
    - Dst: simple_api_full_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:299,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:299,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:302,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:302,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:304,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:304,1
    - Dst: resize_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:306,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:307,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:307,1
    - Dst: "subcommand_matches(\"resize\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:307,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:307,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:312,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:312,1
    - Dst: "subcommand_matches(\"resize\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:312,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:312,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:317,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:317,1
    - Dst: "subcommand_matches(\"resize\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:317,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:317,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:323,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:323,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:323,1
    - Dst: resize_disk_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:326,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:327,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:327,1
    - Dst: "subcommand_matches(\"resize-disk\")\n                    .unwrap()\n \
        \                   .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:327,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:327,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:332,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:332,1
    - Dst: "subcommand_matches(\"resize-disk\")\n                    .unwrap()\n \
        \                   .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:332,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:332,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:338,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:338,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:338,1
    - Dst: resize_zone_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:342,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:343,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:343,1
    - Dst: "subcommand_matches(\"resize-zone\")\n                    .unwrap()\n \
        \                   .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:343,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:343,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:348,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:348,1
    - Dst: "subcommand_matches(\"resize-zone\")\n                    .unwrap()\n \
        \                   .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:348,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:348,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:354,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:354,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:354,1
    - Dst: add_device_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:358,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:359,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:359,1
    - Dst: "subcommand_matches(\"add-device\")\n                    .unwrap()\n  \
        \                  .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:359,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:359,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:365,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:365,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:365,1
    - Dst: remove_device_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:369,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:370,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:370,1
    - Dst: "subcommand_matches(\"remove-device\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:370,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:370,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:376,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:376,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:376,1
    - Dst: add_disk_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:380,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:381,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:381,1
    - Dst: "subcommand_matches(\"add-disk\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:381,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:381,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:387,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:387,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:387,1
    - Dst: add_fs_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:391,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:392,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:392,1
    - Dst: "subcommand_matches(\"add-fs\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:392,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:392,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:398,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:398,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:398,1
    - Dst: add_pmem_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:402,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:403,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:403,1
    - Dst: "subcommand_matches(\"add-pmem\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:403,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:403,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:409,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:409,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:409,1
    - Dst: add_net_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:413,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:414,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:414,1
    - Dst: "subcommand_matches(\"add-net\")\n                    .unwrap()\n     \
        \               .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:414,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:414,1
    - Dst: api_client::simple_api_command_with_fds
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:420,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:420,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:420,1
    - Dst: add_user_device_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:424,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:425,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:425,1
    - Dst: "subcommand_matches(\"add-user-device\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:425,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:425,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:431,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:431,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:431,1
    - Dst: add_vdpa_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:435,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:436,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:436,1
    - Dst: "subcommand_matches(\"add-vdpa\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:436,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:436,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:442,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:442,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:442,1
    - Dst: add_vsock_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:446,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:447,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:447,1
    - Dst: "subcommand_matches(\"add-vsock\")\n                    .unwrap()\n   \
        \                 .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:447,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:447,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:453,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:453,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:453,1
    - Dst: snapshot_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:457,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:458,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:458,1
    - Dst: "subcommand_matches(\"snapshot\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:458,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:458,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:464,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:464,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:464,1
    - Dst: restore_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:468,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:469,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:469,1
    - Dst: "subcommand_matches(\"restore\")\n                    .unwrap()\n     \
        \               .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:469,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:469,1
    - Dst: api_client::simple_api_command_with_fds
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:475,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:475,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:475,1
    - Dst: coredump_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:479,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:480,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:480,1
    - Dst: "subcommand_matches(\"coredump\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:480,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:480,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:486,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:486,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:486,1
    - Dst: send_migration_data
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:490,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:491,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:491,1
    - Dst: "subcommand_matches(\"send-migration\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:491,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:491,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:496,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:496,1
    - Dst: get_flag
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:496,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:501,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:501,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:501,1
    - Dst: receive_migration_data
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:505,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:506,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:506,1
    - Dst: "subcommand_matches(\"receive-migration\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:506,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:506,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:512,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:516,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:512,1
    - Dst: create_data
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:521,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:522,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:522,1
    - Dst: "subcommand_matches(\"create\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:522,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:522,1
    - Dst: api_client::simple_api_command
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:528,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:528,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:528,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 351
    argCount: 2
    argNames:
    - matches
    - socket
    argTypes:
    - '&ArgMatches'
    - '&mut UnixStream'
    constantsTouched: []
    func_position:
      end: 532
      start: 270
    functionDepth: 16
    functionLinenumber: 270
    functionLinenumberEnd: 532
    functionName: rest_api_do_command
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 1
    functionsReached:
    - send_migration_data
    - resize_config
    - "subcommand_matches(\"resize-disk\")\n                    .unwrap()\n      \
      \              .get_one::<String>"
    - "subcommand_matches(\"send-migration\")\n                    .unwrap()\n   \
      \                 .get_one::<String>"
    - "subcommand_matches(\"receive-migration\")\n                    .unwrap()\n\
      \                    .get_one::<String>"
    - "subcommand_matches(\"add-device\")\n                    .unwrap()\n       \
      \             .get_one::<String>"
    - add_disk_config
    - simple_api_full_command
    - "subcommand_matches(\"remove-device\")\n                    .unwrap()\n    \
      \                .get_one::<String>"
    - api_client::simple_api_command
    - "subcommand_matches(\"coredump\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - add_fs_config
    - "subcommand_matches(\"create\")\n                    .unwrap()\n           \
      \         .get_one::<String>"
    - receive_migration_data
    - "subcommand_matches(\"add-fs\")\n                    .unwrap()\n           \
      \         .get_one::<String>"
    - snapshot_config
    - Self::subcommand_name
    - Self::subcommand_matches
    - api_client::simple_api_command_with_fds
    - resize_disk_config
    - add_device_config
    - add_vdpa_config
    - "subcommand_matches(\"add-vsock\")\n                    .unwrap()\n        \
      \            .get_one::<String>"
    - add_user_device_config
    - "subcommand_matches(\"resize\")\n                    .unwrap()\n           \
      \         .get_one::<String>"
    - "subcommand_matches(\"add-vdpa\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - add_net_config
    - "subcommand_matches(\"add-user-device\")\n                    .unwrap()\n  \
      \                  .get_one::<String>"
    - restore_config
    - create_data
    - unwrap
    - "subcommand_matches(\"restore\")\n                    .unwrap()\n          \
      \          .get_one::<String>"
    - get_flag
    - "subcommand_matches(\"resize-zone\")\n                    .unwrap()\n      \
      \              .get_one::<String>"
    - resize_zone_config
    - map
    - "subcommand_matches(\"add-disk\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - "subcommand_matches(\"snapshot\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - "subcommand_matches(\"add-pmem\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - "subcommand_matches(\"add-net\")\n                    .unwrap()\n          \
      \          .get_one::<String>"
    - Result::map_err
    - coredump_config
    - add_pmem_config
    - add_vsock_config
    - remove_device_config
    - Some
    linkageType: ''
    returnType: ApiResult
    signature: 'fn rest_api_do_command(matches: &ArgMatches, socket: &mut UnixStream)
      -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::subcommand_name
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:536,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_boot'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:537,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_delete'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:538,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vmm_shutdown'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:539,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_resume'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:540,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_power_button'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:541,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_reboot'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:542,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_pause'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:543,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_info'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:544,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_counters'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:545,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vmm_ping'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:546,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_shutdown'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:547,1
    - Dst: resize_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:549,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:550,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:550,1
    - Dst: "subcommand_matches(\"resize\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:550,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:550,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:555,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:555,1
    - Dst: "subcommand_matches(\"resize\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:555,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:555,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:560,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:560,1
    - Dst: "subcommand_matches(\"resize\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:560,1
    - Dst: map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:560,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_resize'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:566,1
    - Dst: resize_zone_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:569,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:570,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:570,1
    - Dst: "subcommand_matches(\"resize-zone\")\n                    .unwrap()\n \
        \                   .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:570,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:570,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:575,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:575,1
    - Dst: "subcommand_matches(\"resize-zone\")\n                    .unwrap()\n \
        \                   .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:575,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:575,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_resize_zone'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:581,1
    - Dst: add_device_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:584,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:585,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:585,1
    - Dst: "subcommand_matches(\"add-device\")\n                    .unwrap()\n  \
        \                  .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:585,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:585,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_device'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:591,1
    - Dst: remove_device_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:594,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:595,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:595,1
    - Dst: "subcommand_matches(\"remove-device\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:595,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:595,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_remove_device'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:601,1
    - Dst: add_disk_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:604,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:605,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:605,1
    - Dst: "subcommand_matches(\"add-disk\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:605,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:605,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_disk'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:611,1
    - Dst: add_fs_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:614,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:615,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:615,1
    - Dst: "subcommand_matches(\"add-fs\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:615,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:615,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_fs'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:621,1
    - Dst: add_pmem_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:624,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:625,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:625,1
    - Dst: "subcommand_matches(\"add-pmem\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:625,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:625,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_pmem'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:631,1
    - Dst: add_net_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:634,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:635,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:635,1
    - Dst: "subcommand_matches(\"add-net\")\n                    .unwrap()\n     \
        \               .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:635,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:635,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_net'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:641,1
    - Dst: add_user_device_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:644,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:645,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:645,1
    - Dst: "subcommand_matches(\"add-user-device\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:645,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:645,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_user_device'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:651,1
    - Dst: add_vdpa_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:654,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:655,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:655,1
    - Dst: "subcommand_matches(\"add-vdpa\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:655,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:655,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_vdpa'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:661,1
    - Dst: add_vsock_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:664,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:665,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:665,1
    - Dst: "subcommand_matches(\"add-vsock\")\n                    .unwrap()\n   \
        \                 .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:665,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:665,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_add_vsock'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:671,1
    - Dst: snapshot_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:674,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:675,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:675,1
    - Dst: "subcommand_matches(\"snapshot\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:675,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:675,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_snapshot'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:681,1
    - Dst: restore_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:684,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:685,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:685,1
    - Dst: "subcommand_matches(\"restore\")\n                    .unwrap()\n     \
        \               .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:685,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:685,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_restore'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:691,1
    - Dst: coredump_config
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:694,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:695,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:695,1
    - Dst: "subcommand_matches(\"coredump\")\n                    .unwrap()\n    \
        \                .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:695,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:695,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_coredump'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:701,1
    - Dst: send_migration_data
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:704,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:705,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:705,1
    - Dst: "subcommand_matches(\"send-migration\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:705,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:705,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:710,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:710,1
    - Dst: get_flag
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:710,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_send_migration'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:715,1
    - Dst: receive_migration_data
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:718,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:719,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:719,1
    - Dst: "subcommand_matches(\"receive-migration\")\n                    .unwrap()\n\
        \                    .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:719,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:719,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_receive_migration'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:725,1
    - Dst: create_data
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:728,1
    - Dst: Self::subcommand_matches
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:729,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:729,1
    - Dst: "subcommand_matches(\"create\")\n                    .unwrap()\n      \
        \              .get_one::<String>"
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:729,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:729,1
    - Dst: '&DBusApi1ProxyBlocking<''_>::api_vm_create'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:735,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 278
    argCount: 2
    argNames:
    - matches
    - proxy
    argTypes:
    - '&ArgMatches'
    - '&DBusApi1ProxyBlocking<''_>'
    constantsTouched: []
    func_position:
      end: 739
      start: 535
    functionDepth: 12
    functionLinenumber: 535
    functionLinenumberEnd: 739
    functionName: dbus_api_do_command
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 1
    functionsReached:
    - send_migration_data
    - '&DBusApi1ProxyBlocking<''_>::api_vm_resume'
    - resize_config
    - "subcommand_matches(\"send-migration\")\n                    .unwrap()\n   \
      \                 .get_one::<String>"
    - "subcommand_matches(\"receive-migration\")\n                    .unwrap()\n\
      \                    .get_one::<String>"
    - "subcommand_matches(\"add-device\")\n                    .unwrap()\n       \
      \             .get_one::<String>"
    - add_disk_config
    - '&DBusApi1ProxyBlocking<''_>::api_vm_delete'
    - "subcommand_matches(\"remove-device\")\n                    .unwrap()\n    \
      \                .get_one::<String>"
    - '&DBusApi1ProxyBlocking<''_>::api_vm_receive_migration'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_counters'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_vsock'
    - "subcommand_matches(\"coredump\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - add_fs_config
    - "subcommand_matches(\"create\")\n                    .unwrap()\n           \
      \         .get_one::<String>"
    - '&DBusApi1ProxyBlocking<''_>::api_vm_power_button'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_resize_zone'
    - receive_migration_data
    - '&DBusApi1ProxyBlocking<''_>::api_vm_remove_device'
    - "subcommand_matches(\"add-fs\")\n                    .unwrap()\n           \
      \         .get_one::<String>"
    - snapshot_config
    - Self::subcommand_name
    - Self::subcommand_matches
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_pmem'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_device'
    - add_device_config
    - add_vdpa_config
    - "subcommand_matches(\"add-vsock\")\n                    .unwrap()\n        \
      \            .get_one::<String>"
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_disk'
    - add_user_device_config
    - "subcommand_matches(\"resize\")\n                    .unwrap()\n           \
      \         .get_one::<String>"
    - "subcommand_matches(\"add-vdpa\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - add_net_config
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_user_device'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_net'
    - "subcommand_matches(\"add-user-device\")\n                    .unwrap()\n  \
      \                  .get_one::<String>"
    - restore_config
    - create_data
    - unwrap
    - remove_device_config
    - "subcommand_matches(\"restore\")\n                    .unwrap()\n          \
      \          .get_one::<String>"
    - get_flag
    - '&DBusApi1ProxyBlocking<''_>::api_vm_send_migration'
    - "subcommand_matches(\"resize-zone\")\n                    .unwrap()\n      \
      \              .get_one::<String>"
    - '&DBusApi1ProxyBlocking<''_>::api_vm_resize'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_pause'
    - resize_zone_config
    - map
    - '&DBusApi1ProxyBlocking<''_>::api_vm_restore'
    - "subcommand_matches(\"add-disk\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - '&DBusApi1ProxyBlocking<''_>::api_vmm_ping'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_coredump'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_fs'
    - "subcommand_matches(\"snapshot\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - "subcommand_matches(\"add-pmem\")\n                    .unwrap()\n         \
      \           .get_one::<String>"
    - '&DBusApi1ProxyBlocking<''_>::api_vm_shutdown'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_reboot'
    - "subcommand_matches(\"add-net\")\n                    .unwrap()\n          \
      \          .get_one::<String>"
    - coredump_config
    - '&DBusApi1ProxyBlocking<''_>::api_vmm_shutdown'
    - add_pmem_config
    - '&DBusApi1ProxyBlocking<''_>::api_vm_create'
    - add_vsock_config
    - '&DBusApi1ProxyBlocking<''_>::api_vm_boot'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_info'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_snapshot'
    - '&DBusApi1ProxyBlocking<''_>::api_vm_add_vdpa'
    linkageType: ''
    returnType: ApiResult
    signature: 'fn dbus_api_do_command(matches: &ArgMatches, proxy: &DBusApi1ProxyBlocking<''_>)
      -> ApiResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:747,1
    - Dst: String::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:747,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:747,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:753,1
    - Dst: parse::<ByteSized>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:754,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:754,1
    - Dst: Some
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:764,1
    - Dst: parse::<ByteSized>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:765,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:765,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:780,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:780,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:780,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - cpus
    - memory
    - balloon
    argTypes:
    - Option<&str>
    - Option<&str>
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 781
      start: 741
    functionDepth: 11
    functionLinenumber: 741
    functionLinenumberEnd: 781
    functionName: resize_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - serde_json::to_string
    - map_err
    - String::parse
    - String::unwrap
    - Result::map_err
    - parse::<ByteSized>
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn resize_config(cpus: Option<&str>,memory: Option<&str>,balloon:
      Option<&str>,) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::to_owned
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:785,1
    - Dst: parse::<ByteSized>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:786,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:786,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:789,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:789,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - id
    - size
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: resize_disk_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 1
    functionsReached:
    - u32::to_owned
    - serde_json::to_string
    - map_err
    - String::unwrap
    - parse::<ByteSized>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn resize_disk_config(id: &str, size: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::to_owned
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:794,1
    - Dst: parse::<ByteSized>
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:795,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:795,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:801,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:801,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - id
    - size
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 802
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 802
    functionName: resize_zone_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - u32::to_owned
    - serde_json::to_string
    - map_err
    - String::unwrap
    - parse::<ByteSized>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn resize_zone_config(id: &str, size: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:805,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:805,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:806,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:806,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 809
      start: 804
    functionDepth: 12
    functionLinenumber: 804
    functionLinenumberEnd: 809
    functionName: add_device_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - serde_json::to_string
    - String::unwrap
    - Result::map_err
    - DeviceConfig::parse
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_device_config(config: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UserDeviceConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:812,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:812,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:813,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:813,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 816
      start: 811
    functionDepth: 12
    functionLinenumber: 811
    functionLinenumberEnd: 816
    functionName: add_user_device_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - serde_json::to_string
    - String::unwrap
    - Result::map_err
    - UserDeviceConfig::parse
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_user_device_config(config: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::to_owned
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:819,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:821,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 822
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 822
    functionName: remove_device_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - String::unwrap
    - u32::to_owned
    - serde_json::to_string
    linkageType: ''
    returnType: String
    signature: 'fn remove_device_config(id: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:825,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:825,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:826,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:826,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 829
      start: 824
    functionDepth: 12
    functionLinenumber: 824
    functionLinenumberEnd: 829
    functionName: add_disk_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - serde_json::to_string
    - String::unwrap
    - Result::map_err
    - DiskConfig::parse
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_disk_config(config: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FsConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:832,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:832,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:833,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:833,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 836
      start: 831
    functionDepth: 12
    functionLinenumber: 831
    functionLinenumberEnd: 836
    functionName: add_fs_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - serde_json::to_string
    - FsConfig::parse
    - String::unwrap
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_fs_config(config: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PmemConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:839,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:839,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:840,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:840,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 843
      start: 838
    functionDepth: 12
    functionLinenumber: 838
    functionLinenumberEnd: 843
    functionName: add_pmem_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - PmemConfig::parse
    - serde_json::to_string
    - String::unwrap
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_pmem_config(config: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:846,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:846,1
    - Dst: take
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:852,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:852,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:853,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:853,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 856
      start: 845
    functionDepth: 12
    functionLinenumber: 845
    functionLinenumberEnd: 856
    functionName: add_net_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - NetConfig::parse
    - serde_json::to_string
    - unwrap_or_default
    - take
    - String::unwrap
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_net_config(config: &str) -> Result<(String, Vec<i32>), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VdpaConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:859,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:859,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:860,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:860,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 863
      start: 858
    functionDepth: 12
    functionLinenumber: 858
    functionLinenumberEnd: 863
    functionName: add_vdpa_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - serde_json::to_string
    - String::unwrap
    - Result::map_err
    - VdpaConfig::parse
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_vdpa_config(config: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:866,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:866,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:867,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:867,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 870
      start: 865
    functionDepth: 12
    functionLinenumber: 865
    functionLinenumberEnd: 870
    functionName: add_vsock_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - VsockConfig::parse
    - serde_json::to_string
    - String::unwrap
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_vsock_config(config: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:874,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:877,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 878
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 878
    functionName: snapshot_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - String::unwrap
    - serde_json::to_string
    - String::from
    linkageType: ''
    returnType: String
    signature: 'fn snapshot_config(url: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RestoreConfig::parse
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:881,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:881,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:885,1
    - Dst: flat_map
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:885,1
    - Dst: take
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:887,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:887,1
    - Dst: collect
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:885,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:889,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:891,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:891,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 894
      start: 880
    functionDepth: 12
    functionLinenumber: 880
    functionLinenumberEnd: 894
    functionName: restore_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - unwrap_or_default
    - serde_json::to_string
    - collect
    - Vec::new
    - flat_map
    - RestoreConfig::parse
    - take
    - String::unwrap
    - Result::map_err
    - Ok
    - iter_mut
    linkageType: ''
    returnType: Result
    signature: 'fn restore_config(config: &str) -> Result<(String, Vec<i32>), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:898,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:901,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - destination_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 902
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 902
    functionName: coredump_config
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - String::unwrap
    - serde_json::to_string
    - String::from
    linkageType: ''
    returnType: String
    signature: 'fn coredump_config(destination_url: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:906,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:909,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 910
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 910
    functionName: receive_migration_data
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - String::unwrap
    - '&str::to_owned'
    - serde_json::to_string
    linkageType: ''
    returnType: String
    signature: 'fn receive_migration_data(url: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:914,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:918,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - url
    - local
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 919
    functionName: send_migration_data
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - String::unwrap
    - '&str::to_owned'
    - serde_json::to_string
    linkageType: ''
    returnType: String
    signature: 'fn send_migration_data(url: &str, local: bool) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::default
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:922,1
    - Dst: std::io::stdin
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:924,1
    - Dst: read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:924,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:924,1
    - Dst: std::fs::read_to_string
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:928,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:928,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 932
      start: 921
    functionDepth: 6
    functionLinenumber: 921
    functionLinenumberEnd: 932
    functionName: create_data
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 2
    functionsReached:
    - map_err
    - std::io::stdin
    - Ok
    - std::fs::read_to_string
    - String::default
    - read_to_string
    linkageType: ''
    returnType: Result
    signature: 'fn create_data(path: &str) -> Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:939,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:939,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:939,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:939,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:944,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:944,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:944,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:944,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:949,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:949,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:949,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:949,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:954,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:954,1
    - Dst: u8::action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:954,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:954,1
    - Dst: help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:954,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:938,1
    - Dst: into_boxed_slice
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 962
      start: 937
    functionDepth: 9
    functionLinenumber: 937
    functionLinenumberEnd: 962
    functionName: get_cli_args
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 1
    functionsReached:
    - u8::action
    - num_args
    - Result::long
    - u8::help
    - into_boxed_slice
    - help
    - Arg::new
    - to_vec
    linkageType: ''
    returnType: Box
    signature: fn get_cli_args() -> Box<[Arg]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:969,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:969,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:969,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:970,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:970,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:970,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:974,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:974,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:974,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:976,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:976,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:976,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:977,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:977,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:977,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:980,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:980,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:980,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:984,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:984,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:984,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:986,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:986,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:986,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:987,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:987,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:987,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:990,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:990,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:990,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:994,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:994,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:994,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:997,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:997,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:997,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1001,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1001,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1001,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1003,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1003,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1003,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1004,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1004,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1004,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1006,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1006,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1006,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1007,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1007,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1008,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1008,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1008,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1010,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1010,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1010,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1011,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1011,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1012,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1012,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1012,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1014,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1014,1
    - Dst: '&T::default_value'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1014,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1015,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1015,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1016,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1016,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1017,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1017,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1018,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1018,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1019,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1019,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1020,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1020,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1021,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1021,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1022,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1022,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1022,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1025,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1025,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1025,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1029,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1029,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1029,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1031,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1031,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1031,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1032,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1032,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1032,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1035,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1035,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1035,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1035,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1032,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1041,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1041,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1041,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1041,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1032,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1047,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1047,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1047,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1047,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1052,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1052,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1052,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1055,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1055,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1055,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1055,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1052,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1061,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1061,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1061,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1061,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1066,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1066,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1066,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1069,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1069,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1069,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1069,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1066,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1075,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1075,1
    - Dst: u8::help
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1075,1
    - Dst: num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1075,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1080,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1080,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1080,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1083,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1083,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1083,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1087,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1087,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1088,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1088,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1088,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1091,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1091,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1091,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1088,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1096,1
    - Dst: Result::long
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1096,1
    - Dst: u8::num_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1096,1
    - Dst: action
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1096,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1101,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1101,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1102,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1102,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1103,1
    - Dst: Self::about
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1103,1
    - Dst: arg
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1103,1
    - Dst: Arg::new
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1106,1
    - Dst: Result::index
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1106,1
    - Dst: '&T::help'
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1106,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:968,1
    - Dst: into_boxed_slice
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 272
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 967
    functionDepth: 9
    functionLinenumber: 967
    functionLinenumberEnd: 1113
    functionName: get_cli_commands_sorted
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 1
    functionsReached:
    - '&T::default_value'
    - num_args
    - action
    - Result::long
    - Result::index
    - Self::about
    - to_vec
    - u8::help
    - into_boxed_slice
    - Command::new
    - '&T::help'
    - Arg::new
    - arg
    - u8::num_args
    linkageType: ''
    returnType: Box
    signature: fn get_cli_commands_sorted() -> Box<[Command]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cli_args
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1258,1
    - Dst: assert_args_sorted
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1259,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1257
    functionDepth: 10
    functionLinenumber: 1257
    functionLinenumberEnd: 1260
    functionName: unit_tests::test_cli_args_sorted
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - get_cli_args
    - assert_args_sorted
    - Vec::iter
    linkageType: ''
    returnType: void
    signature: fn test_cli_args_sorted()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cli_commands_sorted
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1264,1
    - Dst: Box::iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1267,1
    - Dst: impl Iterator::zip
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1267,1
    - Dst: Box::iter
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1267,1
    - Dst: impl Iterator::skip
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1267,1
    - Dst: assert_args_sorted
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1280,1
    - Dst: bool::get_arguments
      Src: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs:1280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1263
    functionDepth: 10
    functionLinenumber: 1263
    functionLinenumberEnd: 1282
    functionName: unit_tests::test_cli_commands_sorted
    functionSourceFile: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
    functionUses: 0
    functionsReached:
    - get_cli_commands_sorted
    - bool::get_arguments
    - impl Iterator::zip
    - impl Iterator::skip
    - Box::iter
    - assert_args_sorted
    linkageType: ''
    returnType: void
    signature: fn test_cli_commands_sorted()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:29,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:29,1
    - Dst: HashMap::default
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:29,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:30,1
    - Dst: HashMap::default
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: Tracer::new
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - Mutex::new
    - HashMap::default
    - Arc::new
    - Instant::now
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:36,1
    - Dst: File::create
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:39,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:39,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:48,1
    - Dst: clone
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:49,1
    - Dst: serde_json::to_writer_pretty
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:52,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:52,1
    - Dst: Vec::flush
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:54,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 35
    functionDepth: 14
    functionLinenumber: 35
    functionLinenumberEnd: 57
    functionName: Tracer::end
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - serde_json::to_writer_pretty
    - File::create
    - Vec::flush
    - IoResult::unwrap
    - unwrap
    - duration_since
    - clone
    linkageType: ''
    returnType: void
    signature: fn end(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::thread::current
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:60,1
    - Dst: name
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:61,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:61,1
    - Dst: lock
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:62,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:62,1
    - Dst: bool::get_mut
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:63,1
    - Dst: push
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:64,1
    - Dst: bool::insert
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:66,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - event
    argTypes:
    - TraceEvent
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 13
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: Tracer::add_event
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - name
    - bool::insert
    - bool::get_mut
    - push
    - lock
    - unwrap
    - to_string
    - std::thread::current
    - unwrap_or
    linkageType: ''
    returnType: void
    signature: 'fn add_event(&mut self, event: TraceEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::thread::current
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:71,1
    - Dst: name
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:72,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:72,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:73,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:74,1
    - Dst: insert
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:76,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:77,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:77,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 8
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Tracer::increase_thread_depth
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - name
    - insert
    - AtomicU64::new
    - fetch_add
    - Arc::new
    - get_mut
    - to_string
    - std::thread::current
    - unwrap_or
    linkageType: ''
    returnType: void
    signature: fn increase_thread_depth(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::thread::current
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:82,1
    - Dst: name
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:83,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:83,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:84,1
    - Dst: fetch_sub
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: Tracer::decrease_thread_depth
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - fetch_sub
    - name
    - get_mut
    - std::thread::current
    - unwrap_or
    linkageType: ''
    returnType: void
    signature: fn decrease_thread_depth(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::thread::current
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:92,1
    - Dst: name
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:93,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:93,1
    - Dst: get
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:94,1
    - Dst: map
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:94,1
    - Dst: std::result::Result::load
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:96,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 7
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: Tracer::thread_depth
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - map
    - name
    - unwrap_or_default
    - std::result::Result::load
    - get
    - std::thread::current
    - unwrap_or
    linkageType: ''
    returnType: u64
    signature: fn thread_depth(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:114,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:114,1
    - Dst: get
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:114,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:114,1
    - Dst: get
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:118,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:118,1
    - Dst: thread_depth
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:118,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:122,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:122,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - event
    argTypes:
    - '&''static str'
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 13
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: trace_point_log
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - duration_since
    - thread_depth
    - get_mut
    - unwrap
    - get
    - add_event
    linkageType: ''
    returnType: void
    signature: 'pub fn trace_point_log(event: &''static str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:135,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:135,1
    - Dst: increase_thread_depth
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:135,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - event
    argTypes:
    - '&''static str'
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 9
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: TraceBlock::new
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - increase_thread_depth
    - Instant::now
    - unwrap
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(event: &''static str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:147,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:147,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:149,1
    - Dst: Some
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:151,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:151,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:151,1
    - Dst: get
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:153,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:153,1
    - Dst: thread_depth
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:153,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:157,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:157,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:157,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:158,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:158,1
    - Dst: decrease_thread_depth
      Src: /src/cloud-hypervisor/tracer/src/tracer.rs:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 145
    functionDepth: 13
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: TraceBlock::drop
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - decrease_thread_depth
    - thread_depth
    - get_mut
    - unwrap
    - duration_since
    - get
    - Some
    - add_event
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: trace_point
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer_noop.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 9
    functionName: trace_scoped
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer_noop.rs
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: end
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer_noop.rs
    functionUses: 124
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn end()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: start
    functionSourceFile: /src/cloud-hypervisor/tracer/src/tracer_noop.rs
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn start()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Hypervisor::check_required_extensions
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn check_required_extensions(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Hypervisor::tdx_capabilities
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn tdx_capabilities(&self) -> Result<TdxCapabilities>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Hypervisor::get_guest_debug_hw_bps
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn get_guest_debug_hw_bps(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86_64::__cpuid
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:161,1
    - Dst: CpuVendor::default
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: Hypervisor::get_cpu_vendor
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs
    functionUses: 1
    functionsReached:
    - CpuVendor::default
    - x86_64::__cpuid
    linkageType: ''
    returnType: CpuVendor
    signature: fn get_cpu_vendor(&self) -> CpuVendor
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Hypervisor::get_cpu_vendor
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:186,1
    - Dst: crate::arch::x86::amx_supported
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:187,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:187,1
    - Dst: crate::arch::x86::request_guest_amx_support
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:189,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 7
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: Hypervisor::enable_amx_state_components
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs
    functionUses: 0
    functionsReached:
    - crate::arch::x86::amx_supported
    - Result::map_err
    - crate::arch::x86::request_guest_amx_support
    - Hypervisor::get_cpu_vendor
    linkageType: ''
    returnType: Result
    signature: fn enable_amx_state_components(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: Vcpu::create_standard_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StandardRegisters
    signature: fn create_standard_regs(&self) -> StandardRegisters
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/cpu.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: Vcpu::notify_guest_clock_paused
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn notify_guest_clock_paused(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/cpu.rs:452,1
    - Dst: HypervisorCpuError::SetDebugRegs
      Src: /src/cloud-hypervisor/hypervisor/src/cpu.rs:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _addrs
    - _singlestep
    argTypes:
    - '&[GuestAddress]'
    - bool
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: Vcpu::set_guest_debug
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached:
    - HypervisorCpuError::SetDebugRegs
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn set_guest_debug(&self, _addrs: &[GuestAddress], _singlestep: bool)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _hob_address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: Vcpu::tdx_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn tdx_init(&self, _hob_address: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _exit
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: Vcpu::set_immediate_exit
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_immediate_exit(&mut self, _exit: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 549
    functionName: Vcpu::get_tdx_exit_details
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn get_tdx_exit_details(&mut self) -> Result<TdxExitDetails>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _status
    argTypes:
    - TdxExitStatus
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: Vcpu::set_tdx_status
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_tdx_status(&mut self, _status: TdxExitStatus)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/cpu.rs:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: Vcpu::tsc_khz
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn tsc_khz(&self) -> Result<Option<u32>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/cpu.rs:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _freq
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Vcpu::set_tsc_khz
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_tsc_khz(&self, _freq: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 4
    argNames:
    - _function
    - _index
    - _xfem
    - _xss
    argTypes:
    - u32
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 589
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 589
    functionName: Vcpu::get_cpuid_values
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn get_cpuid_values(&self,_function: u32,_index: u32,_xfem: u64,_xss:
      u64,) -> Result<[u32; 4]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_sev_control_register
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:540,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - vmsa_pfn
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 543
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 543
    functionName: Vcpu::set_sev_control_register
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - set_sev_control_register
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_sev_control_register(&self, vmsa_pfn: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_gic_redistributor_addr
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:556,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:556,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - base_redist_addr
    - redist_size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 560
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 560
    functionName: Vcpu::set_gic_redistributor_addr
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Ok
    - set_gic_redistributor_addr
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_gic_redistributor_addr(&self,base_redist_addr: u64,redist_size:
      u64,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataMatch::into
      Src: /src/cloud-hypervisor/hypervisor/src/vm.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dm
    argTypes:
    - DataMatch
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: u64::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 45
    functionsReached:
    - DataMatch::into
    linkageType: ''
    returnType: u64
    signature: 'fn from(dm: DataMatch) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: Vm::sev_snp_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn sev_snp_init(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _cpuid
    - _max_vcpus
    argTypes:
    - '&[CpuIdEntry]'
    - u32
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Vm::tdx_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn tdx_init(&self, _cpuid: &[CpuIdEntry], _max_vcpus: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: Vm::tdx_finalize
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn tdx_finalize(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 4
    argNames:
    - _host_address
    - _guest_address
    - _size
    - _measure
    argTypes:
    - '*mut u8'
    - u64
    - usize
    - bool
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 422
    functionName: Vm::tdx_init_memory_region
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'unsafe fn tdx_init_memory_region(&self,_host_address: *mut u8,_guest_address:
      u64,_size: usize,_measure: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _page_type
    - _page_size
    - _pages
    argTypes:
    - u32
    - u32
    - '&[u64]'
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: Vm::import_isolated_pages
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn import_isolated_pages(&self,_page_type: u32,_page_size: u32,_pages:
      &[u64],) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _snp_id_block
    - _host_data
    - _id_block_enabled
    argTypes:
    - IGVM_VHS_SNP_ID_BLOCK
    - '[u8; 32]'
    - u8
    constantsTouched: []
    func_position:
      end: 444
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 444
    functionName: Vm::complete_isolated_import
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn complete_isolated_import(&self,_snp_id_block: IGVM_VHS_SNP_ID_BLOCK,_host_data:
      [u8; 32],_id_block_enabled: u8,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/vm.rs:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: Vm::init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn init(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2777,1
    - Dst: try_write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2778,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2778,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2781,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2784,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2784,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2786,1
    - Dst: get_clock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2790,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2790,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2793,1
    - Dst: vm::Result::reset_flags
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2794,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2795,1
    - Dst: Vm::activate_virtio_devices
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2800,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2800,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2801,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2804,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2804,1
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2804,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2805,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2805,1
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2805,1
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2807,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2807,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2809,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2813,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2814,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2776
    functionDepth: 14
    functionLinenumber: 2776
    functionLinenumberEnd: 2815
    functionName: Vm::pause
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 2
    functionsReached:
    - pause
    - Vm::activate_virtio_devices
    - get_clock
    - map_err
    - String::valid_transition
    - event_monitor::event
    - lock
    - Result::map_err
    - try_write
    - unwrap
    - MigratableError::Pause
    - Some
    - vm::Result::reset_flags
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2818,1
    - Dst: Vm::get_state
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2819,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2819,1
    - Dst: try_write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2820,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2820,1
    - Dst: MigratableError::Resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2823,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2826,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2826,1
    - Dst: MigratableError::Resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2828,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2830,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2830,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2830,1
    - Dst: set_clock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2834,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2834,1
    - Dst: MigratableError::Resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2836,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2841,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2841,1
    - Dst: MigratableError::Resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2843,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2846,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2846,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2846,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2850,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2851,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2817
    functionDepth: 14
    functionLinenumber: 2817
    functionLinenumberEnd: 2852
    functionName: Vm::resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 3
    functionsReached:
    - MigratableError::Resume
    - map_err
    - String::valid_transition
    - event_monitor::event
    - lock
    - Result::map_err
    - Vm::get_state
    - try_write
    - unwrap
    - resume
    - set_clock
    - Result::unwrap
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/vm.rs:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _gpa
    - _size
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: Vm::gain_page_access
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn gain_page_access(&self, _gpa: u64, _size: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: Vm::enable_x2apic_api
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn enable_x2apic_api(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kvm::KvmHypervisor::is_available
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:77,1
    - Dst: kvm::KvmHypervisor::new
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:78,1
    - Dst: mshv::MshvHypervisor::is_available
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:82,1
    - Dst: mshv::MshvHypervisor::new
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:83,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:86,1
    - Dst: HypervisorError::HypervisorCreate
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: new
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 861
    functionsReached:
    - mshv::MshvHypervisor::new
    - Err
    - mshv::MshvHypervisor::is_available
    - HypervisorError::HypervisorCreate
    - kvm::KvmHypervisor::is_available
    - kvm::KvmHypervisor::new
    linkageType: ''
    returnType: std::result::Result
    signature: pub fn new() -> std::result::Result<Arc<dyn Hypervisor>, HypervisorError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::div_ceil
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:93,1
    - Dst: size_of::<T>
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:93,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:94,1
    - Dst: std::result::Result::resize_with
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - size_in_bytes
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: vec_with_size_in_bytes
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 1
    functionsReached:
    - Vec::with_capacity
    - std::result::Result::resize_with
    - size_of::<T>
    - Vec::div_ceil
    linkageType: ''
    returnType: Vec
    signature: 'fn vec_with_size_in_bytes<T: Default>(size_in_bytes: usize) -> Vec<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<F>
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:116,1
    - Dst: size_of::<T>
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:117,1
    - Dst: vec_with_size_in_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/lib.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: vec_with_array_field
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached:
    - size_of::<F>
    - vec_with_size_in_bytes
    - size_of::<T>
    linkageType: ''
    returnType: Vec
    signature: 'pub fn vec_with_array_field<T: Default, F>(count: usize) -> Vec<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: ClockData::reset_flags
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_flags(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 232
    functionName: set_x86_64_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 250
    functionName: get_x86_64_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 306
    functionName: set_aarch64_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 324
    functionName: get_aarch64_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 361
    functionName: set_riscv64_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 388
    functionName: get_riscv64_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 3
    argNames:
    - flags
    - base
    - limit
    argTypes:
    - u16
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: gdt_entry
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'pub fn gdt_entry(flags: u16, base: u32, limit: u32) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: get_base
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn get_base(entry: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_g
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: get_limit
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached:
    - get_g
    linkageType: ''
    returnType: u32
    signature: 'fn get_limit(entry: u64) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: get_g
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_g(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: get_db
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_db(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: get_l
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_l(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: get_avl
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_avl(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: get_p
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_p(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: get_dpl
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_dpl(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: get_s
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_s(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: get_type
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_type(entry: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_base
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:98,1
    - Dst: get_limit
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:99,1
    - Dst: get_type
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:101,1
    - Dst: get_p
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:102,1
    - Dst: get_dpl
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:103,1
    - Dst: get_db
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:104,1
    - Dst: get_s
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:105,1
    - Dst: get_l
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:106,1
    - Dst: get_g
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:107,1
    - Dst: get_avl
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:108,1
    - Dst: get_p
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - entry
    - table_index
    argTypes:
    - u64
    - u8
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: segment_from_gdt
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 2
    functionsReached:
    - get_s
    - get_g
    - get_db
    - get_base
    - get_type
    - get_p
    - get_l
    - get_limit
    - get_avl
    - get_dpl
    linkageType: ''
    returnType: SegmentRegister
    signature: 'pub fn segment_from_gdt(entry: u64, table_index: u8) -> SegmentRegister'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdt_entry
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:122,1
    - Dst: segment_from_gdt
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 140
    functionName: unit_tests::field_parse
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
    functionUses: 0
    functionsReached:
    - segment_from_gdt
    - gdt_entry
    linkageType: ''
    returnType: void
    signature: fn field_parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: SegmentRegister::segment_type
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn segment_type(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: SegmentRegister::set_segment_type
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_segment_type(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: SegmentRegister::dpl
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn dpl(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: SegmentRegister::set_dpl
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_dpl(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: SegmentRegister::present
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn present(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: SegmentRegister::set_present
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_present(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: SegmentRegister::long
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn long(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: SegmentRegister::set_long
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_long(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: SegmentRegister::avl
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn avl(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: SegmentRegister::set_avl
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_avl(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: SegmentRegister::desc_type
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn desc_type(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: SegmentRegister::set_desc_type
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_desc_type(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: SegmentRegister::granularity
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn granularity(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: SegmentRegister::set_granularity
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_granularity(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: SegmentRegister::db
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn db(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: SegmentRegister::set_db
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_db(&mut self, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: segment_type_code
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn segment_type_code(t: u8) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: segment_type_ro
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn segment_type_ro(t: u8) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: segment_type_code
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: segment_type_expand_down
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 1
    functionsReached:
    - segment_type_code
    linkageType: ''
    returnType: bool
    signature: 'pub fn segment_type_expand_down(t: u8) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: msr
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: msr_data
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: CpuIdEntry::fmt
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::std::mem::zeroed
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: LapicState::default
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached:
    - ::std::mem::zeroed
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::transmute::<&[i8], &[u8]>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:276,1
    - Dst: Cursor::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:279,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:281,1
    - Dst: expect
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - reg_offset
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: LapicState::get_klapic_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached:
    - read_u32::<LittleEndian>
    - Cursor::new
    - mem::transmute::<&[i8], &[u8]>
    - expect
    linkageType: ''
    returnType: u32
    signature: 'pub fn get_klapic_reg(&self, reg_offset: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::transmute::<&mut [i8], &mut [u8]>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:296,1
    - Dst: Cursor::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:299,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:301,1
    - Dst: expect
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - reg_offset
    - value
    argTypes:
    - usize
    - u32
    constantsTouched: []
    func_position:
      end: 304
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 304
    functionName: LapicState::set_klapic_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - expect
    - write_u32::<LittleEndian>
    - mem::transmute::<&mut [i8], &mut [u8]>
    linkageType: ''
    returnType: void
    signature: 'pub fn set_klapic_reg(&mut self, reg_offset: usize, value: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::zeroed
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:328,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 5
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: XsaveState::default
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 0
    functionsReached:
    - std::mem::zeroed
    - Vec::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:344,1
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:352,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:356,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:360,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - cpu_vendor
    argTypes:
    - CpuVendor
    constantsTouched: []
    func_position:
      end: 364
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 364
    functionName: amx_supported
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 1
    functionsReached:
    - libc::syscall
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn amx_supported(cpu_vendor: CpuVendor) -> Result<(), AmxGuestSupportError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:378,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:385,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 390
    functionName: request_guest_amx_support
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
    functionUses: 1
    functionsReached:
    - libc::syscall
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn request_guest_amx_support() -> Result<(), AmxGuestSupportError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuStateManager::read_segment
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:130,1
    - Dst: CpuStateManager::mode
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:131,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:136,1
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:136,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:136,1
    - Dst: PlatformError::InvalidAddress
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:139,1
    - Dst: arbitrary::Result::segment_type
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:146,1
    - Dst: arch::x86::segment_type_ro
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:149,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:150,1
    - Dst: PlatformError::InvalidAddress
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:150,1
    - Dst: arbitrary::Result::granularity
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:156,1
    - Dst: arch::x86::segment_type_expand_down
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:163,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:164,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:165,1
    - Dst: PlatformError::InvalidAddress
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:165,1
    - Dst: arbitrary::Result::db
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:170,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:177,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:178,1
    - Dst: PlatformError::InvalidAddress
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:178,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:183,1
    - Dst: u64::wrapping_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:183,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:186,1
    - Dst: PlatformError::UnsupportedCpuMode
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 73
    argCount: 3
    argNames:
    - segment
    - logical_addr
    - write
    argTypes:
    - Register
    - u64
    - bool
    constantsTouched: []
    func_position:
      end: 188
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 188
    functionName: CpuStateManager::linearize
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - CpuStateManager::mode
    - PlatformError::InvalidAddress
    - ok_or_else
    - arch::x86::segment_type_ro
    - Err
    - u64::checked_add
    - arbitrary::Result::segment_type
    - arbitrary::Result::granularity
    - arch::x86::segment_type_expand_down
    - into
    - u64::wrapping_add
    - CpuStateManager::read_segment
    - arbitrary::Result::db
    - PlatformError::UnsupportedCpuMode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn linearize(&self,segment: Register,logical_addr: u64,write: bool,)
      -> Result<u64, PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: set_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_rax
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:219,1
    - Dst: get_rbx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:222,1
    - Dst: get_rcx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:225,1
    - Dst: get_rdx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:228,1
    - Dst: get_rsp
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:230,1
    - Dst: get_rbp
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:231,1
    - Dst: get_rsi
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:232,1
    - Dst: get_rdi
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:233,1
    - Dst: get_r8
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:234,1
    - Dst: get_r9
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:235,1
    - Dst: get_r10
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:236,1
    - Dst: get_r11
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:237,1
    - Dst: get_r12
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:238,1
    - Dst: get_r13
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:239,1
    - Dst: get_r14
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:240,1
    - Dst: get_r15
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:241,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:249,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:249,1
    - Dst: Option::is_gpr64
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:255,1
    - Dst: Option::is_cr
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:255,1
    - Dst: Option::is_gpr32
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:257,1
    - Dst: Option::is_gpr16
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:259,1
    - Dst: Option::is_gpr8
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:261,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:272,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:272,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 101
    argCount: 1
    argNames:
    - reg
    argTypes:
    - Register
    constantsTouched: []
    func_position:
      end: 280
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 280
    functionName: EmulatorCpuState::read_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 1
    functionsReached:
    - Option::is_cr
    - get_r15
    - get_rax
    - get_rbx
    - get_r8
    - Ok
    - get_rbp
    - get_rsi
    - get_r13
    - get_r11
    - get_rdx
    - get_r14
    - get_rsp
    - get_r9
    - Err
    - get_rdi
    - Option::is_gpr16
    - get_rcx
    - Option::is_gpr8
    - PlatformError::InvalidRegister
    - get_r12
    - get_r10
    - Option::is_gpr32
    - Option::is_gpr64
    linkageType: ''
    returnType: Result
    signature: 'fn read_reg(&self, reg: Register) -> Result<u64, PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::is_gpr64
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:290,1
    - Dst: Option::is_cr
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:290,1
    - Dst: Option::is_gpr32
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:292,1
    - Dst: Option::is_gpr16
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:294,1
    - Dst: Option::is_gpr8
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:296,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:307,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:307,1
    - Dst: set_rax
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:314,1
    - Dst: get_rax
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:314,1
    - Dst: set_rbx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:317,1
    - Dst: get_rbx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:317,1
    - Dst: set_rcx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:320,1
    - Dst: get_rcx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:320,1
    - Dst: set_rdx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:323,1
    - Dst: get_rdx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:323,1
    - Dst: set_rsp
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:326,1
    - Dst: get_rsp
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:326,1
    - Dst: set_rbp
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:329,1
    - Dst: get_rbp
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:329,1
    - Dst: set_rsi
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:332,1
    - Dst: get_rsi
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:332,1
    - Dst: set_rdi
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:335,1
    - Dst: get_rdi
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:335,1
    - Dst: set_r8
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:338,1
    - Dst: get_r8
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:338,1
    - Dst: set_r9
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:341,1
    - Dst: get_r9
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:341,1
    - Dst: set_r10
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:344,1
    - Dst: get_r10
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:344,1
    - Dst: set_r11
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:347,1
    - Dst: get_r11
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:347,1
    - Dst: set_r12
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:350,1
    - Dst: get_r12
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:350,1
    - Dst: set_r13
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:353,1
    - Dst: get_r13
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:353,1
    - Dst: set_r14
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:356,1
    - Dst: get_r14
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:356,1
    - Dst: set_r15
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:359,1
    - Dst: get_r15
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:359,1
    - Dst: set_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:361,1
    - Dst: set_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:362,1
    - Dst: set_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:363,1
    - Dst: set_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:364,1
    - Dst: set_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:365,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:367,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:367,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 215
    argCount: 2
    argNames:
    - reg
    - val
    argTypes:
    - Register
    - u64
    constantsTouched: []
    func_position:
      end: 374
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 374
    functionName: EmulatorCpuState::write_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - Option::is_cr
    - set_r10
    - set_r14
    - set_rax
    - set_rsp
    - set_rbp
    - get_r15
    - get_rbx
    - set_r13
    - get_r8
    - Ok
    - get_rbp
    - set_r9
    - get_rsi
    - get_r13
    - get_r11
    - set_r15
    - set_r8
    - get_rdx
    - get_rsp
    - set_rbx
    - set_rdi
    - get_r14
    - get_r9
    - set_r11
    - set_r12
    - Err
    - set_rsi
    - get_rdi
    - Option::is_gpr64
    - set_rcx
    - set_reg
    - Option::is_gpr16
    - get_rcx
    - set_rdx
    - Option::is_gpr8
    - PlatformError::InvalidRegister
    - get_r12
    - get_r10
    - Option::is_gpr32
    - get_rax
    linkageType: ''
    returnType: Result
    signature: 'fn write_reg(&mut self, reg: Register, val: u64) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::is_segment_register
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:377,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:378,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:378,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:384,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:385,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:386,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:387,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:388,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:389,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:390,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - reg
    argTypes:
    - Register
    constantsTouched: []
    func_position:
      end: 394
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 394
    functionName: EmulatorCpuState::read_segment
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - PlatformError::InvalidRegister
    - Option::is_segment_register
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn read_segment(&self, reg: Register) -> Result<SegmentRegister, PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::is_segment_register
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:401,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:402,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:402,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:412,1
    - Dst: PlatformError::InvalidRegister
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:412,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - reg
    - segment_register
    argTypes:
    - Register
    - SegmentRegister
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: EmulatorCpuState::write_segment
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - PlatformError::InvalidRegister
    - Option::is_segment_register
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn write_segment(&mut self,reg: Register,segment_register: SegmentRegister,)
      -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_rip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: EmulatorCpuState::ip
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - get_rip
    linkageType: ''
    returnType: u64
    signature: fn ip(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_rip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ip
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: EmulatorCpuState::set_ip
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - set_rip
    linkageType: ''
    returnType: void
    signature: 'fn set_ip(&mut self, ip: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: EmulatorCpuState::efer
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn efer(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - efer
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: EmulatorCpuState::set_efer
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_efer(&mut self, efer: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_rflags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: EmulatorCpuState::flags
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - get_rflags
    linkageType: ''
    returnType: u64
    signature: fn flags(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_rflags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: EmulatorCpuState::set_flags
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - set_rflags
    linkageType: ''
    returnType: void
    signature: 'fn set_flags(&mut self, flags: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulatorCpuState::efer
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:443,1
    - Dst: EmulatorCpuState::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:444,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:453,1
    - Dst: PlatformError::InvalidState
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:453,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 462
    functionName: EmulatorCpuState::mode
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - EmulatorCpuState::efer
    - Err
    - EmulatorCpuState::read_reg
    - PlatformError::InvalidState
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn mode(&self) -> Result<CpuMode, PlatformError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 479
    functionName: gen_handler_match
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::as_ref
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:90,1
    - Dst: String::exists
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:91,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:92,1
    - Dst: Error::InitializeEmulator
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:92,1
    - Dst: SocketDev::new
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:97,1
    - Dst: Result::init
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:98,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:98,1
    - Dst: Error::InitializeEmulator
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:99,1
    - Dst: prepare_data_fd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:110,1
    - Dst: probe_caps
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:112,1
    - Dst: check_caps
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:113,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:114,1
    - Dst: Error::InitializeEmulator
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:114,1
    - Dst: get_established_flag
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:119,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:120,1
    - Dst: Error::InitializeEmulator
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:120,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 126
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 126
    functionName: Emulator::new
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 2
    functionsReached:
    - probe_caps
    - Error::InitializeEmulator
    - String::as_ref
    - SocketDev::new
    - String::exists
    - check_caps
    - Err
    - Result::init
    - Result::map_err
    - prepare_data_fd
    - get_established_flag
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(path: impl AsRef<Path>) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gen_handler_match
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - code
    argTypes:
    - Code
    constantsTouched: []
    func_position:
      end: 539
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 539
    functionName: Emulator::get_handler
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 1
    functionsReached:
    - gen_handler_match
    linkageType: ''
    returnType: Option
    signature: 'fn get_handler(code: Code) -> Option<Box<dyn InstructionHandler<T>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:547,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:547,1
    - Dst: Decoder::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:551,1
    - Dst: Instruction::default
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:552,1
    - Dst: String::ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:555,1
    - Dst: Box::set_ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:558,1
    - Dst: String::ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:558,1
    - Dst: Box::decode_out
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:561,1
    - Dst: Box::last_error
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:563,1
    - Dst: fetch
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:578,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:578,1
    - Dst: Decoder::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:586,1
    - Dst: Box::set_ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:587,1
    - Dst: Box::decode_out
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:588,1
    - Dst: Box::last_error
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:589,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:590,1
    - Dst: EmulationError::InstructionFetchingError
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:590,1
    - Dst: Emulator::get_handler
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:598,1
    - Dst: EmulationResult::code
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:598,1
    - Dst: Option::ok_or_else
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:598,1
    - Dst: EmulationError::UnsupportedInstruction
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:600,1
    - Dst: emulate
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:598,1
    - Dst: context
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:598,1
    - Dst: Box::ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:613,1
    - Dst: String::set_ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:624,1
    - Dst: Box::ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:624,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:625,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 91
    argCount: 3
    argNames:
    - cpu_id
    - insn_stream
    - num_insn
    argTypes:
    - usize
    - '&[u8]'
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 626
      start: 541
    functionDepth: 14
    functionLinenumber: 541
    functionLinenumberEnd: 626
    functionName: Emulator::emulate_insn_stream
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 1
    functionsReached:
    - Box::last_error
    - map_err
    - Emulator::get_handler
    - Box::ip
    - EmulationError::InstructionFetchingError
    - Option::ok_or_else
    - Ok
    - context
    - cpu_state
    - emulate
    - EmulationResult::code
    - fetch
    - String::set_ip
    - Instruction::default
    - Err
    - EmulationError::UnsupportedInstruction
    - Decoder::new
    - Box::set_ip
    - String::ip
    - Box::decode_out
    linkageType: ''
    returnType: EmulationResult
    signature: 'fn emulate_insn_stream(&mut self,cpu_id: usize,insn_stream: &[u8],num_insn:
      Option<usize>,) -> EmulationResult<T, Exception>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Emulator::emulate_with_syndrome
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:104,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:105,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:106,1
    - Dst: PlatformError::InvalidState
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:106,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 8
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: Emulator::emulate
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs
    functionUses: 0
    functionsReached:
    - Emulator::emulate_with_syndrome
    - PlatformError::InvalidState
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn emulate(&mut self) -> Result<(), PlatformError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Emulator::emulate_insn_stream
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:643,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cpu_id
    - insn_stream
    argTypes:
    - usize
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 15
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: Emulator::emulate_first_insn
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - Emulator::emulate_insn_stream
    linkageType: ''
    returnType: EmulationResult
    signature: 'pub fn emulate_first_insn(&mut self,cpu_id: usize,insn_stream: &[u8],)
      -> EmulationResult<T, Exception>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:803,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:803,1
    - Dst: Result::emulate_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:804,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:804,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:804,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:806,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:806,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:806,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:806,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:813,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:813,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:813,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 788
    functionDepth: 6
    functionLinenumber: 788
    functionLinenumberEnd: 819
    functionName: unit_tests::test_empty_instruction_stream
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - MockVmm::new
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Result::emulate_insn
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_empty_instruction_stream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:841,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:841,1
    - Dst: Result::emulate_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:842,1
    - Dst: unwrap_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 843
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 843
    functionName: unit_tests::test_empty_instruction_stream_bad
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - MockVmm::new
    - Result::emulate_insn
    - Some
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_empty_instruction_stream_bad()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:869,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:869,1
    - Dst: Result::emulate_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:870,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:870,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:870,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:872,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:872,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:872,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 878
      start: 851
    functionDepth: 6
    functionLinenumber: 851
    functionLinenumberEnd: 878
    functionName: unit_tests::test_fetch_first_instruction
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - MockVmm::new
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Result::emulate_insn
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_fetch_first_instruction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:904,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:904,1
    - Dst: Result::emulate_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:905,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:905,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:905,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:907,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:907,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:907,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 886
    functionDepth: 6
    functionLinenumber: 886
    functionLinenumberEnd: 913
    functionName: unit_tests::test_fetch_second_instruction
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - MockVmm::new
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Result::emulate_insn
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_fetch_second_instruction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:939,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:939,1
    - Dst: Result::emulate_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:940,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:940,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:940,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:942,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:942,1
    - Dst: ip
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:942,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:945,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:945,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:945,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:945,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:953,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:953,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:953,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 959
      start: 921
    functionDepth: 14
    functionLinenumber: 921
    functionLinenumberEnd: 959
    functionName: unit_tests::test_emulate_one_instruction
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - ip
    - MockVmm::new
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Result::emulate_insn
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_emulate_one_instruction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:980,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:980,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:981,1
    - Dst: EmulationResult::unwrap_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 982
      start: 967
    functionDepth: 16
    functionLinenumber: 967
    functionLinenumberEnd: 982
    functionName: unit_tests::test_fetch_bad_insn
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
    functionUses: 0
    functionsReached:
    - MockVmm::new
    - EmulationResult::unwrap_err
    - Some
    - Result::emulate_first_insn
    linkageType: ''
    returnType: void
    signature: fn test_fetch_bad_insn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: set_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:11,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:14,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:11,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 17
    functionDepth: 9
    functionLinenumber: 17
    functionLinenumberEnd: 41
    functionName: mov_rm_r
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - set_op
    - get_op
    - std::mem::size_of::<$bound>
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: set_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:11,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:14,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:11,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 9
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: mov_rm_imm
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - set_op
    - get_op
    - std::mem::size_of::<$bound>
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: std::mem::size_of::<$src_op_size>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:11,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: set_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:17,1
    - Dst: std::mem::size_of::<$dest_op_size>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:20,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:17,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 69
    functionDepth: 9
    functionLinenumber: 69
    functionLinenumberEnd: 99
    functionName: movzx
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 1
    functionsReached:
    - set_op
    - get_op
    - std::mem::size_of::<$dest_op_size>
    - Result::map_err
    - std::mem::size_of::<$src_op_size>
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: movzx
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 10
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: mov_r_rm
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - movzx
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:8,1
    - Dst: set_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:11,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:14,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:11,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 108
    functionDepth: 9
    functionLinenumber: 108
    functionLinenumberEnd: 132
    functionName: mov_r_imm
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - set_op
    - get_op
    - std::mem::size_of::<$bound>
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:282,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:283,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:283,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:285,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:285,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:285,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 16
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: unit_tests::test_mov_r64_r64
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r64_r64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:300,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:301,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:301,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:303,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:303,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:303,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 16
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: unit_tests::test_mov_r64_imm64
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r64_imm64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:318,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:320,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:320,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:321,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:321,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:323,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:323,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:323,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 313
    functionDepth: 16
    functionLinenumber: 313
    functionLinenumberEnd: 329
    functionName: unit_tests::test_mov_r64_m64
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r64_m64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:338,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:339,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:339,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:341,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:341,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:341,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 16
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: unit_tests::test_mov_r8_imm8
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r8_imm8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:356,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:357,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:357,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:359,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:359,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:359,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 16
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: unit_tests::test_mov_r32_imm8
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r32_imm8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:374,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:375,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:375,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:377,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:377,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:377,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 369
    functionDepth: 16
    functionLinenumber: 369
    functionLinenumberEnd: 383
    functionName: unit_tests::test_mov_r64_imm32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r64_imm32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:393,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:398,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:398,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:401,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 16
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: unit_tests::test_mov_m8_r8
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_mov_m8_r8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:414,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:419,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:419,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:422,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 408
    functionDepth: 16
    functionLinenumber: 408
    functionLinenumberEnd: 425
    functionName: unit_tests::test_mov_m32_r32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_mov_m32_r32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:436,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:441,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:441,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:444,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 429
    functionDepth: 16
    functionLinenumber: 429
    functionLinenumberEnd: 447
    functionName: unit_tests::test_mov_m32imm32_r32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_mov_m32imm32_r32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:455,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:459,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:462,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:464,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:464,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:466,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:466,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:466,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 451
    functionDepth: 16
    functionLinenumber: 451
    functionLinenumberEnd: 472
    functionName: unit_tests::test_mov_r32_m32imm32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r32_m32imm32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:483,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:484,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:487,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:489,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:489,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:491,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:491,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:491,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 476
    functionDepth: 16
    functionLinenumber: 476
    functionLinenumberEnd: 497
    functionName: unit_tests::test_mov_r8_m32imm32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - Result::to_le_bytes
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r8_m32imm32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:508,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:513,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:513,1
    - Dst: Result::emulate_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:514,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:514,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:514,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:516,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:516,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:516,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 522
    functionName: unit_tests::test_mov_r64_imm64_and_r64_m64
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - MockVmm::new
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Result::emulate_insn
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r64_imm64_and_r64_m64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:533,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:539,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:539,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:541,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:541,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:545,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:545,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:545,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 527
    functionDepth: 16
    functionLinenumber: 527
    functionLinenumberEnd: 551
    functionName: unit_tests::test_mov_r64_imm64_and_r64_m64_first_insn
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r64_imm64_and_r64_m64_first_insn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:563,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:570,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:570,1
    - Dst: Result::emulate_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:572,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:572,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:572,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:576,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:576,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:576,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:576,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:584,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:584,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:584,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 557
    functionDepth: 6
    functionLinenumber: 557
    functionLinenumberEnd: 590
    functionName: unit_tests::test_mov_r64_imm64_and_r64_m64_two_insns
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - MockVmm::new
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Result::emulate_insn
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_mov_r64_imm64_and_r64_m64_two_insns()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:599,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:600,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:600,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:602,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:602,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:602,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 594
    functionDepth: 16
    functionLinenumber: 594
    functionLinenumberEnd: 608
    functionName: unit_tests::test_movzx_r32_r8l
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_movzx_r32_r8l()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:617,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:618,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:618,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:620,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:620,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:620,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 612
    functionDepth: 16
    functionLinenumber: 612
    functionLinenumberEnd: 626
    functionName: unit_tests::test_movzx_r32_r8h
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_movzx_r32_r8h()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:636,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:637,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:637,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:638,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:638,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:640,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:640,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:640,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 630
    functionDepth: 16
    functionLinenumber: 630
    functionLinenumberEnd: 646
    functionName: unit_tests::test_movzx_r32_m8
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - Result::to_le_bytes
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - Some
    - read_reg
    linkageType: ''
    returnType: void
    signature: fn test_movzx_r32_m8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:666,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:668,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:670,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:671,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:672,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:681,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:682,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:682,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:683,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:683,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:685,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:685,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:685,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - register
    - instruction_prefix
    argTypes:
    - Register
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 699
      start: 660
    functionDepth: 16
    functionLinenumber: 660
    functionLinenumberEnd: 699
    functionName: u::n::i::t::_::t::e::s::t::s::::::::t::e::s::t::_::m::o::v::_::m::e::m::o::f::f::_::a::x::helper
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - to_le_bytes
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - unwrap
    - Result::cpu_state
    - Result::unwrap
    - read_reg
    - Some
    - Result::extend
    linkageType: ''
    returnType: void
    signature: 'fn helper(register: Register, instruction_prefix: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: helper
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 652
    functionDepth: 17
    functionLinenumber: 652
    functionLinenumberEnd: 704
    functionName: unit_tests::test_mov_memoff_ax
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - helper
    linkageType: ''
    returnType: void
    signature: fn test_mov_memoff_ax()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:724,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:726,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:728,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:729,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:730,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:739,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:740,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:740,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:745,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:745,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:750,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:750,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:755,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 2
    argNames:
    - register
    - instruction_prefix
    argTypes:
    - Register
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 760
      start: 718
    functionDepth: 16
    functionLinenumber: 718
    functionLinenumberEnd: 760
    functionName: u::n::i::t::_::t::e::s::t::s::::::::t::e::s::t::_::m::o::v::_::a::x::_::m::e::m::o::f::f::helper
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - to_le_bytes
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Result::extend
    linkageType: ''
    returnType: void
    signature: 'fn helper(register: Register, instruction_prefix: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: helper
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 765
      start: 710
    functionDepth: 17
    functionLinenumber: 710
    functionLinenumberEnd: 765
    functionName: unit_tests::test_mov_ax_memoff
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
    functionUses: 0
    functionsReached:
    - helper
    linkageType: ''
    returnType: void
    signature: fn test_mov_ax_memoff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:8,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:8,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:8,1
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:11,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:11,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:11,1
    - Dst: set_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:16,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:19,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:16,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: or_rm_r
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs
    functionUses: 0
    functionsReached:
    - set_op
    - get_op
    - std::mem::size_of::<$bound>
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:66,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:69,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:72,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:72,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:76,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 16
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: unit_tests::test_or_rm8_r8
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_or_rm8_r8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::wrapping_sub
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:25,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 3
    argNames:
    - op0
    - op1
    - op_size
    argTypes:
    - u64
    - u64
    - usize
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 8
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: calc_rflags_cpazso
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 3
    functionsReached:
    - u64::wrapping_sub
    - u64::from
    linkageType: ''
    returnType: u64
    signature: 'fn calc_rflags_cpazso(op0: u64, op1: u64, op_size: usize) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: calc_rflags_cpazso
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:13,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:13,1
    - Dst: String::set_flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:15,1
    - Dst: String::flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:15,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 9
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: cmp_rm_r
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - get_op
    - std::mem::size_of::<$bound>
    - Result::map_err
    - calc_rflags_cpazso
    - String::set_flags
    - String::flags
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: calc_rflags_cpazso
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:13,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:13,1
    - Dst: String::set_flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:15,1
    - Dst: String::flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:15,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 9
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: cmp_r_rm
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - get_op
    - std::mem::size_of::<$bound>
    - Result::map_err
    - calc_rflags_cpazso
    - String::set_flags
    - String::flags
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:8,1
    - Dst: get_op
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: std::mem::size_of::<$imm>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:10,1
    - Dst: calc_rflags_cpazso
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:13,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:13,1
    - Dst: String::set_flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:15,1
    - Dst: String::flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:15,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 9
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: cmp_rm_imm
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - get_op
    - std::mem::size_of::<$bound>
    - Result::map_err
    - calc_rflags_cpazso
    - String::set_flags
    - String::flags
    - std::mem::size_of::<$imm>
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:222,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:223,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:223,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:225,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:225,1
    - Dst: flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 217
    functionDepth: 16
    functionLinenumber: 217
    functionLinenumberEnd: 227
    functionName: unit_tests::test_cmp_rm8_r8_1
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::cpu_state
    - flags
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cmp_rm8_r8_1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:236,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:237,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:237,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:239,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:239,1
    - Dst: flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 16
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: unit_tests::test_cmp_rm32_imm8_1
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::cpu_state
    - flags
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cmp_rm32_imm8_1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:250,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:251,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:251,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:253,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:253,1
    - Dst: flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 16
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: unit_tests::test_cmp_rm32_imm8_2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::cpu_state
    - flags
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cmp_rm32_imm8_2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:265,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:266,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:266,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:268,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:268,1
    - Dst: flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 16
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: unit_tests::test_cmp_rm64_r64
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::cpu_state
    - flags
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cmp_rm64_r64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::iter
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:284,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:288,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:293,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:293,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:295,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:295,1
    - Dst: flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 16
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: unit_tests::test_cmp_64
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - String::iter
    - Result::cpu_state
    - flags
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cmp_64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::iter
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:312,1
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:316,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:321,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:321,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:323,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:323,1
    - Dst: flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 301
    functionDepth: 16
    functionLinenumber: 301
    functionLinenumberEnd: 326
    functionName: unit_tests::test_cmp_32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - String::iter
    - Result::cpu_state
    - flags
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cmp_32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::has_rep_prefix
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:8,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:9,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:9,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:11,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:16,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:16,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:18,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:20,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:20,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:22,1
    - Dst: String::flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:24,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:25,1
    - Dst: cpu::Result::to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:26,1
    - Dst: String::linearize
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:29,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:29,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:31,1
    - Dst: write_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:33,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:33,1
    - Dst: wrapping_sub
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:38,1
    - Dst: wrapping_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:40,1
    - Dst: EmulationResult::has_rep_prefix
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:45,1
    - Dst: String::write_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:46,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:46,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:48,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:51,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 18
    functionDepth: 8
    functionLinenumber: 18
    functionLinenumberEnd: 72
    functionName: stos
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::has_rep_prefix
    - write_memory
    - std::mem::size_of::<$bound>
    - String::linearize
    - EmulationError::InvalidOperand
    - cpu::Result::to_le_bytes
    - wrapping_sub
    - Result::map_err
    - wrapping_add
    - String::flags
    - String::read_reg
    - String::write_reg
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:115,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:115,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:117,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:117,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:119,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:119,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:121,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:121,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:123,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 100
    functionDepth: 16
    functionLinenumber: 100
    functionLinenumberEnd: 125
    functionName: unit_tests::test_rep_stosb
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_stosb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:137,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:137,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:139,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:139,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:141,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:141,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:144,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:144,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:146,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 16
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: unit_tests::test_stosw
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_stosw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:165,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:165,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:167,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:167,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:169,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:169,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:171,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:171,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:173,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 16
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: unit_tests::test_rep_stosw
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_stosw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:193,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:193,1
    - Dst: Result::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:196,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:196,1
    - Dst: String::set_flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:197,1
    - Dst: String::flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:197,1
    - Dst: Result::set_cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:198,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:198,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:200,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:200,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:202,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:202,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:204,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:204,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:206,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:206,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:208,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 178
    functionDepth: 16
    functionLinenumber: 178
    functionLinenumberEnd: 210
    functionName: unit_tests::test_rep_stosd
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs
    functionUses: 0
    functionsReached:
    - Result::set_cpu_state
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - String::set_flags
    - Result::cpu_state
    - String::flags
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_stosd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:227,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:227,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:229,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:229,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:231,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:231,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:233,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:233,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:235,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 213
    functionDepth: 16
    functionLinenumber: 213
    functionLinenumberEnd: 237
    functionName: unit_tests::test_rep_stosq
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_stosq()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::has_rep_prefix
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:8,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:9,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:9,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:11,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:16,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:16,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:18,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:19,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:19,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:21,1
    - Dst: String::flags
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:23,1
    - Dst: std::mem::size_of::<$bound>
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:24,1
    - Dst: String::linearize
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:29,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:29,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:31,1
    - Dst: String::linearize
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:32,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:32,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:34,1
    - Dst: read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:36,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:36,1
    - Dst: write_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:39,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:39,1
    - Dst: wrapping_sub
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:44,1
    - Dst: wrapping_sub
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:45,1
    - Dst: wrapping_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:47,1
    - Dst: wrapping_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:48,1
    - Dst: String::write_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:53,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:53,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:55,1
    - Dst: String::write_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:56,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:56,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:58,1
    - Dst: EmulationResult::has_rep_prefix
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:59,1
    - Dst: String::write_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:60,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:60,1
    - Dst: EmulationError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:62,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:65,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 18
    functionDepth: 8
    functionLinenumber: 18
    functionLinenumberEnd: 86
    functionName: movs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::has_rep_prefix
    - read_memory
    - write_memory
    - std::mem::size_of::<$bound>
    - String::linearize
    - EmulationError::InvalidOperand
    - wrapping_sub
    - Result::map_err
    - wrapping_add
    - String::flags
    - String::read_reg
    - String::write_reg
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:134,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:134,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:136,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:136,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:138,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:138,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:140,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:140,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:143,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 114
    functionDepth: 16
    functionLinenumber: 114
    functionLinenumberEnd: 145
    functionName: unit_tests::test_rep_movsq_m64_m64
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_movsq_m64_m64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:162,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:162,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:164,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:164,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:166,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:166,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:168,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:168,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:170,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:170,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:173,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 16
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: unit_tests::test_rep_movsd_m32_m32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_movsd_m32_m32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:187,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:187,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:189,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:189,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:191,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:191,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:194,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:194,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:196,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 16
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: unit_tests::test_movsd_m32_m32
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_movsd_m32_m32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:215,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:215,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:217,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:217,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:219,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:219,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:221,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:221,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:223,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:223,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:225,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:225,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:227,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:227,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:229,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:229,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:232,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 201
    functionDepth: 16
    functionLinenumber: 201
    functionLinenumberEnd: 234
    functionName: unit_tests::test_rep_movsw_m16_m16
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_movsw_m16_m16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:246,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:246,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:248,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:248,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:250,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:250,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:253,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:253,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:256,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:256,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:258,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 16
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: unit_tests::test_movsw_m16_m16
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_movsw_m16_m16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:272,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:272,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:274,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:274,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:276,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:276,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:279,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:279,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:282,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:282,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:285,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 16
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: unit_tests::test_movsb_m8_m8
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_movsb_m8_m8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockVmm::new
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:302,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:302,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:304,1
    - Dst: EmulationResult::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:304,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:306,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:306,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:308,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:308,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:310,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:310,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:312,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:312,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:314,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:314,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:316,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:316,1
    - Dst: Result::read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:319,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 290
    functionDepth: 16
    functionLinenumber: 290
    functionLinenumberEnd: 321
    functionName: unit_tests::test_rep_movsb_m8_m8
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
    functionUses: 0
    functionsReached:
    - Result::read_memory
    - EmulationResult::unwrap
    - MockVmm::new
    - Result::emulate_first_insn
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_rep_movsb_m8_m8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::op_count
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:27,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:28,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:28,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:34,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:34,1
    - Dst: EmulationResult::try_op_kind
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:39,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:39,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:41,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:41,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:43,1
    - Dst: EmulationResult::try_op_register
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:44,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:44,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:45,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:45,1
    - Dst: memory_operand_address
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:48,1
    - Dst: read_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:50,1
    - Dst: <u64>::from_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:51,1
    - Dst: EmulationResult::immediate8
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:53,1
    - Dst: EmulationResult::immediate8to16
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:54,1
    - Dst: EmulationResult::immediate8to32
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:55,1
    - Dst: EmulationResult::immediate8to64
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:56,1
    - Dst: EmulationResult::immediate16
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:57,1
    - Dst: EmulationResult::immediate32
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:58,1
    - Dst: EmulationResult::immediate32to64
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:59,1
    - Dst: EmulationResult::immediate64
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:60,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:61,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:61,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 77
    argCount: 5
    argNames:
    - insn
    - op_index
    - op_size
    - state
    - platform
    argTypes:
    - '&Instruction'
    - u32
    - usize
    - '&T'
    - '&dyn PlatformEmulator<CpuState = T>'
    constantsTouched: []
    func_position:
      end: 65
      start: 20
    functionDepth: 8
    functionLinenumber: 20
    functionLinenumberEnd: 65
    functionName: get_op
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs
    functionUses: 8
    functionsReached:
    - read_memory
    - map_err
    - EmulationResult::immediate8to32
    - EmulationResult::try_op_register
    - EmulationResult::immediate16
    - Ok
    - EmulationResult::immediate8to64
    - EmulationResult::immediate64
    - usize::into
    - EmulationResult::op_count
    - Err
    - memory_operand_address
    - EmulationResult::immediate8to16
    - String::read_reg
    - EmulationResult::immediate32
    - <u64>::from_le_bytes
    - EmulationResult::try_op_kind
    - EmulationResult::immediate8
    - PlatformError::InvalidOperand
    - EmulationResult::immediate32to64
    linkageType: ''
    returnType: Result
    signature: 'fn get_op<T: CpuStateManager>(insn: &Instruction,op_index: u32,op_size:
      usize,state: &T,platform: &dyn PlatformEmulator<CpuState = T>,) -> Result<u64,
      PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::op_count
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:75,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:76,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:76,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:82,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:82,1
    - Dst: EmulationResult::try_op_kind
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:87,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:87,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:89,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:89,1
    - Dst: String::write_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:91,1
    - Dst: EmulationResult::try_op_register
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:92,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:92,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:93,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:93,1
    - Dst: memory_operand_address
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:97,1
    - Dst: write_memory
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:98,1
    - Dst: Result::to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:98,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:100,1
    - Dst: PlatformError::InvalidOperand
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:100,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 6
    argNames:
    - insn
    - op_index
    - op_size
    - state
    - platform
    - value
    argTypes:
    - '&Instruction'
    - u32
    - usize
    - '&mut T'
    - '&mut dyn PlatformEmulator<CpuState = T>'
    - u64
    constantsTouched: []
    func_position:
      end: 104
      start: 67
    functionDepth: 7
    functionLinenumber: 67
    functionLinenumberEnd: 104
    functionName: set_op
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs
    functionUses: 9
    functionsReached:
    - map_err
    - EmulationResult::try_op_kind
    - write_memory
    - EmulationResult::try_op_register
    - Err
    - Result::to_le_bytes
    - PlatformError::InvalidOperand
    - memory_operand_address
    - usize::into
    - EmulationResult::op_count
    - String::write_reg
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_op<T: CpuStateManager>(insn: &Instruction,op_index: u32,op_size:
      usize,state: &mut T,platform: &mut dyn PlatformEmulator<CpuState = T>,value:
      u64,) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::memory_base
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:114,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:115,1
    - Dst: EmulationResult::memory_base
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:115,1
    - Dst: Result::wrapping_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:116,1
    - Dst: EmulationResult::memory_index
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:119,1
    - Dst: String::read_reg
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:120,1
    - Dst: EmulationResult::memory_index
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:120,1
    - Dst: '&T::wrapping_mul'
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:121,1
    - Dst: EmulationResult::memory_index_scale
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:121,1
    - Dst: Result::wrapping_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:123,1
    - Dst: Result::wrapping_add
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:126,1
    - Dst: EmulationResult::memory_displacement64
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:126,1
    - Dst: String::linearize
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:129,1
    - Dst: EmulationResult::memory_segment
      Src: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 3
    argNames:
    - insn
    - state
    - write
    argTypes:
    - '&Instruction'
    - '&T'
    - bool
    constantsTouched: []
    func_position:
      end: 130
      start: 107
    functionDepth: 8
    functionLinenumber: 107
    functionLinenumberEnd: 130
    functionName: memory_operand_address
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs
    functionUses: 2
    functionsReached:
    - EmulationResult::memory_base
    - EmulationResult::memory_segment
    - EmulationResult::memory_index_scale
    - Result::wrapping_add
    - EmulationResult::memory_index
    - String::linearize
    - '&T::wrapping_mul'
    - String::read_reg
    - EmulationResult::memory_displacement64
    linkageType: ''
    returnType: Result
    signature: 'fn memory_operand_address<T: CpuStateManager>(insn: &Instruction,state:
      &T,write: bool,) -> Result<u64, PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FaultStatusCode
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/regs.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bits
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: FaultStatusCode::from_bits
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/regs.rs
    functionUses: 0
    functionsReached:
    - FaultStatusCode
    linkageType: ''
    returnType: Self
    signature: 'const fn from_bits(bits: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: FaultStatusCode::into_bits
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/regs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: const fn into_bits(self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: arm64_sys_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/regs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deserialize::deserialize
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:72,1
    - Dst: crate::kvm::aarch64::gic::Gicv3ItsState::deserialize
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:76,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:76,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:78,1
    - Dst: GicState::Kvm
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:78,1
    - Dst: GicStateDefaultDeserialize::deserialize
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:81,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:81,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:84,1
    - Dst: GicState::Kvm
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:84,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:86,1
    - Dst: GicState::MshvGicV2M
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:86,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:89,1
    - Dst: SerdeError::custom
      Src: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - deserializer
    argTypes:
    - D
    constantsTouched: []
    func_position:
      end: 90
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 90
    functionName: GicState::deserialize
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs
    functionUses: 0
    functionsReached:
    - SerdeError::custom
    - Deserialize::deserialize
    - Err
    - GicState::Kvm
    - GicState::MshvGicV2M
    - crate::kvm::aarch64::gic::Gicv3ItsState::deserialize
    - Result::clone
    - GicStateDefaultDeserialize::deserialize
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>whereD:
      serde::Deserializer<''de>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: Exception::fmt
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/arch/emulator/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MpState::Kvm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - kvm_mp_state
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: MpState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - MpState::Kvm
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: kvm_mp_state) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MpState
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: kvm_mp_state::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(ms: MpState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::Pio
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:111,1
    - Dst: Self::Mmio
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - mshv_ioctls::IoEventAddress
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: IoEventAddress::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 4
    functionsReached:
    - Self::Pio
    - Self::Mmio
    linkageType: ''
    returnType: Self
    signature: 'fn from(a: mshv_ioctls::IoEventAddress) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::Pio
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:270,1
    - Dst: Self::Mmio
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - IoEventAddress
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: kvm_ioctls::IoEventAddress::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 2
    functionsReached:
    - Self::Pio
    - Self::Mmio
    linkageType: ''
    returnType: Self
    signature: 'fn from(a: IoEventAddress) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuState::Mshv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - VcpuMshvState
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: CpuState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - CpuState::Mshv
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: VcpuMshvState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - CpuState
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: VcpuKvmState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: CpuState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClockData::Mshv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - MshvClockData
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: ClockData::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - ClockData::Mshv
    linkageType: ''
    returnType: Self
    signature: 'fn from(d: MshvClockData) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ms
    argTypes:
    - ClockData
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: kvm_clock_data::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(ms: ClockData) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Register::Kvm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - kvm_bindings::kvm_one_reg
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: crate::Register::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - crate::Register::Kvm
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: kvm_bindings::kvm_one_reg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::Register
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: kvm_bindings::kvm_one_reg::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::Register) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::VcpuInit::Mshv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - mshv_bindings::MshvVcpuInit
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: crate::VcpuInit::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - crate::VcpuInit::Mshv
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: mshv_bindings::MshvVcpuInit) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::VcpuInit
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: kvm_bindings::kvm_vcpu_init::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::VcpuInit) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::RegList::Mshv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - mshv_bindings::MshvRegList
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: crate::RegList::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - crate::RegList::Mshv
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: mshv_bindings::MshvRegList) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::RegList
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: kvm_bindings::RegList::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::RegList) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::StandardRegisters::Mshv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - mshv_bindings::StandardRegisters
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: crate::StandardRegisters::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - crate::StandardRegisters::Mshv
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: mshv_bindings::StandardRegisters) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::StandardRegisters
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: kvm_bindings::kvm_regs::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::StandardRegisters) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::StandardRegisters
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: kvm_bindings::kvm_riscv_core::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::StandardRegisters) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IrqRoutingEntry::Mshv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - mshv_user_irq_entry
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: IrqRoutingEntry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - IrqRoutingEntry::Mshv
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: mshv_user_irq_entry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - IrqRoutingEntry
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: kvm_irq_routing_entry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: IrqRoutingEntry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_device
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:443,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:443,1
    - Dst: vm::HypervisorVmError::CreateDevice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:446,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:446,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:447,1
    - Dst: VfioDeviceFd::new_from_kvm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - device
    argTypes:
    - '&mut CreateDevice'
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 7
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: KvmVm::create_device
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - map_err
    - usize::into
    - vm::HypervisorVmError::CreateDevice
    - VfioDeviceFd::new_from_kvm
    - create_device
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn create_device(&self, device: &mut CreateDevice) -> vm::Result<vfio_ioctls::VfioDeviceFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_extension
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - Cap
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: KvmVm::check_extension
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - check_extension
    linkageType: ''
    returnType: bool
    signature: 'pub fn check_extension(&self, c: Cap) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - address_lo
    - address_hi
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: KvmVm::translate_msi_ext_dest_id
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: 'fn translate_msi_ext_dest_id(address_lo: u32, address_hi: u32) ->
      (u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_identity_map_address
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:517,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:517,1
    - Dst: vm::HypervisorVmError::SetIdentityMapAddress
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:519,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 7
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: KvmVm::set_identity_map_address
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_identity_map_address
    - usize::into
    - vm::HypervisorVmError::SetIdentityMapAddress
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_identity_map_address(&self, address: u64) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_tss_address
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:527,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:527,1
    - Dst: vm::HypervisorVmError::SetTssAddress
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:529,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - offset
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 7
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: KvmVm::set_tss_address
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - set_tss_address
    - map_err
    - vm::HypervisorVmError::SetTssAddress
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_tss_address(&self, offset: usize) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_irq_chip
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:537,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:537,1
    - Dst: vm::HypervisorVmError::CreateIrq
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:539,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 7
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: KvmVm::create_irq_chip
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - create_irq_chip
    - usize::into
    - vm::HypervisorVmError::CreateIrq
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: fn create_irq_chip(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_irqfd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:546,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:546,1
    - Dst: vm::HypervisorVmError::RegisterIrqFd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:548,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - gsi
    argTypes:
    - '&EventFd'
    - u32
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 7
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: KvmVm::register_irqfd
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::RegisterIrqFd
    - usize::into
    - register_irqfd
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: 'fn register_irqfd(&self, fd: &EventFd, gsi: u32) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unregister_irqfd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:555,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:555,1
    - Dst: vm::HypervisorVmError::UnregisterIrqFd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:557,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - gsi
    argTypes:
    - '&EventFd'
    - u32
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 7
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: KvmVm::unregister_irqfd
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::UnregisterIrqFd
    - usize::into
    - unregister_irqfd
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: 'fn unregister_irqfd(&self, fd: &EventFd, gsi: u32) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:568,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:568,1
    - Dst: vm::HypervisorVmError::CreateVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:571,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:571,1
    - Dst: check_extension_int
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:582,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:586,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:589,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:593,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - id
    - vm_ops
    argTypes:
    - u32
    - Option<Arc<dyn VmOps>>
    constantsTouched: []
    func_position:
      end: 594
      start: 563
    functionDepth: 7
    functionLinenumber: 563
    functionLinenumberEnd: 594
    functionName: KvmVm::create_vcpu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - check_extension_int
    - vm::HypervisorVmError::CreateVcpu
    - AtomicBool::new
    - Box::new
    - create_vcpu
    - usize::into
    - clone
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn create_vcpu(&self,id: u32,vm_ops: Option<Arc<dyn VmOps>>,) -> vm::Result<Box<dyn
      cpu::Vcpu>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KvmGicV3Its::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:601,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:601,1
    - Dst: vm::HypervisorVmError::CreateVgic
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:602,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:603,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:603,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&VgicConfig'
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 9
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: KvmVm::create_vgic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Mutex::new
    - Result::map_err
    - vm::HypervisorVmError::CreateVgic
    - KvmGicV3Its::new
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn create_vgic(&self, config: &VgicConfig) -> vm::Result<Arc<Mutex<dyn
      Vgic>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KvmAiaImsics::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:611,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:611,1
    - Dst: vm::HypervisorVmError::CreateVaia
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:612,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:613,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:613,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&VaiaConfig'
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 9
    functionLinenumber: 610
    functionLinenumberEnd: 614
    functionName: KvmVm::create_vaia
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - KvmAiaImsics::new
    - Arc::new
    - Mutex::new
    - Result::map_err
    - vm::HypervisorVmError::CreateVaia
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn create_vaia(&self, config: &VaiaConfig) -> vm::Result<Arc<Mutex<dyn
      Vaia>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kvm_ioctls::IoEventAddress::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:625,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:628,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:628,1
    - Dst: vm::HypervisorVmError::RegisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:631,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:631,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:632,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:632,1
    - Dst: vm::HypervisorVmError::RegisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:635,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:635,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:638,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:638,1
    - Dst: vm::HypervisorVmError::RegisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:640,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 3
    argNames:
    - fd
    - addr
    - datamatch
    argTypes:
    - '&EventFd'
    - '&IoEventAddress'
    - Option<vm::DataMatch>
    constantsTouched: []
    func_position:
      end: 642
      start: 619
    functionDepth: 7
    functionLinenumber: 619
    functionLinenumberEnd: 642
    functionName: KvmVm::register_ioevent
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - kvm_ioctls::IoEventAddress::from
    - map_err
    - vm::HypervisorVmError::RegisterIoEvent
    - register_ioevent
    - usize::into
    linkageType: ''
    returnType: vm::Result
    signature: 'fn register_ioevent(&self,fd: &EventFd,addr: &IoEventAddress,datamatch:
      Option<vm::DataMatch>,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kvm_ioctls::IoEventAddress::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:648,1
    - Dst: unregister_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:649,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:649,1
    - Dst: vm::HypervisorVmError::UnregisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:651,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - fd
    - addr
    argTypes:
    - '&EventFd'
    - '&IoEventAddress'
    constantsTouched: []
    func_position:
      end: 652
      start: 647
    functionDepth: 7
    functionLinenumber: 647
    functionLinenumberEnd: 652
    functionName: KvmVm::unregister_ioevent
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - kvm_ioctls::IoEventAddress::from
    - map_err
    - unregister_ioevent
    - vm::HypervisorVmError::UnregisterIoEvent
    - usize::into
    linkageType: ''
    returnType: vm::Result
    signature: 'fn unregister_ioevent(&self, fd: &EventFd, addr: &IoEventAddress)
      -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:663,1
    - Dst: Self::translate_msi_ext_dest_id
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:667,1
    - Dst: KvmVm::check_extension
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:674,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:695,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:701,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 63
    argCount: 2
    argNames:
    - gsi
    - config
    argTypes:
    - u32
    - '&InterruptSourceConfig'
    constantsTouched: []
    func_position:
      end: 709
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 709
    functionName: KvmVm::make_routing_entry
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - KvmVm::check_extension
    - Self::translate_msi_ext_dest_id
    - into
    - Default::default
    linkageType: ''
    returnType: IrqRoutingEntry
    signature: 'fn make_routing_entry(&self, gsi: u32, config: &InterruptSourceConfig)
      -> IrqRoutingEntry'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static [MsrEntry]::iter'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:716,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:716,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:716,1
    - Dst: kvm_bindings::fam_wrappers::KvmIrqRouting::from_entries
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:726,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:726,1
    - Dst: set_gsi_routing
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:728,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:728,1
    - Dst: vm::HypervisorVmError::SetGsiRouting
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:730,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - entries
    argTypes:
    - '&[IrqRoutingEntry]'
    constantsTouched: []
    func_position:
      end: 731
      start: 715
    functionDepth: 7
    functionLinenumber: 715
    functionLinenumberEnd: 731
    functionName: KvmVm::set_gsi_routing
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - set_gsi_routing
    - map_err
    - kvm_bindings::fam_wrappers::KvmIrqRouting::from_entries
    - unwrap
    - usize::into
    - Self::collect
    - '&''static [MsrEntry]::iter'
    - vm::HypervisorVmError::SetGsiRouting
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_gsi_routing(&self, entries: &[IrqRoutingEntry]) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:772,1
    - Dst: vm::HypervisorVmError::CreateUserMemory
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:772,1
    - Dst: write
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:778,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:778,1
    - Dst: insert
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:778,1
    - Dst: set_user_memory_region
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:795,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:795,1
    - Dst: vm::HypervisorVmError::CreateUserMemory
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:797,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:797,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 6
    argNames:
    - slot
    - guest_phys_addr
    - memory_size
    - userspace_addr
    - readonly
    - log_dirty_pages
    argTypes:
    - u32
    - u64
    - usize
    - '*mut u8'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 799
      start: 743
    functionDepth: 8
    functionLinenumber: 743
    functionLinenumberEnd: 799
    functionName: KvmVm::create_user_memory_region
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - insert
    - vm::HypervisorVmError::CreateUserMemory
    - map_err
    - Err
    - unwrap
    - usize::into
    - set_user_memory_region
    - write
    linkageType: ''
    returnType: vm::Result
    signature: 'unsafe fn create_user_memory_region(&self,slot: u32,guest_phys_addr:
      u64,memory_size: usize,userspace_addr: *mut u8,readonly: bool,log_dirty_pages:
      bool,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:835,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:835,1
    - Dst: remove
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:835,1
    - Dst: set_user_memory_region
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:841,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:841,1
    - Dst: vm::HypervisorVmError::RemoveUserMemory
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:843,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 6
    argNames:
    - slot
    - guest_phys_addr
    - memory_size
    - userspace_addr
    - readonly
    - log_dirty_pages
    argTypes:
    - u32
    - u64
    - usize
    - '*mut u8'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 845
      start: 807
    functionDepth: 8
    functionLinenumber: 807
    functionLinenumberEnd: 845
    functionName: KvmVm::remove_user_memory_region
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::RemoveUserMemory
    - map_err
    - remove
    - unwrap
    - usize::into
    - set_user_memory_region
    - write
    linkageType: ''
    returnType: vm::Result
    signature: 'unsafe fn remove_user_memory_region(&self,slot: u32,guest_phys_addr:
      u64,memory_size: usize,userspace_addr: *mut u8,readonly: bool,log_dirty_pages:
      bool,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:852,1
    - Dst: get_preferred_target
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:853,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:853,1
    - Dst: vm::HypervisorVmError::GetPreferredTarget
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:855,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:855,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:856,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - kvi
    argTypes:
    - '&mut crate::VcpuInit'
    constantsTouched: []
    func_position:
      end: 858
      start: 851
    functionDepth: 7
    functionLinenumber: 851
    functionLinenumberEnd: 858
    functionName: KvmVm::get_preferred_target
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - get_preferred_target
    - into
    - vm::HypervisorVmError::GetPreferredTarget
    - usize::into
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn get_preferred_target(&self, kvi: &mut crate::VcpuInit) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:867,1
    - Dst: enable_cap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:870,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:870,1
    - Dst: vm::HypervisorVmError::EnableSplitIrq
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:872,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:872,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 874
      start: 861
    functionDepth: 6
    functionLinenumber: 861
    functionLinenumberEnd: 874
    functionName: KvmVm::enable_split_irq
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Default::default
    - Ok
    - usize::into
    - enable_cap
    - vm::HypervisorVmError::EnableSplitIrq
    linkageType: ''
    returnType: vm::Result
    signature: fn enable_split_irq(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:888,1
    - Dst: enable_cap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:892,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:892,1
    - Dst: vm::HypervisorVmError::EnableX2ApicApi
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:894,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:894,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 877
    functionDepth: 6
    functionLinenumber: 877
    functionLinenumberEnd: 896
    functionName: KvmVm::enable_x2apic_api
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Default::default
    - vm::HypervisorVmError::EnableX2ApicApi
    - usize::into
    - enable_cap
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn enable_x2apic_api(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:901,1
    - Dst: get_clock
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:901,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:901,1
    - Dst: vm::HypervisorVmError::GetClock
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:904,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:904,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 906
      start: 900
    functionDepth: 7
    functionLinenumber: 900
    functionLinenumberEnd: 906
    functionName: KvmVm::get_clock
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::GetClock
    - get_clock
    - map_err
    - into
    - usize::into
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn get_clock(&self) -> vm::Result<ClockData>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:911,1
    - Dst: set_clock
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:912,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:912,1
    - Dst: vm::HypervisorVmError::SetClock
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:914,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&ClockData'
    constantsTouched: []
    func_position:
      end: 915
      start: 910
    functionDepth: 7
    functionLinenumber: 910
    functionLinenumberEnd: 915
    functionName: KvmVm::set_clock
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - into
    - vm::HypervisorVmError::SetClock
    - set_clock
    - usize::into
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_clock(&self, data: &ClockData) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KvmVm::create_device
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:925,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:925,1
    - Dst: vm::HypervisorVmError::CreatePassthroughDevice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:926,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 8
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: KvmVm::create_passthrough_device
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::CreatePassthroughDevice
    - KvmVm::create_device
    - vm::Result::map_err
    - usize::into
    linkageType: ''
    returnType: vm::Result
    signature: fn create_passthrough_device(&self) -> vm::Result<VfioDeviceFd>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:933,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:933,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:934,1
    - Dst: set_user_memory_region
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:944,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:944,1
    - Dst: vm::HypervisorVmError::StartDirtyLog
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:946,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:946,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 951
      start: 932
    functionDepth: 8
    functionLinenumber: 932
    functionLinenumberEnd: 951
    functionName: KvmVm::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - map_err
    - vm::HypervisorVmError::StartDirtyLog
    - unwrap
    - read
    - usize::into
    - set_user_memory_region
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn start_dirty_log(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:957,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:957,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:958,1
    - Dst: set_user_memory_region
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:968,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:968,1
    - Dst: vm::HypervisorVmError::StartDirtyLog
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:970,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:970,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 956
    functionDepth: 8
    functionLinenumber: 956
    functionLinenumberEnd: 975
    functionName: KvmVm::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - map_err
    - vm::HypervisorVmError::StartDirtyLog
    - unwrap
    - read
    - usize::into
    - set_user_memory_region
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn stop_dirty_log(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_dirty_log
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:981,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:981,1
    - Dst: vm::HypervisorVmError::GetDirtyLog
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:983,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - slot
    - _base_gpa
    - memory_size
    argTypes:
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 984
      start: 980
    functionDepth: 7
    functionLinenumber: 980
    functionLinenumberEnd: 984
    functionName: KvmVm::get_dirty_log
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - get_dirty_log
    - vm::HypervisorVmError::GetDirtyLog
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: 'fn get_dirty_log(&self, slot: u32, _base_gpa: u64, memory_size: u64)
      -> vm::Result<Vec<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:994,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:994,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:994,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:994,1
    - Dst: resize
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:995,1
    - Dst: kvm_bindings::kvm_cpuid_entry2::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:995,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1016,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1018,1
    - Dst: '&[T]::try_into'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1018,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1018,1
    - Dst: tdx_command
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1021,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1022,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 2
    argNames:
    - cpuid
    - max_vcpus
    argTypes:
    - '&[CpuIdEntry]'
    - u32
    constantsTouched: []
    func_position:
      end: 1028
      start: 990
    functionDepth: 16
    functionLinenumber: 990
    functionLinenumberEnd: 1028
    functionName: KvmVm::tdx_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - impl Iterator::map
    - std::result::Result::map_err
    - std::result::Result::unwrap
    - into
    - '&[T]::try_into'
    - as_raw_fd
    - len
    - as_slice
    - resize
    - Self::collect
    - kvm_bindings::kvm_cpuid_entry2::default
    - tdx_command
    linkageType: ''
    returnType: vm::Result
    signature: 'fn tdx_init(&self, cpuid: &[CpuIdEntry], max_vcpus: u32) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tdx_command
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1035,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1036,1
    - Dst: std::ptr::null
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1039,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1042
    functionName: KvmVm::tdx_finalize
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - as_raw_fd
    - tdx_command
    - std::ptr::null
    linkageType: ''
    returnType: vm::Result
    signature: fn tdx_finalize(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1066,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1066,1
    - Dst: tdx_command
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1069,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1070,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1072,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - host_address
    - guest_address
    - size
    - measure
    argTypes:
    - '*mut u8'
    - u64
    - usize
    - bool
    constantsTouched: []
    func_position:
      end: 1076
      start: 1050
    functionDepth: 7
    functionLinenumber: 1050
    functionLinenumberEnd: 1076
    functionName: KvmVm::tdx_init_memory_region
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - try_into
    - std::result::Result::map_err
    - u32::from
    - unwrap
    - as_raw_fd
    - tdx_command
    linkageType: ''
    returnType: vm::Result
    signature: 'unsafe fn tdx_init_memory_region(&self,host_address: *mut u8,guest_address:
      u64,size: usize,measure: bool,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1081
    functionName: KvmVm::as_any
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&dyn Any'
    signature: fn as_any(&self) -> &dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vmm_sys_util::ioctl::ioctl_with_val
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1108,1
    - Dst: KVM_MEMORY_ENCRYPT_OP
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1110,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1116,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1116,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - fd
    - command
    - flags
    - data
    argTypes:
    - '&RawFd'
    - TdxCommand
    - u32
    - '*const libc::c_void'
    constantsTouched: []
    func_position:
      end: 1119
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1119
    functionName: tdx_command
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 5
    functionsReached:
    - std::io::Error::last_os_error
    - KVM_MEMORY_ENCRYPT_OP
    - vmm_sys_util::ioctl::ioctl_with_val
    - Err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn tdx_command(fd: &RawFd,command: TdxCommand,flags: u32,data: *const
      libc::c_void,) -> std::result::Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_msr_index_list
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1132,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1132,1
    - Dst: hypervisor::HypervisorError::GetMsrList
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1134,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1131
    functionDepth: 7
    functionLinenumber: 1131
    functionLinenumberEnd: 1135
    functionName: KvmHypervisor::get_msr_list
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - usize::into
    - hypervisor::HypervisorError::GetMsrList
    - get_msr_index_list
    - map_err
    linkageType: ''
    returnType: hypervisor::Result
    signature: fn get_msr_list(&self) -> hypervisor::Result<MsrList>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Kvm::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1151,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1151,1
    - Dst: hypervisor::HypervisorError::VmCreate
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1151,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1151,1
    - Dst: get_api_version
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1152,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1155,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1158,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1150
    functionDepth: 5
    functionLinenumber: 1150
    functionLinenumberEnd: 1159
    functionName: KvmHypervisor::new
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 2
    functionsReached:
    - get_api_version
    - Arc::new
    - Err
    - Result::map_err
    - Kvm::new
    - hypervisor::HypervisorError::VmCreate
    - usize::into
    - Ok
    linkageType: ''
    returnType: hypervisor::Result
    signature: pub fn new() -> hypervisor::Result<Arc<dyn hypervisor::Hypervisor>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::metadata
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1163,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1164,1
    - Dst: kind
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1165,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1165,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1166,1
    - Dst: hypervisor::HypervisorError::HypervisorAvailableCheck
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1166,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1162
    functionDepth: 7
    functionLinenumber: 1162
    functionLinenumberEnd: 1170
    functionName: KvmHypervisor::is_available
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - std::fs::metadata
    - hypervisor::HypervisorError::HypervisorAvailableCheck
    - Err
    - into
    - kind
    - Ok
    linkageType: ''
    returnType: hypervisor::Result
    signature: pub fn is_available() -> hypervisor::Result<bool>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1191
    functionName: KvmHypervisor::hypervisor_type
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HypervisorType
    signature: fn hypervisor_type(&self) -> HypervisorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_extension
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1215,1
    - Dst: get_host_ipa_limit
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1216,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1216,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1216,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1221,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1223,1
    - Dst: create_vm_with_type
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1227,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1230,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1236,1
    - Dst: hypervisor::HypervisorError::VmCreate
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1236,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1236,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1242,1
    - Dst: KvmHypervisor::get_msr_list
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1246,1
    - Dst: hypervisor::Result::as_fam_struct_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1247,1
    - Dst: hypervisor::Result::as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1254,1
    - Dst: '&[T]::iter'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1255,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1255,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1259,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1259,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1262,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1262,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1262,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1268,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1268,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1270,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1270,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 83
    argCount: 1
    argNames:
    - _config
    argTypes:
    - HypervisorVmConfig
    constantsTouched: []
    func_position:
      end: 1273
      start: 1204
    functionDepth: 7
    functionLinenumber: 1204
    functionLinenumberEnd: 1273
    functionName: KvmHypervisor::create_vm
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - hypervisor::Result::as_slice
    - RwLock::new
    - hypervisor::Result::as_fam_struct_ref
    - get_host_ipa_limit
    - '&[T]::iter'
    - Ok
    - try_into
    - Arc::new
    - into
    - impl Iterator::enumerate
    - usize::into
    - check_extension
    - create_vm_with_type
    - usize::errno
    - Err
    - unwrap
    - KvmHypervisor::get_msr_list
    - hypervisor::HypervisorError::VmCreate
    linkageType: ''
    returnType: hypervisor::Result
    signature: 'fn create_vm(&self, _config: HypervisorVmConfig) -> hypervisor::Result<Arc<dyn
      vm::Vm>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86_64::check_required_kvm_extensions
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1276,1
    - Dst: KvmResult::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1276,1
    - Dst: hypervisor::HypervisorError::CheckExtensions
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1277,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1275
    functionDepth: 7
    functionLinenumber: 1275
    functionLinenumberEnd: 1278
    functionName: KvmHypervisor::check_required_extensions
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - x86_64::check_required_kvm_extensions
    - hypervisor::HypervisorError::CheckExtensions
    - KvmResult::map_err
    linkageType: ''
    returnType: hypervisor::Result
    signature: fn check_required_extensions(&self) -> hypervisor::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_supported_cpuid
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1285,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1285,1
    - Dst: hypervisor::HypervisorError::GetCpuId
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1288,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1288,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1290,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1290,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1290,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1290,1
    - Dst: collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1290,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1284
    functionDepth: 7
    functionLinenumber: 1284
    functionLinenumberEnd: 1293
    functionName: KvmHypervisor::get_supported_cpuid
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - hypervisor::HypervisorError::GetCpuId
    - map
    - map_err
    - get_supported_cpuid
    - into
    - Ok
    - as_slice
    - usize::into
    - collect
    linkageType: ''
    returnType: hypervisor::Result
    signature: fn get_supported_cpuid(&self) -> hypervisor::Result<Vec<CpuIdEntry>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_host_ipa_limit
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1301
    functionName: KvmHypervisor::get_host_ipa_limit
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_host_ipa_limit
    linkageType: ''
    returnType: i32
    signature: fn get_host_ipa_limit(&self) -> i32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1310,1
    - Dst: tdx_command
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1313,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1314,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1313,1
    - Dst: hypervisor::HypervisorError::TdxCapabilities
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1319,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1319,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1307
    functionDepth: 6
    functionLinenumber: 1307
    functionLinenumberEnd: 1322
    functionName: KvmHypervisor::tdx_capabilities
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - std::result::Result::map_err
    - usize::into
    - hypervisor::HypervisorError::TdxCapabilities
    - as_raw_fd
    - tdx_command
    - Ok
    linkageType: ''
    returnType: hypervisor::Result
    signature: fn tdx_capabilities(&self) -> hypervisor::Result<TdxCapabilities>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_guest_debug_hw_bps
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1337
    functionName: KvmHypervisor::get_guest_debug_hw_bps
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_guest_debug_hw_bps
    linkageType: ''
    returnType: usize
    signature: fn get_guest_debug_hw_bps(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_max_vcpus
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1341,1
    - Dst: min
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: KvmHypervisor::get_max_vcpus
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - min
    - get_max_vcpus
    linkageType: ''
    returnType: u32
    signature: fn get_max_vcpus(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kvm_bindings::kvm_regs::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1377,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1377,1
    - Dst: kvm_bindings::kvm_riscv_core::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1381,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1374
    functionDepth: 7
    functionLinenumber: 1374
    functionLinenumberEnd: 1383
    functionName: KvmVcpu::create_standard_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - Self::into
    - kvm_bindings::kvm_riscv_core::default
    - kvm_bindings::kvm_regs::default
    linkageType: ''
    returnType: StandardRegisters
    signature: fn create_standard_regs(&self) -> StandardRegisters
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kvm_riscv_core::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1508,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1565,1
    - Dst: String::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1507
    functionDepth: 6
    functionLinenumber: 1507
    functionLinenumberEnd: 1566
    functionName: KvmVcpu::get_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - kvm_riscv_core::default
    - String::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_regs(&self) -> cpu::Result<StandardRegisters>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1689,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&StandardRegisters'
    constantsTouched: []
    func_position:
      end: 1749
      start: 1686
    functionDepth: 7
    functionLinenumber: 1686
    functionLinenumberEnd: 1749
    functionName: KvmVcpu::set_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_regs(&self, state: &StandardRegisters) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1756,1
    - Dst: get_sregs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1756,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1756,1
    - Dst: cpu::HypervisorCpuError::GetSpecialRegs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1759,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1759,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1755
    functionDepth: 7
    functionLinenumber: 1755
    functionLinenumberEnd: 1761
    functionName: KvmVcpu::get_sregs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_sregs
    - map_err
    - into
    - cpu::HypervisorCpuError::GetSpecialRegs
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_sregs(&self) -> cpu::Result<SpecialRegisters>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1768,1
    - Dst: set_sregs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1769,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1769,1
    - Dst: cpu::HypervisorCpuError::SetSpecialRegs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1771,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - sregs
    argTypes:
    - '&SpecialRegisters'
    constantsTouched: []
    func_position:
      end: 1772
      start: 1767
    functionDepth: 7
    functionLinenumber: 1767
    functionLinenumberEnd: 1772
    functionName: KvmVcpu::set_sregs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_sregs
    - map_err
    - into
    - cpu::HypervisorCpuError::SetSpecialRegs
    - usize::into
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_sregs(&self, sregs: &SpecialRegisters) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1779,1
    - Dst: get_fpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1779,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1779,1
    - Dst: cpu::HypervisorCpuError::GetFloatingPointRegs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1782,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1782,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1778
    functionDepth: 7
    functionLinenumber: 1778
    functionLinenumberEnd: 1784
    functionName: KvmVcpu::get_fpu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - get_fpu
    - cpu::HypervisorCpuError::GetFloatingPointRegs
    - into
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_fpu(&self) -> cpu::Result<FpuState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1791,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1791,1
    - Dst: set_fpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1792,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1792,1
    - Dst: cpu::HypervisorCpuError::SetFloatingPointRegs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1794,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - fpu
    argTypes:
    - '&FpuState'
    constantsTouched: []
    func_position:
      end: 1795
      start: 1790
    functionDepth: 7
    functionLinenumber: 1790
    functionLinenumberEnd: 1795
    functionName: KvmVcpu::set_fpu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_fpu
    - map_err
    - into
    - cpu::HypervisorCpuError::SetFloatingPointRegs
    - usize::into
    - clone
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_fpu(&self, fpu: &FpuState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1803,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1803,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1803,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1803,1
    - Dst: <CpuId>::from_entries
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1804,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1804,1
    - Dst: cpu::HypervisorCpuError::SetCpuid
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1805,1
    - Dst: set_cpuid2
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1807,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1807,1
    - Dst: cpu::HypervisorCpuError::SetCpuid
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1809,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - cpuid
    argTypes:
    - '&[CpuIdEntry]'
    constantsTouched: []
    func_position:
      end: 1810
      start: 1801
    functionDepth: 7
    functionLinenumber: 1801
    functionLinenumberEnd: 1810
    functionName: KvmVcpu::set_cpuid2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - impl Iterator::map
    - <CpuId>::from_entries
    - map_err
    - into
    - cpu::HypervisorCpuError::SetCpuid
    - set_cpuid2
    - usize::into
    - Self::collect
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_cpuid2(&self, cpuid: &[CpuIdEntry]) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1819,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1823,1
    - Dst: enable_cap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1825,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1825,1
    - Dst: cpu::HypervisorCpuError::EnableHyperVSyncIc
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1827,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1816
    functionDepth: 16
    functionLinenumber: 1816
    functionLinenumberEnd: 1828
    functionName: KvmVcpu::enable_hyperv_synic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Default::default
    - store
    - cpu::HypervisorCpuError::EnableHyperVSyncIc
    - usize::into
    - enable_cap
    linkageType: ''
    returnType: cpu::Result
    signature: fn enable_hyperv_synic(&self) -> cpu::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cpuid2
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1835,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1835,1
    - Dst: cpu::HypervisorCpuError::GetCpuid
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1838,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1838,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1840,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1840,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1840,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1840,1
    - Dst: collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1840,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - num_entries
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1843
      start: 1834
    functionDepth: 7
    functionLinenumber: 1834
    functionLinenumberEnd: 1843
    functionName: KvmVcpu::get_cpuid2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - map_err
    - cpu::HypervisorCpuError::GetCpuid
    - collect
    - into
    - Ok
    - as_slice
    - usize::into
    - get_cpuid2
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_cpuid2(&self, num_entries: usize) -> cpu::Result<Vec<CpuIdEntry>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1850,1
    - Dst: get_lapic
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1850,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1850,1
    - Dst: cpu::HypervisorCpuError::GetlapicState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1853,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1853,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1849
    functionDepth: 7
    functionLinenumber: 1849
    functionLinenumberEnd: 1855
    functionName: KvmVcpu::get_lapic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - into
    - get_lapic
    - cpu::HypervisorCpuError::GetlapicState
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_lapic(&self) -> cpu::Result<LapicState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1862,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1862,1
    - Dst: set_lapic
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1863,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1863,1
    - Dst: cpu::HypervisorCpuError::SetLapicState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1865,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klapic
    argTypes:
    - '&LapicState'
    constantsTouched: []
    func_position:
      end: 1866
      start: 1861
    functionDepth: 7
    functionLinenumber: 1861
    functionLinenumberEnd: 1866
    functionName: KvmVcpu::set_lapic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::SetLapicState
    - map_err
    - into
    - usize::into
    - set_lapic
    - clone
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_lapic(&self, klapic: &LapicState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1873,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1873,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1873,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1873,1
    - Dst: MsrEntries::from_entries
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1874,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1874,1
    - Dst: get_msrs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1875,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1875,1
    - Dst: cpu::HypervisorCpuError::GetMsrEntries
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1878,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1878,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1880,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1881,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1881,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1881,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1883,1
    - Dst: "as_slice()[..succ]\n                .iter()\n                .map(|e|\
        \ (*e).into())\n                .collect::<Vec<MsrEntry>>"
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1881,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - msrs
    argTypes:
    - '&mut Vec<MsrEntry>'
    constantsTouched: []
    func_position:
      end: 1888
      start: 1872
    functionDepth: 7
    functionLinenumber: 1872
    functionLinenumberEnd: 1888
    functionName: KvmVcpu::get_msrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - impl Iterator::map
    - map_err
    - cpu::HypervisorCpuError::GetMsrEntries
    - "as_slice()[..succ]\n                .iter()\n                .map(|e| (*e).into())\n\
      \                .collect::<Vec<MsrEntry>>"
    - into
    - copy_from_slice
    - unwrap
    - get_msrs
    - as_slice
    - usize::into
    - Self::collect
    - MsrEntries::from_entries
    - Result::iter
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_msrs(&self, msrs: &mut Vec<MsrEntry>) -> cpu::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1896,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1896,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1896,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1896,1
    - Dst: MsrEntries::from_entries
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1897,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1897,1
    - Dst: set_msrs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1898,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1898,1
    - Dst: cpu::HypervisorCpuError::SetMsrEntries
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1900,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - msrs
    argTypes:
    - '&[MsrEntry]'
    constantsTouched: []
    func_position:
      end: 1901
      start: 1895
    functionDepth: 7
    functionLinenumber: 1895
    functionLinenumberEnd: 1901
    functionName: KvmVcpu::set_msrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - map_err
    - cpu::HypervisorCpuError::SetMsrEntries
    - set_msrs
    - into
    - unwrap
    - usize::into
    - Self::collect
    - MsrEntries::from_entries
    - Result::iter
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_msrs(&self, msrs: &[MsrEntry]) -> cpu::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1907,1
    - Dst: get_mp_state
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1907,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1907,1
    - Dst: cpu::HypervisorCpuError::GetMpState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1910,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1910,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1906
    functionDepth: 7
    functionLinenumber: 1906
    functionLinenumberEnd: 1912
    functionName: KvmVcpu::get_mp_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - cpu::HypervisorCpuError::GetMpState
    - map_err
    - into
    - get_mp_state
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_mp_state(&self) -> cpu::Result<MpState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_mp_state
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1918,1
    - Dst: cpu::Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1919,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1918,1
    - Dst: cpu::HypervisorCpuError::SetMpState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1920,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - mp_state
    argTypes:
    - MpState
    constantsTouched: []
    func_position:
      end: 1921
      start: 1917
    functionDepth: 7
    functionLinenumber: 1917
    functionLinenumberEnd: 1921
    functionName: KvmVcpu::set_mp_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 1
    functionsReached:
    - map_err
    - usize::into
    - cpu::HypervisorCpuError::SetMpState
    - set_mp_state
    - cpu::Result::into
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_mp_state(&self, mp_state: MpState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1928,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1928,1
    - Dst: cpu::HypervisorCpuError::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1931,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1931,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1934,1
    - Dst: cpu::HypervisorCpuError::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1934,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - gva
    - _flags
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1939
      start: 1927
    functionDepth: 7
    functionLinenumber: 1927
    functionLinenumberEnd: 1939
    functionName: KvmVcpu::translate_gva
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::TranslateVirtualAddress
    - map_err
    - Err
    - usize::into
    - translate_gva
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn translate_gva(&self, gva: u64, _flags: u64) -> cpu::Result<(u64,
      u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1945,1
    - Dst: pio_read
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1950,1
    - Dst: u64::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1951,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1950,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1950,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1953,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1953,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1956,1
    - Dst: pio_write
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1961,1
    - Dst: u64::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1962,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1961,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1961,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1964,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1964,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1967,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1970,1
    - Dst: cpu::VmExit::IoapicEoi
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1970,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1972,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1980,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1982,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1984,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1984,1
    - Dst: mmio_read
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1992,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1992,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1992,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1995,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1995,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:1998,1
    - Dst: mmio_write
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2002,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2002,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2002,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2005,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2005,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2008,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2010,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2012,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2013,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2015,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2015,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2020,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2021,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2022,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2022,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1944
    functionDepth: 9
    functionLinenumber: 1944
    functionLinenumberEnd: 2027
    functionName: KvmVcpu::run
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - run
    - map
    - mmio_write
    - map_err
    - usize::into
    - u64::into
    - usize::errno
    - pio_write
    - Err
    - cpu::HypervisorCpuError::RunVcpu
    - cpu::VmExit::IoapicEoi
    - mmio_read
    - pio_read
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn run(&mut self) -> std::result::Result<cpu::VmExit, cpu::HypervisorCpuError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kvmclock_ctrl
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2035,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2039,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2040,1
    - Dst: cpu::HypervisorCpuError::NotifyGuestClockPaused
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2040,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2040,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2034
    functionDepth: 7
    functionLinenumber: 2034
    functionLinenumberEnd: 2045
    functionName: KvmVcpu::notify_guest_clock_paused
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::errno
    - Err
    - kvmclock_ctrl
    - usize::into
    - cpu::HypervisorCpuError::NotifyGuestClockPaused
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn notify_guest_clock_paused(&self) -> cpu::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2061,1
    - Dst: TargetResult::iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2077,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2077,1
    - Dst: TargetResult::iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2085,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2085,1
    - Dst: set_guest_debug
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2097,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2097,1
    - Dst: cpu::HypervisorCpuError::SetDebugRegs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2099,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 67
    argCount: 2
    argNames:
    - addrs
    - singlestep
    argTypes:
    - '&[vm_memory::GuestAddress]'
    - bool
    constantsTouched: []
    func_position:
      end: 2100
      start: 2051
    functionDepth: 6
    functionLinenumber: 2051
    functionLinenumberEnd: 2100
    functionName: KvmVcpu::set_guest_debug
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_guest_debug
    - map_err
    - Default::default
    - cpu::HypervisorCpuError::SetDebugRegs
    - impl Iterator::enumerate
    - usize::into
    - TargetResult::iter
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_guest_debug(&self,addrs: &[vm_memory::GuestAddress],singlestep:
      bool,) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2105
    functionName: KvmVcpu::vcpu_get_finalized_features
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i32
    signature: fn vcpu_get_finalized_features(&self) -> i32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2119,1
    - Dst: as_any
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2123,1
    - Dst: "as_any()\n            .downcast_ref::<crate::kvm::KvmVm>"
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2123,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2123,1
    - Dst: check_extension
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2123,1
    - Dst: as_any
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2133,1
    - Dst: "as_any()\n                .downcast_ref::<crate::kvm::KvmVm>"
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2133,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2133,1
    - Dst: check_extension
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2133,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2147,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 3
    argNames:
    - vm
    - kvi
    - id
    argTypes:
    - '&dyn crate::Vm'
    - '&mut crate::VcpuInit'
    - u32
    constantsTouched: []
    func_position:
      end: 2150
      start: 2108
    functionDepth: 7
    functionLinenumber: 2108
    functionLinenumberEnd: 2150
    functionName: KvmVcpu::vcpu_set_processor_features
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - check_extension
    - "as_any()\n            .downcast_ref::<crate::kvm::KvmVm>"
    - into
    - unwrap
    - "as_any()\n                .downcast_ref::<crate::kvm::KvmVm>"
    - as_any
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn vcpu_set_processor_features(&self,vm: &dyn crate::Vm,kvi: &mut
      crate::VcpuInit,id: u32,) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kvm_bindings::kvm_vcpu_init::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2157,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2156
    functionDepth: 7
    functionLinenumber: 2156
    functionLinenumberEnd: 2158
    functionName: KvmVcpu::create_vcpu_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - Self::into
    - kvm_bindings::kvm_vcpu_init::default
    linkageType: ''
    returnType: crate::VcpuInit
    signature: fn create_vcpu_init(&self) -> crate::VcpuInit
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2162,1
    - Dst: vcpu_init
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2163,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2163,1
    - Dst: cpu::HypervisorCpuError::VcpuInit
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2165,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - kvi
    argTypes:
    - '&crate::VcpuInit'
    constantsTouched: []
    func_position:
      end: 2166
      start: 2161
    functionDepth: 7
    functionLinenumber: 2161
    functionLinenumberEnd: 2166
    functionName: KvmVcpu::vcpu_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::VcpuInit
    - vcpu_init
    - map_err
    - into
    - usize::into
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn vcpu_init(&self, kvi: &crate::VcpuInit) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_finalize
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2170,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2170,1
    - Dst: cpu::HypervisorCpuError::VcpuFinalize
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2172,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - feature
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 2173
      start: 2169
    functionDepth: 7
    functionLinenumber: 2169
    functionLinenumberEnd: 2173
    functionName: KvmVcpu::vcpu_finalize
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - vcpu_finalize
    - map_err
    - cpu::HypervisorCpuError::VcpuFinalize
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn vcpu_finalize(&self, feature: i32) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::Result::clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2181,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2181,1
    - Dst: get_reg_list
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2182,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2182,1
    - Dst: cpu::HypervisorCpuError::GetRegList
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2184,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2184,1
    - Dst: std::result::Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2185,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - reg_list
    argTypes:
    - '&mut RegList'
    constantsTouched: []
    func_position:
      end: 2187
      start: 2180
    functionDepth: 7
    functionLinenumber: 2180
    functionLinenumberEnd: 2187
    functionName: KvmVcpu::get_reg_list
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_reg_list
    - map_err
    - cpu::HypervisorCpuError::GetRegList
    - cpu::Result::clone
    - Self::into
    - std::result::Result::into
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_reg_list(&self, reg_list: &mut RegList) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_one_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2216,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2216,1
    - Dst: cpu::HypervisorCpuError::GetSysRegister
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2218,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2218,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2219,1
    - Dst: u64::from_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - sys_reg
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 2220
      start: 2193
    functionDepth: 7
    functionLinenumber: 2193
    functionLinenumberEnd: 2220
    functionName: KvmVcpu::get_sys_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::GetSysRegister
    - map_err
    - u64::from_le_bytes
    - get_one_reg
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_sys_reg(&self, sys_reg: u32) -> cpu::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _non_core_reg
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 2228
      start: 2226
    functionDepth: 0
    functionLinenumber: 2226
    functionLinenumberEnd: 2228
    functionName: KvmVcpu::get_non_core_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_non_core_reg(&self, _non_core_reg: u32) -> cpu::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_one_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2277,1
    - Dst: riscv64_reg_id
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2279,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2280,1
    - Dst: u64::to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2280,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2277,1
    - Dst: cpu::HypervisorCpuError::SetRiscvCoreRegister
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2282,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2282,1
    - Dst: set_one_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2286,1
    - Dst: riscv64_reg_id
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2288,1
    - Dst: u64::to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2289,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2286,1
    - Dst: cpu::HypervisorCpuError::SetRiscvCoreRegister
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2291,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2291,1
    - Dst: set_one_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2299,1
    - Dst: riscv64_reg_id
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2301,1
    - Dst: u64::to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2302,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2299,1
    - Dst: cpu::HypervisorCpuError::SetRiscvCoreRegister
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2304,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2304,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - cpu_id
    - boot_ip
    - fdt_start
    argTypes:
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 2307
      start: 2274
    functionDepth: 9
    functionLinenumber: 2274
    functionLinenumberEnd: 2307
    functionName: KvmVcpu::setup_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_one_reg
    - map_err
    - usize::into
    - u64::from
    - Ok
    - riscv64_reg_id
    - cpu::HypervisorCpuError::SetRiscvCoreRegister
    - u64::to_le_bytes
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn setup_regs(&self, cpu_id: u32, boot_ip: u64, fdt_start: u64) ->
      cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KvmVcpu::get_mp_state
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2497,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2497,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2498,1
    - Dst: KvmVcpu::get_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2501,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2501,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2506,1
    - Dst: kvm_bindings::RegList::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2507,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2507,1
    - Dst: get_reg_list
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2508,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2508,1
    - Dst: cpu::HypervisorCpuError::GetRegList
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2510,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2510,1
    - Dst: cpu::Result::retain
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2526,1
    - Dst: is_non_core_register
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2526,1
    - Dst: cpu::Result::as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2530,1
    - Dst: '&[T]::iter'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2531,1
    - Dst: get_one_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2533,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2533,1
    - Dst: cpu::HypervisorCpuError::GetSysRegister
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2535,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2535,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2536,1
    - Dst: u64::from_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2538,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2544,1
    - Dst: String::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2495
    functionDepth: 8
    functionLinenumber: 2495
    functionLinenumberEnd: 2545
    functionName: KvmVcpu::state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - cpu::HypervisorCpuError::GetRegList
    - cpu::Result::as_slice
    - is_non_core_register
    - get_one_reg
    - Result::unwrap
    - '&[T]::iter'
    - kvm_bindings::RegList::new
    - Ok
    - cpu::HypervisorCpuError::GetSysRegister
    - Vec::new
    - Default::default
    - into
    - String::into
    - usize::into
    - Result::push
    - get_reg_list
    - u64::from_le_bytes
    - KvmVcpu::get_regs
    - cpu::Result::retain
    - KvmVcpu::get_mp_state
    linkageType: ''
    returnType: cpu::Result
    signature: fn state(&self) -> cpu::Result<CpuState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2674,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2674,1
    - Dst: KvmVcpu::set_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2676,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2676,1
    - Dst: set_one_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2679,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2680,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2679,1
    - Dst: cpu::HypervisorCpuError::SetSysRegister
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2681,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2681,1
    - Dst: KvmVcpu::set_mp_state
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2684,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2684,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&CpuState'
    constantsTouched: []
    func_position:
      end: 2687
      start: 2673
    functionDepth: 7
    functionLinenumber: 2673
    functionLinenumberEnd: 2687
    functionName: KvmVcpu::set_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_one_reg
    - map_err
    - to_le_bytes
    - KvmVcpu::set_regs
    - KvmVcpu::set_mp_state
    - into
    - cpu::HypervisorCpuError::SetSysRegister
    - Self::into
    - usize::into
    - String::clone
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_state(&self, state: &CpuState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tdx_command
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2699,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2699,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hob_address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 2701
      start: 2693
    functionDepth: 2
    functionLinenumber: 2693
    functionLinenumberEnd: 2701
    functionName: KvmVcpu::tdx_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - as_raw_fd
    - tdx_command
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn tdx_init(&self, hob_address: u64) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_kvm_immediate_exit
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2707,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - exit
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2708
      start: 2706
    functionDepth: 7
    functionLinenumber: 2706
    functionLinenumberEnd: 2708
    functionName: KvmVcpu::set_immediate_exit
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_kvm_immediate_exit
    - into
    linkageType: ''
    returnType: void
    signature: 'fn set_immediate_exit(&mut self, exit: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_kvm_run
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2715,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2727,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2731,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2733,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2714
    functionDepth: 0
    functionLinenumber: 2714
    functionLinenumberEnd: 2737
    functionName: KvmVcpu::get_tdx_exit_details
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_kvm_run
    - Ok
    - Err
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_tdx_exit_details(&mut self) -> cpu::Result<TdxExitDetails>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_kvm_run
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - status
    argTypes:
    - TdxExitStatus
    constantsTouched: []
    func_position:
      end: 2757
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2757
    functionName: KvmVcpu::set_tdx_status
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_kvm_run
    linkageType: ''
    returnType: void
    signature: 'fn set_tdx_status(&mut self, status: TdxExitStatus)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2767,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2768,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2769,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2770,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2771,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2772,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2773,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2774,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2775,1
    - Dst: msr_data
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2776,1
    - Dst: msr_data
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2782
    functionName: KvmVcpu::boot_msr_entries
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - msr_data
    - msr
    linkageType: ''
    returnType: '&''static [MsrEntry]'
    signature: fn boot_msr_entries(&self) -> &'static [MsrEntry]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2788,1
    - Dst: has_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2792,1
    - Dst: is_ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2785
    functionDepth: 8
    functionLinenumber: 2785
    functionLinenumberEnd: 2793
    functionName: KvmVcpu::has_pmu_support
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - is_ok
    - u64::from
    - has_device_attr
    linkageType: ''
    returnType: bool
    signature: fn has_pmu_support(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2799,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2805,1
    - Dst: set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2809,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2809,1
    - Dst: set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2812,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - irq
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 2815
      start: 2796
    functionDepth: 8
    functionLinenumber: 2796
    functionLinenumberEnd: 2815
    functionName: KvmVcpu::init_pmu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - set_device_attr
    - map_err
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn init_pmu(&self, irq: u32) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_tsc_khz
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2822,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2824,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2825,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2827,1
    - Dst: cpu::HypervisorCpuError::GetTscKhz
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2827,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2827,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2830,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2832
      start: 2821
    functionDepth: 7
    functionLinenumber: 2821
    functionLinenumberEnd: 2832
    functionName: KvmVcpu::tsc_khz
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_tsc_khz
    - cpu::HypervisorCpuError::GetTscKhz
    - usize::errno
    - Err
    - usize::into
    - Some
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn tsc_khz(&self) -> cpu::Result<Option<u32>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_tsc_khz
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2839,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2841,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2842,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2844,1
    - Dst: cpu::HypervisorCpuError::SetTscKhz
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2844,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2844,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - freq
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 2849
      start: 2838
    functionDepth: 7
    functionLinenumber: 2838
    functionLinenumberEnd: 2849
    functionName: KvmVcpu::set_tsc_khz
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::errno
    - Err
    - set_tsc_khz
    - cpu::HypervisorCpuError::SetTscKhz
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_tsc_khz(&self, freq: u32) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nmi
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2856,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2858,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2859,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2861,1
    - Dst: cpu::HypervisorCpuError::Nmi
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2861,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2861,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2855
    functionDepth: 16
    functionLinenumber: 2855
    functionLinenumberEnd: 2866
    functionName: KvmVcpu::nmi
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::Nmi
    - nmi
    - usize::errno
    - Err
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn nmi(&self) -> cpu::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2875,1
    - Dst: get_xsave
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2875,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2875,1
    - Dst: cpu::HypervisorCpuError::GetXsaveState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2878,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2878,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2874
    functionDepth: 7
    functionLinenumber: 2874
    functionLinenumberEnd: 2880
    functionName: KvmVcpu::get_xsave
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - get_xsave
    - map_err
    - into
    - cpu::HypervisorCpuError::GetXsaveState
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_xsave(&self) -> cpu::Result<XsaveState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2887,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2887,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2887,1
    - Dst: cpu::HypervisorCpuError::GetXsaveState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2890,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2890,1
    - Dst: set_xsave
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2894,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2894,1
    - Dst: cpu::HypervisorCpuError::SetXsaveState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2896,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2896,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - xsave
    argTypes:
    - '&XsaveState'
    constantsTouched: []
    func_position:
      end: 2898
      start: 2886
    functionDepth: 7
    functionLinenumber: 2886
    functionLinenumberEnd: 2898
    functionName: KvmVcpu::set_xsave
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - set_xsave
    - try_into
    - map_err
    - cpu::HypervisorCpuError::SetXsaveState
    - cpu::HypervisorCpuError::GetXsaveState
    - usize::into
    - clone
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_xsave(&self, xsave: &XsaveState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<kvm_bindings::kvm_xsave>
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2912,1
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2912,1
    - Dst: size_of::<<kvm_xsave2 as FamStruct>::Entry>
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2913,1
    - Dst: xsave2::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2915,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2915,1
    - Dst: cpu::HypervisorCpuError::GetXsaveState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2915,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2915,1
    - Dst: get_xsave2
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2918,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2918,1
    - Dst: cpu::HypervisorCpuError::GetXsaveState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2920,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2920,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2922,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2907
    functionDepth: 5
    functionLinenumber: 2907
    functionLinenumberEnd: 2923
    functionName: KvmVcpu::get_xsave2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - size_of::<<kvm_xsave2 as FamStruct>::Entry>
    - xsave2::new
    - get_xsave2
    - map_err
    - usize::into
    - div_ceil
    - into
    - cpu::HypervisorCpuError::GetXsaveState
    - Result::map_err
    - size_of::<kvm_bindings::kvm_xsave>
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: pub fn get_xsave2(&self) -> cpu::Result<XsaveState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&XsaveState::to_xsave2'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2936,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2936,1
    - Dst: cpu::HypervisorCpuError::SetXsaveState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2938,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2938,1
    - Dst: set_xsave2
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2941,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2941,1
    - Dst: cpu::HypervisorCpuError::SetXsaveState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2943,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - xsave_state
    argTypes:
    - '&XsaveState'
    constantsTouched: []
    func_position:
      end: 2945
      start: 2931
    functionDepth: 6
    functionLinenumber: 2931
    functionLinenumberEnd: 2945
    functionName: KvmVcpu::set_xsave2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - '&XsaveState::to_xsave2'
    - map_err
    - cpu::HypervisorCpuError::SetXsaveState
    - Result::map_err
    - usize::into
    - set_xsave2
    linkageType: ''
    returnType: cpu::Result
    signature: 'pub fn set_xsave2(&self, xsave_state: &XsaveState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_xcrs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2952,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2952,1
    - Dst: cpu::HypervisorCpuError::GetXcsr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2954,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2951
    functionDepth: 7
    functionLinenumber: 2951
    functionLinenumberEnd: 2955
    functionName: KvmVcpu::get_xcrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - cpu::HypervisorCpuError::GetXcsr
    - map_err
    - get_xcrs
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_xcrs(&self) -> cpu::Result<ExtendedControlRegisters>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_xcrs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2962,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2962,1
    - Dst: cpu::HypervisorCpuError::SetXcsr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2964,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - xcrs
    argTypes:
    - '&ExtendedControlRegisters'
    constantsTouched: []
    func_position:
      end: 2965
      start: 2961
    functionDepth: 7
    functionLinenumber: 2961
    functionLinenumberEnd: 2965
    functionName: KvmVcpu::set_xcrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - cpu::HypervisorCpuError::SetXcsr
    - set_xcrs
    - map_err
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_xcrs(&self, xcrs: &ExtendedControlRegisters) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_vcpu_events
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2973,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2973,1
    - Dst: cpu::HypervisorCpuError::GetVcpuEvents
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2975,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2972
    functionDepth: 7
    functionLinenumber: 2972
    functionLinenumberEnd: 2976
    functionName: KvmVcpu::get_vcpu_events
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - cpu::HypervisorCpuError::GetVcpuEvents
    - map_err
    - get_vcpu_events
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_vcpu_events(&self) -> cpu::Result<VcpuEvents>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_vcpu_events
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2984,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2984,1
    - Dst: cpu::HypervisorCpuError::SetVcpuEvents
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2986,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - events
    argTypes:
    - '&VcpuEvents'
    constantsTouched: []
    func_position:
      end: 2987
      start: 2983
    functionDepth: 7
    functionLinenumber: 2983
    functionLinenumberEnd: 2987
    functionName: KvmVcpu::set_vcpu_events
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - set_vcpu_events
    - map_err
    - cpu::HypervisorCpuError::SetVcpuEvents
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_vcpu_events(&self, events: &VcpuEvents) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KvmNestedStateBuffer::empty
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2993,1
    - Dst: get_nested_state
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2995,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2995,1
    - Dst: cpu::HypervisorCpuError::GetNestedState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2998,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:2998,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3001,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3001,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2992
    functionDepth: 7
    functionLinenumber: 2992
    functionLinenumberEnd: 3005
    functionName: KvmVcpu::nested_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::GetNestedState
    - map_err
    - KvmNestedStateBuffer::empty
    - get_nested_state
    - usize::into
    - Some
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn nested_state(&self) -> cpu::Result<Option<KvmNestedStateBuffer>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_nested_state
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3010,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3010,1
    - Dst: cpu::HypervisorCpuError::GetNestedState
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3012,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&KvmNestedStateBuffer'
    constantsTouched: []
    func_position:
      end: 3013
      start: 3009
    functionDepth: 7
    functionLinenumber: 3009
    functionLinenumberEnd: 3013
    functionName: KvmVcpu::set_nested_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - set_nested_state
    - cpu::HypervisorCpuError::GetNestedState
    - map_err
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_nested_state(&self, state: &KvmNestedStateBuffer) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KvmHypervisor::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3023,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3023,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3024,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3025,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3026,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3025,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3028,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3028,1
    - Dst: StandardRegisters::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3030,1
    - Dst: set_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3068,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs:3068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3020
    functionDepth: 6
    functionLinenumber: 3020
    functionLinenumberEnd: 3070
    functionName: unit_tests::test_get_and_set_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - Arc::new
    - Result::create_vm
    - set_regs
    - KvmHypervisor::new
    - create_vcpu
    - hypervisor::Result::expect
    - HypervisorVmConfig::default
    - unwrap
    - StandardRegisters::from
    - hypervisor::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_get_and_set_regs()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: KvmAiaImsics::version
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn version() -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::get_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:44,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:47,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:55,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:58,1
    - Dst: Self::get_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:65,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:68,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:77,1
    - Dst: leading_zeros
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:77,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:78,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:81,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:89,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:92,1
    - Dst: riscv_imsic_addr_of
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:105,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:106,1
    - Dst: riscv_imsic_attr_of
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:109,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:116,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 80
    argCount: 1
    argNames:
    - nr_irqs
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 123
      start: 39
    functionDepth: 8
    functionLinenumber: 39
    functionLinenumberEnd: 123
    functionName: KvmAiaImsics::init_device_attributes
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached:
    - leading_zeros
    - std::cmp::max
    - Self::set_device_attribute
    - riscv_imsic_addr_of
    - u64::from
    - riscv_imsic_attr_of
    - Self::get_device_attribute
    linkageType: ''
    returnType: Result
    signature: 'fn init_device_attributes(&mut self, nr_irqs: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::version
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:128,1
    - Dst: create_device
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:133,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:133,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:138,1
    - Dst: to_kvm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:138,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - vm
    argTypes:
    - '&KvmVm'
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: KvmAiaImsics::create_device
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached:
    - to_kvm
    - unwrap
    - create_device
    - vm::Result::map_err
    - Self::version
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_device(vm: &KvmVm) -> Result<DeviceFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::get_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:157,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:157,1
    - Dst: Error::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:158,1
    - Dst: HypervisorDeviceError::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:158,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - device
    - group
    - attr
    - addr
    - flags
    argTypes:
    - '&DeviceFd'
    - u32
    - u64
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 161
      start: 142
    functionDepth: 7
    functionLinenumber: 142
    functionLinenumberEnd: 161
    functionName: KvmAiaImsics::get_device_attribute
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached:
    - Error::GetDeviceAttribute
    - map_err
    - HypervisorDeviceError::GetDeviceAttribute
    - String::get_device_attr
    - usize::into
    linkageType: ''
    returnType: Result
    signature: 'fn get_device_attribute(device: &DeviceFd,group: u32,attr: u64,addr:
      u64,flags: u32,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:177,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:177,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:178,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:178,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - device
    - group
    - attr
    - addr
    - flags
    argTypes:
    - '&DeviceFd'
    - u32
    - u64
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 7
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: KvmAiaImsics::set_device_attribute
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached:
    - map_err
    - HypervisorDeviceError::SetDeviceAttribute
    - Error::SetDeviceAttribute
    - usize::into
    - String::set_device_attr
    linkageType: ''
    returnType: Result
    signature: 'fn set_device_attribute(device: &DeviceFd,group: u32,attr: u64,addr:
      u64,flags: u32,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_any
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:185,1
    - Dst: as_any().downcast_ref::<KvmVm>
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:185,1
    - Dst: expect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:185,1
    - Dst: Self::create_device
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:187,1
    - Dst: init_device_attributes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:196,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - vm
    - config
    argTypes:
    - '&dyn Vm'
    - '&VaiaConfig'
    constantsTouched: []
    func_position:
      end: 199
      start: 183
    functionDepth: 8
    functionLinenumber: 183
    functionLinenumberEnd: 199
    functionName: KvmAiaImsics::new
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 1
    functionsReached:
    - expect
    - as_any().downcast_ref::<KvmVm>
    - init_device_attributes
    - Self::create_device
    - as_any
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(vm: &dyn Vm, config: &VaiaConfig) -> Result<KvmAiaImsics>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: KvmAiaImsics::aplic_compatibility
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: fn aplic_compatibility(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: KvmAiaImsics::aplic_properties
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u32; 4]'
    signature: fn aplic_properties(&self) -> [u32; 4]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: KvmAiaImsics::imsic_compatibility
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: fn imsic_compatibility(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: KvmAiaImsics::imsic_properties
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u32; 4]'
    signature: fn imsic_properties(&self) -> [u32; 4]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: KvmAiaImsics::vcpu_count
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn vcpu_count(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: KvmAiaImsics::msi_compatible
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn msi_compatible(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: KvmAiaImsics::as_any_concrete_mut
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_concrete_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: KvmAiaImsics::state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn state(&self) -> Result<AiaImsicsState>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _state
    argTypes:
    - '&AiaImsicsState'
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: KvmAiaImsics::set_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn set_state(&mut self, _state: &AiaImsicsState) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: unit_tests::create_test_vaia_config
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VaiaConfig
    signature: fn create_test_vaia_config() -> VaiaConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:269,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:269,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:270,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:270,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:270,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:271,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:271,1
    - Dst: create_test_vaia_config
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: unit_tests::test_create_aia
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - Result::create_vm
    - create_test_vaia_config
    - create_vcpu
    - HypervisorVmConfig::default
    - Result::unwrap
    - hypervisor::Result::unwrap
    - crate::new
    linkageType: ''
    returnType: void
    signature: fn test_create_aia()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/mod.rs:53,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/mod.rs:54,1
    - Dst: std::mem::size_of::<u64>
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/mod.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 22
    functionDepth: 8
    functionLinenumber: 22
    functionLinenumberEnd: 79
    functionName: riscv64_reg_id
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/mod.rs
    functionUses: 1
    functionsReached:
    - u64::from
    - std::mem::size_of::<u64>
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - regid
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: is_non_core_register
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_non_core_register(regid: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - kvm
    argTypes:
    - '&Kvm'
    constantsTouched: []
    func_position:
      end: 67
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 67
    functionName: check_required_kvm_extensions
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    linkageType: ''
    returnType: KvmResult
    signature: 'pub fn check_required_kvm_extensions(kvm: &Kvm) -> KvmResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/mod.rs:25,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/mod.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 57
    functionName: arm64_core_reg_id
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/mod.rs
    functionUses: 1
    functionsReached:
    - u64::from
    - mem::size_of::<u32>
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - regid
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: is_system_register
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_system_register(regid: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: VGIC_DIST_REG
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:89,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:89,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:90,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:90,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:90,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - gic
    - offset
    - val
    argTypes:
    - '&DeviceFd'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 7
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: dist_attr_set
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 3
    functionsReached:
    - map_err
    - HypervisorDeviceError::SetDeviceAttribute
    - Error::SetDeviceAttribute
    - usize::into
    - vm::Result::set_device_attr
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn dist_attr_set(gic: &DeviceFd, offset: u32, val: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::get_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:107,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:107,1
    - Dst: Error::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:108,1
    - Dst: HypervisorDeviceError::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:108,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:108,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - gic
    - offset
    argTypes:
    - '&DeviceFd'
    - u32
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 7
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: dist_attr_get
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 3
    functionsReached:
    - Error::GetDeviceAttribute
    - map_err
    - HypervisorDeviceError::GetDeviceAttribute
    - vm::Result::get_device_attr
    - usize::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn dist_attr_get(gic: &DeviceFd, offset: u32) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dist_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - gic
    argTypes:
    - '&DeviceFd'
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 8
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: read_ctlr
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 1
    functionsReached:
    - dist_attr_get
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_ctlr(gic: &DeviceFd) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dist_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - gic
    - val
    argTypes:
    - '&DeviceFd'
    - u32
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 8
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: write_ctlr
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 1
    functionsReached:
    - dist_attr_set
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_ctlr(gic: &DeviceFd, val: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::get_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:134,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:134,1
    - Dst: Error::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:135,1
    - Dst: HypervisorDeviceError::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:135,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:135,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - gic
    argTypes:
    - '&DeviceFd'
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: get_interrupts_num
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 1
    functionsReached:
    - Error::GetDeviceAttribute
    - map_err
    - HypervisorDeviceError::GetDeviceAttribute
    - vm::Result::get_device_attr
    - usize::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn get_interrupts_num(gic: &DeviceFd) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_interrupts_num
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:147,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:159,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 3
    argNames:
    - gic
    - reg
    - base
    argTypes:
    - '&DeviceFd'
    - '&DistReg'
    - u32
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 8
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: compute_reg_len
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 2
    functionsReached:
    - is_multiple_of
    - get_interrupts_num
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn compute_reg_len(gic: &DeviceFd, reg: &DistReg, base: u32) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compute_reg_len
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:172,1
    - Dst: dist_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:175,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - gic
    - state
    argTypes:
    - '&DeviceFd'
    - '&[u32]'
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 9
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: set_dist_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 2
    functionsReached:
    - compute_reg_len
    - dist_attr_set
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_dist_regs(gic: &DeviceFd, state: &[u32]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:184,1
    - Dst: compute_reg_len
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:188,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:191,1
    - Dst: dist_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:191,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - gic
    argTypes:
    - '&DeviceFd'
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: get_dist_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
    functionUses: 2
    functionsReached:
    - Vec::new
    - compute_reg_len
    - dist_attr_get
    - String::push
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_dist_regs(gic: &DeviceFd) -> Result<Vec<u32>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: arm64_vgic_sys_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arm64_vgic_sys_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: SYS_ICC_AP0Rn_EL1
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
    functionUses: 0
    functionsReached:
    - arm64_vgic_sys_reg
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arm64_vgic_sys_reg
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: SYS_ICC_AP1Rn_EL1
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
    functionUses: 0
    functionsReached:
    - arm64_vgic_sys_reg
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:92,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:92,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:93,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:93,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:93,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - gic
    - offset
    - typer
    - val
    argTypes:
    - '&DeviceFd'
    - u64
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 7
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: icc_attr_set
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
    functionUses: 1
    functionsReached:
    - map_err
    - HypervisorDeviceError::SetDeviceAttribute
    - Error::SetDeviceAttribute
    - usize::into
    - vm::Result::set_device_attr
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn icc_attr_set(gic: &DeviceFd, offset: u64, typer: u64, val: u32)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::get_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:110,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:110,1
    - Dst: Error::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:111,1
    - Dst: HypervisorDeviceError::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:111,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:111,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - gic
    - offset
    - typer
    argTypes:
    - '&DeviceFd'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 7
    functionLinenumber: 99
    functionLinenumberEnd: 115
    functionName: icc_attr_get
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
    functionUses: 1
    functionsReached:
    - Error::GetDeviceAttribute
    - map_err
    - HypervisorDeviceError::GetDeviceAttribute
    - vm::Result::get_device_attr
    - usize::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn icc_attr_get(gic: &DeviceFd, offset: u64, typer: u64) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:119,1
    - Dst: icc_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:128,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:137,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:148,1
    - Dst: icc_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:148,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:156,1
    - Dst: icc_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:156,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:159,1
    - Dst: icc_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:159,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:163,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 2
    argNames:
    - gic
    - gicr_typer
    argTypes:
    - '&DeviceFd'
    - '&[u64]'
    constantsTouched: []
    func_position:
      end: 164
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 164
    functionName: get_icc_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
    functionUses: 2
    functionsReached:
    - icc_attr_get
    - String::push
    - Ok
    - Vec::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_icc_regs(gic: &DeviceFd, gicr_typer: &[u64]) -> Result<Vec<u32>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icc_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:180,1
    - Dst: icc_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:191,1
    - Dst: icc_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:196,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs:200,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 3
    argNames:
    - gic
    - gicr_typer
    - state
    argTypes:
    - '&DeviceFd'
    - '&[u64]'
    - '&[u32]'
    constantsTouched: []
    func_position:
      end: 201
      start: 167
    functionDepth: 8
    functionLinenumber: 167
    functionLinenumberEnd: 201
    functionName: set_icc_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
    functionUses: 2
    functionsReached:
    - icc_attr_set
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_icc_regs(gic: &DeviceFd, gicr_typer: &[u64], state: &[u32])
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&DeviceFd::set_device_attr'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:37,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:37,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:39,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:39,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - its_device
    - group
    - attr
    - val
    argTypes:
    - '&DeviceFd'
    - u32
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: gicv3_its_attr_set
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 1
    functionsReached:
    - map_err
    - HypervisorDeviceError::SetDeviceAttribute
    - Error::SetDeviceAttribute
    - usize::into
    - '&DeviceFd::set_device_attr'
    linkageType: ''
    returnType: Result
    signature: 'fn gicv3_its_attr_set(its_device: &DeviceFd, group: u32, attr: u32,
      val: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&DeviceFd::get_device_attr'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:53,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:53,1
    - Dst: Error::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:54,1
    - Dst: HypervisorDeviceError::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:54,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:54,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - its_device
    - group
    - attr
    argTypes:
    - '&DeviceFd'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 7
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: gicv3_its_attr_get
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 1
    functionsReached:
    - Error::GetDeviceAttribute
    - map_err
    - HypervisorDeviceError::GetDeviceAttribute
    - '&DeviceFd::get_device_attr'
    - usize::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn gicv3_its_attr_get(its_device: &DeviceFd, group: u32, attr: u32)
      -> Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:65,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:67,1
    - Dst: '&DeviceFd::set_device_attr'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:76,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:76,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:78,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:78,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - its_device
    - save
    argTypes:
    - '&DeviceFd'
    - bool
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 8
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: gicv3_its_tables_access
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 2
    functionsReached:
    - map_err
    - HypervisorDeviceError::SetDeviceAttribute
    - u64::from
    - Error::SetDeviceAttribute
    - usize::into
    - '&DeviceFd::set_device_attr'
    linkageType: ''
    returnType: Result
    signature: 'pub fn gicv3_its_tables_access(its_device: &DeviceFd, save: bool)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - GicState
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Gicv3ItsState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(state: GicState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GicState::MshvGicV2M
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - state
    argTypes:
    - MshvGicV2MState
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: GicState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - GicState::MshvGicV2M
    linkageType: ''
    returnType: Self
    signature: 'fn from(state: MshvGicV2MState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: KvmGicV3Its::version
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn version() -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:158,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:161,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:167,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:170,1
    - Dst: create_device
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:182,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:182,1
    - Dst: to_kvm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:187,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:187,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:189,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:192,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:197,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:200,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:205,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:211,1
    - Dst: Self::set_device_attribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:220,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 61
    argCount: 2
    argNames:
    - vm
    - nr_irqs
    argTypes:
    - '&KvmVm'
    - u32
    constantsTouched: []
    func_position:
      end: 227
      start: 155
    functionDepth: 8
    functionLinenumber: 155
    functionLinenumberEnd: 227
    functionName: KvmGicV3Its::init_device_attributes
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - to_kvm
    - Some
    - Self::set_device_attribute
    - u64::from
    - unwrap
    - create_device
    - vm::Result::map_err
    linkageType: ''
    returnType: Result
    signature: 'fn init_device_attributes(&mut self, vm: &KvmVm, nr_irqs: u32) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::version
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:232,1
    - Dst: create_device
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:237,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:237,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:242,1
    - Dst: to_kvm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:242,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - vm
    argTypes:
    - '&KvmVm'
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 8
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: KvmGicV3Its::create_device
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - to_kvm
    - unwrap
    - create_device
    - vm::Result::map_err
    - Self::version
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_device(vm: &KvmVm) -> Result<DeviceFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:259,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:259,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:260,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:260,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - device
    - group
    - attr
    - addr
    - flags
    argTypes:
    - '&DeviceFd'
    - u32
    - u64
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 7
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: KvmGicV3Its::set_device_attribute
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - HypervisorDeviceError::SetDeviceAttribute
    - Error::SetDeviceAttribute
    - usize::into
    - String::set_device_attr
    linkageType: ''
    returnType: Result
    signature: 'fn set_device_attribute(device: &DeviceFd,group: u32,attr: u64,addr:
      u64,flags: u32,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_any
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:267,1
    - Dst: as_any().downcast_ref::<KvmVm>
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:267,1
    - Dst: expect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:267,1
    - Dst: Self::create_device
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:269,1
    - Dst: init_device_attributes
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:284,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - vm
    - config
    argTypes:
    - '&dyn Vm'
    - '&VgicConfig'
    constantsTouched: []
    func_position:
      end: 287
      start: 265
    functionDepth: 8
    functionLinenumber: 265
    functionLinenumberEnd: 287
    functionName: KvmGicV3Its::new
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 5
    functionsReached:
    - expect
    - as_any().downcast_ref::<KvmVm>
    - init_device_attributes
    - Self::create_device
    - as_any
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(vm: &dyn Vm, config: &VgicConfig) -> Result<KvmGicV3Its>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: KvmGicV3Its::fdt_compatibility
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: fn fdt_compatibility(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: KvmGicV3Its::msi_compatible
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn msi_compatible(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: KvmGicV3Its::msi_compatibility
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: fn msi_compatibility(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: KvmGicV3Its::fdt_maint_irq
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn fdt_maint_irq(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: KvmGicV3Its::vcpu_count
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn vcpu_count(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: KvmGicV3Its::device_properties
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u64; 4]'
    signature: fn device_properties(&self) -> [u64; 4]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: KvmGicV3Its::msi_properties
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u64; 2]'
    signature: fn msi_properties(&self) -> [u64; 2]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redist_regs::construct_gicr_typers
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vcpu_states
    argTypes:
    - '&[CpuState]'
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 6
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: KvmGicV3Its::set_gicr_typers
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - redist_regs::construct_gicr_typers
    linkageType: ''
    returnType: void
    signature: 'fn set_gicr_typers(&mut self, vcpu_states: &[CpuState])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: KvmGicV3Its::as_any_concrete_mut
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_concrete_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:335,1
    - Dst: dist_regs::read_ctlr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:337,1
    - Dst: dist_regs::get_dist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:339,1
    - Dst: redist_regs::get_redist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:341,1
    - Dst: icc_regs::get_icc_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:343,1
    - Dst: gicv3_its_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:347,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:348,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:348,1
    - Dst: gicv3_its_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:354,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:355,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:355,1
    - Dst: gicv3_its_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:360,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:361,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:361,1
    - Dst: gicv3_its_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:366,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:367,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:367,1
    - Dst: gicv3_its_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:372,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:373,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:373,1
    - Dst: gicv3_its_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:378,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:379,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:379,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:384,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 334
    functionDepth: 9
    functionLinenumber: 334
    functionLinenumberEnd: 399
    functionName: KvmGicV3Its::state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - dist_regs::read_ctlr
    - icc_regs::get_icc_regs
    - as_ref
    - into
    - redist_regs::get_redist_regs
    - dist_regs::get_dist_regs
    - gicv3_its_attr_get
    - unwrap
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn state(&self) -> Result<GicState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:403,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:403,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:405,1
    - Dst: dist_regs::write_ctlr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:407,1
    - Dst: dist_regs::set_dist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:409,1
    - Dst: redist_regs::set_redist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:411,1
    - Dst: icc_regs::set_icc_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:413,1
    - Dst: gicv3_its_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:416,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:417,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:417,1
    - Dst: gicv3_its_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:423,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:424,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:424,1
    - Dst: gicv3_its_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:430,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:431,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:431,1
    - Dst: gicv3_its_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:437,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:438,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:438,1
    - Dst: gicv3_its_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:445,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:446,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:446,1
    - Dst: gicv3_its_tables_access
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:454,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:454,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:454,1
    - Dst: gicv3_its_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:456,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:457,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:457,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 103
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&GicState'
    constantsTouched: []
    func_position:
      end: 462
      start: 402
    functionDepth: 7
    functionLinenumber: 402
    functionLinenumberEnd: 462
    functionName: KvmGicV3Its::set_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - gicv3_its_tables_access
    - as_ref
    - gicv3_its_attr_set
    - dist_regs::write_ctlr
    - clone
    - Self::into
    - unwrap
    - redist_regs::set_redist_regs
    - String::clone
    - icc_regs::set_icc_regs
    - dist_regs::set_dist_regs
    linkageType: ''
    returnType: Result
    signature: 'fn set_state(&mut self, state: &GicState) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:471,1
    - Dst: set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:475,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:475,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:476,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:476,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:476,1
    - Dst: gicv3_its_tables_access
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:479,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:479,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 480
    functionName: KvmGicV3Its::save_data_tables
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - gicv3_its_tables_access
    - set_device_attr
    - map_err
    - as_ref
    - HypervisorDeviceError::SetDeviceAttribute
    - u64::from
    - Error::SetDeviceAttribute
    - unwrap
    - usize::into
    linkageType: ''
    returnType: Result
    signature: fn save_data_tables(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 505
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 505
    functionName: unit_tests::create_test_vgic_config
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VgicConfig
    signature: fn create_test_vgic_config() -> VgicConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:509,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:509,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:510,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:510,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:510,1
    - Dst: KvmGicV3Its::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:512,1
    - Dst: create_test_vgic_config
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:512,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 5
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: unit_tests::test_create_gic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - create_test_vgic_config
    - Result::create_vm
    - HypervisorVmConfig::default
    - KvmGicV3Its::new
    - Result::unwrap
    - hypervisor::Result::unwrap
    - crate::new
    linkageType: ''
    returnType: void
    signature: fn test_create_gic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:517,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:517,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:518,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:518,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:518,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:519,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:519,1
    - Dst: KvmGicV3Its::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:520,1
    - Dst: create_test_vgic_config
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:520,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:520,1
    - Dst: dist_regs::get_dist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:522,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:522,1
    - Dst: dist_regs::set_dist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:525,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 526
    functionName: unit_tests::test_get_set_dist_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - dist_regs::set_dist_regs
    - vm::Result::unwrap
    - create_test_vgic_config
    - Result::create_vm
    - dist_regs::get_dist_regs
    - create_vcpu
    - Result::expect
    - HypervisorVmConfig::default
    - KvmGicV3Its::new
    - Result::unwrap
    - hypervisor::Result::unwrap
    - crate::new
    linkageType: ''
    returnType: void
    signature: fn test_get_set_dist_regs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:530,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:530,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:531,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:531,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:531,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:532,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:532,1
    - Dst: KvmGicV3Its::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:533,1
    - Dst: create_test_vgic_config
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:533,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:533,1
    - Dst: redist_regs::get_redist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:536,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:536,1
    - Dst: redist_regs::set_redist_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:540,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 529
    functionDepth: 5
    functionLinenumber: 529
    functionLinenumberEnd: 541
    functionName: unit_tests::test_get_set_redist_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - create_test_vgic_config
    - Result::create_vm
    - redist_regs::get_redist_regs
    - create_vcpu
    - Result::expect
    - HypervisorVmConfig::default
    - KvmGicV3Its::new
    - Result::unwrap
    - redist_regs::set_redist_regs
    - hypervisor::Result::unwrap
    - crate::new
    linkageType: ''
    returnType: void
    signature: fn test_get_set_redist_regs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:545,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:545,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:546,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:546,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:546,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:547,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:547,1
    - Dst: KvmGicV3Its::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:548,1
    - Dst: create_test_vgic_config
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:548,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:548,1
    - Dst: icc_regs::get_icc_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:551,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:551,1
    - Dst: icc_regs::set_icc_regs
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:555,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 544
    functionDepth: 5
    functionLinenumber: 544
    functionLinenumberEnd: 556
    functionName: unit_tests::test_get_set_icc_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - icc_regs::get_icc_regs
    - create_test_vgic_config
    - Result::create_vm
    - create_vcpu
    - Result::expect
    - HypervisorVmConfig::default
    - KvmGicV3Its::new
    - Result::unwrap
    - hypervisor::Result::unwrap
    - icc_regs::set_icc_regs
    - crate::new
    linkageType: ''
    returnType: void
    signature: fn test_get_set_icc_regs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:560,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:560,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:561,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:561,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:561,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:562,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:562,1
    - Dst: create_test_vgic_config
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:563,1
    - Dst: create_vgic
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:564,1
    - Dst: vm::Result::expect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:564,1
    - Dst: vm::Result::lock
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:566,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:566,1
    - Dst: save_data_tables
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:566,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 5
    functionLinenumber: 559
    functionLinenumberEnd: 567
    functionName: unit_tests::test_save_data_tables
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - create_vgic
    - create_test_vgic_config
    - vm::Result::lock
    - save_data_tables
    - Result::create_vm
    - create_vcpu
    - vm::Result::expect
    - HypervisorVmConfig::default
    - unwrap
    - Result::unwrap
    - hypervisor::Result::unwrap
    - crate::new
    linkageType: ''
    returnType: void
    signature: fn test_save_data_tables()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: VGIC_RDIST_REG
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::set_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:107,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:107,1
    - Dst: Error::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:108,1
    - Dst: HypervisorDeviceError::SetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:108,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:108,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - gic
    - offset
    - typer
    - val
    argTypes:
    - '&DeviceFd'
    - u32
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 7
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: redist_attr_set
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
    functionUses: 1
    functionsReached:
    - map_err
    - HypervisorDeviceError::SetDeviceAttribute
    - Error::SetDeviceAttribute
    - usize::into
    - vm::Result::set_device_attr
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn redist_attr_set(gic: &DeviceFd, offset: u32, typer: u64, val: u32)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::get_device_attr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:125,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:125,1
    - Dst: Error::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:126,1
    - Dst: HypervisorDeviceError::GetDeviceAttribute
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:126,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:126,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - gic
    - offset
    - typer
    argTypes:
    - '&DeviceFd'
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 7
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: redist_attr_get
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
    functionUses: 1
    functionsReached:
    - Error::GetDeviceAttribute
    - map_err
    - HypervisorDeviceError::GetDeviceAttribute
    - vm::Result::get_device_attr
    - usize::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn redist_attr_get(gic: &DeviceFd, offset: u32, typer: u64) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redist_attr_set
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:147,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:150,1
    - Dst: redist_attr_get
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:150,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 6
    argNames:
    - gic
    - gicr_typer
    - state
    - reg_list
    - idx
    - set
    argTypes:
    - '&DeviceFd'
    - '&[u64]'
    - '&mut Vec<u32>'
    - '&[RdistReg]'
    - '&mut usize'
    - bool
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: access_redists_aux
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
    functionUses: 2
    functionsReached:
    - redist_attr_get
    - String::push
    - redist_attr_set
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn access_redists_aux(gic: &DeviceFd,gicr_typer: &[u64],state: &mut
      Vec<u32>,reg_list: &[RdistReg],idx: &mut usize,set: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:161,1
    - Dst: access_redists_aux
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:163,1
    - Dst: access_redists_aux
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:172,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - gic
    - gicr_typer
    argTypes:
    - '&DeviceFd'
    - '&[u64]'
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: get_redist_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
    functionUses: 2
    functionsReached:
    - access_redists_aux
    - Ok
    - Vec::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_redist_regs(gic: &DeviceFd, gicr_typer: &[u64]) -> Result<Vec<u32>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::to_owned
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:179,1
    - Dst: access_redists_aux
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:180,1
    - Dst: access_redists_aux
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - gic
    - gicr_typer
    - state
    argTypes:
    - '&DeviceFd'
    - '&[u64]'
    - '&[u32]'
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 9
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: set_redist_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
    functionUses: 2
    functionsReached:
    - access_redists_aux
    - String::to_owned
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_redist_regs(gic: &DeviceFd, gicr_typer: &[u64], state:
      &[u32]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:211,1
    - Dst: '&[CpuState]::iter'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:212,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:212,1
    - Dst: String::clone
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:213,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:213,1
    - Dst: '&[CpuState]::len'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:214,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:216,1
    - Dst: filter
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:216,1
    - Dst: collect
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:216,1
    - Dst: push
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 1
    argNames:
    - vcpu_states
    argTypes:
    - '&[CpuState]'
    constantsTouched: []
    func_position:
      end: 228
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 228
    functionName: construct_gicr_typers
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
    functionUses: 1
    functionsReached:
    - filter
    - Vec::new
    - push
    - impl Iterator::enumerate
    - Self::into
    - into_iter
    - String::clone
    - '&[CpuState]::iter'
    - '&[CpuState]::len'
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'pub fn construct_gicr_typers(vcpu_states: &[CpuState]) -> Vec<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - SegmentRegister
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: kvm_segment::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: SegmentRegister) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - MshvSegmentRegister
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: SegmentRegister::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: MshvSegmentRegister) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dt
    argTypes:
    - DescriptorTable
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 6
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: kvm_dtable::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(dt: DescriptorTable) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dt
    argTypes:
    - TableRegister
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: DescriptorTable::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(dt: TableRegister) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:150,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:151,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:152,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:153,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:154,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:155,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:156,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:157,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:158,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - s
    argTypes:
    - SpecialRegisters
    constantsTouched: []
    func_position:
      end: 169
      start: 148
    functionDepth: 7
    functionLinenumber: 148
    functionLinenumberEnd: 169
    functionName: kvm_sregs::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: SpecialRegisters) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:164,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:165,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:166,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:167,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:168,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:169,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:170,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:171,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:172,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - s
    argTypes:
    - MshvSpecialRegisters
    constantsTouched: []
    func_position:
      end: 183
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 183
    functionName: SpecialRegisters::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: MshvSpecialRegisters) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - e
    argTypes:
    - CpuIdEntry
    constantsTouched: []
    func_position:
      end: 214
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 214
    functionName: kvm_cpuid_entry2::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: CpuIdEntry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - hv_cpuid_entry
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: CpuIdEntry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: hv_cpuid_entry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - FloatingPointUnit
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: FpuState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: FloatingPointUnit) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - FpuState
    constantsTouched: []
    func_position:
      end: 266
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 266
    functionName: kvm_fpu::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: FpuState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - LapicState
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: kvm_lapic_state::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: LapicState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - MshvLapicState
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: LapicState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: MshvLapicState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - msr_entry
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: MsrEntry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: msr_entry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - MsrEntry
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 6
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: kvm_msr_entry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: MsrEntry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::Result::as_fam_struct_ptr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:339,1
    - Dst: cpu::Result::as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:344,1
    - Dst: '&[T]::to_vec'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - xsave
    argTypes:
    - '&xsave2'
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: XsaveState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::Result::as_fam_struct_ptr
    - cpu::Result::as_slice
    - '&[T]::to_vec'
    linkageType: ''
    returnType: Self
    signature: 'fn from(xsave: &xsave2) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:324,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:326,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:328,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - XsaveState
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: kvm_xsave::try_from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - Ok
    - Default::default
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(value: XsaveState) -> Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xsave2::new
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:351,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:351,1
    - Dst: cpu::Result::as_mut_fam_struct_ptr
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:354,1
    - Dst: cpu::Result::as_mut_slice
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:357,1
    - Dst: '&mut [T]::copy_from_slice'
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:358,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 5
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: XsaveState::to_xsave2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
    functionUses: 1
    functionsReached:
    - xsave2::new
    - '&mut [T]::copy_from_slice'
    - len
    - cpu::Result::as_mut_fam_struct_ptr
    - cpu::Result::as_mut_slice
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn to_xsave2(&self) -> Result<xsave2, vmm_sys_util::fam::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ms
    argTypes:
    - ClockData
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: MshvClockData::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(ms: ClockData) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::Pio
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:120,1
    - Dst: Self::Mmio
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - IoEventAddress
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: mshv_ioctls::IoEventAddress::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 2
    functionsReached:
    - Self::Pio
    - Self::Mmio
    linkageType: ''
    returnType: Self
    signature: 'fn from(a: IoEventAddress) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - CpuState
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: VcpuMshvState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: CpuState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::StandardRegisters
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: mshv_bindings::StandardRegisters::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::StandardRegisters) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - IrqRoutingEntry
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mshv_user_irq_entry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: IrqRoutingEntry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::RegList
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: mshv_bindings::MshvRegList::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::RegList) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - crate::VcpuInit
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: mshv_bindings::MshvVcpuInit::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: crate::VcpuInit) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mshv::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:230,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:230,1
    - Dst: hypervisor::HypervisorError::HypervisorCreate
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:230,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:230,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:231,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 5
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: MshvHypervisor::new
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - Mshv::new
    - hypervisor::HypervisorError::HypervisorCreate
    - Arc::new
    - Result::map_err
    - usize::into
    - Ok
    linkageType: ''
    returnType: hypervisor::Result
    signature: pub fn new() -> hypervisor::Result<Arc<dyn hypervisor::Hypervisor>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::metadata
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:235,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:236,1
    - Dst: kind
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:237,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:237,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:238,1
    - Dst: hypervisor::HypervisorError::HypervisorAvailableCheck
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:238,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 7
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: MshvHypervisor::is_available
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - std::fs::metadata
    - hypervisor::HypervisorError::HypervisorAvailableCheck
    - Err
    - into
    - kind
    - Ok
    linkageType: ''
    returnType: hypervisor::Result
    signature: pub fn is_available() -> hypervisor::Result<bool>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: MshvHypervisor::hypervisor_type
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HypervisorType
    signature: fn hypervisor_type(&self) -> HypervisorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mshv_ioctls::make_default_partition_create_arg
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:289,1
    - Dst: hv_partition_processor_features::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:290,1
    - Dst: set_nested_virt_support
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:302,1
    - Dst: set_nested_virt_support
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:306,1
    - Dst: make_default_synthetic_features_mask
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:316,1
    - Dst: create_vm_with_args
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:319,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:322,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:328,1
    - Dst: hypervisor::HypervisorError::VmCreate
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:328,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:328,1
    - Dst: Result::set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:333,1
    - Dst: anyhow::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:333,1
    - Dst: hypervisor::HypervisorError::SetPartitionProperty
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:337,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:337,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:338,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:342,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:342,1
    - Dst: ArcSwap::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:344,1
    - Dst: Vec::<MsrEntry>::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:344,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:344,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:345,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:345,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:345,1
    - Dst: ArcSwap::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:349,1
    - Dst: AtomicBitmap::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:350,1
    - Dst: NonZeroUsize::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:352,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:352,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:350,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:361,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:361,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:363,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:363,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:363,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 111
    argCount: 1
    argNames:
    - _config
    argTypes:
    - HypervisorVmConfig
    constantsTouched: []
    func_position:
      end: 366
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 366
    functionName: MshvHypervisor::create_vm
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - ArcSwap::new
    - RwLock::new
    - Result::unwrap
    - Ok
    - mshv_ioctls::make_default_partition_create_arg
    - Arc::new
    - set_nested_virt_support
    - usize::into
    - hypervisor::HypervisorError::SetPartitionProperty
    - hv_partition_processor_features::default
    - create_vm_with_args
    - usize::errno
    - Result::set_partition_property
    - Err
    - NonZeroUsize::new
    - Vec::<MsrEntry>::new
    - Result::into
    - anyhow::Result::map_err
    - AtomicBitmap::new
    - hypervisor::HypervisorError::VmCreate
    - make_default_synthetic_features_mask
    linkageType: ''
    returnType: hypervisor::Result
    signature: 'fn create_vm(&self, _config: HypervisorVmConfig) -> hypervisor::Result<Arc<dyn
      vm::Vm>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:372,1
    - Dst: push
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:376,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:378,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 382
    functionName: MshvHypervisor::get_supported_cpuid
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - push
    - Ok
    - Default::default
    - Vec::new
    linkageType: ''
    returnType: hypervisor::Result
    signature: fn get_supported_cpuid(&self) -> hypervisor::Result<Vec<CpuIdEntry>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: MshvHypervisor::get_max_vcpus
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn get_max_vcpus(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: MshvHypervisor::get_guest_debug_hw_bps
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn get_guest_debug_hw_bps(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_host_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:400,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:405,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: MshvHypervisor::get_host_ipa_limit
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - get_host_partition_property
    - unwrap
    - try_into
    linkageType: ''
    returnType: i32
    signature: fn get_host_ipa_limit(&self) -> i32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mshv_bindings::StandardRegisters::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:462,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 461
    functionDepth: 7
    functionLinenumber: 461
    functionLinenumberEnd: 463
    functionName: MshvVcpu::create_standard_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - mshv_bindings::StandardRegisters::default
    - Self::into
    linkageType: ''
    returnType: crate::StandardRegisters
    signature: fn create_standard_regs(&self) -> crate::StandardRegisters
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:468,1
    - Dst: get_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:468,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:468,1
    - Dst: cpu::HypervisorCpuError::GetStandardRegs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:471,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:471,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 467
    functionDepth: 7
    functionLinenumber: 467
    functionLinenumberEnd: 473
    functionName: MshvVcpu::get_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::GetStandardRegs
    - map_err
    - get_regs
    - into
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_regs(&self) -> cpu::Result<crate::StandardRegisters>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:479,1
    - Dst: set_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:480,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:480,1
    - Dst: cpu::HypervisorCpuError::SetStandardRegs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:482,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - regs
    argTypes:
    - '&crate::StandardRegisters'
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 7
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: MshvVcpu::set_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - into
    - set_regs
    - usize::into
    - cpu::HypervisorCpuError::SetStandardRegs
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_regs(&self, regs: &crate::StandardRegisters) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:490,1
    - Dst: get_sregs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:490,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:490,1
    - Dst: cpu::HypervisorCpuError::GetSpecialRegs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:493,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:493,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 8
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: MshvVcpu::get_sregs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - get_sregs
    - map_err
    - into
    - cpu::HypervisorCpuError::GetSpecialRegs
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_sregs(&self) -> cpu::Result<crate::arch::x86::SpecialRegisters>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:502,1
    - Dst: set_sregs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:503,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:503,1
    - Dst: cpu::HypervisorCpuError::SetSpecialRegs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:505,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - sregs
    argTypes:
    - '&crate::arch::x86::SpecialRegisters'
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 7
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: MshvVcpu::set_sregs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - set_sregs
    - map_err
    - into
    - cpu::HypervisorCpuError::SetSpecialRegs
    - usize::into
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_sregs(&self, sregs: &crate::arch::x86::SpecialRegisters) ->
      cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:513,1
    - Dst: get_fpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:513,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:513,1
    - Dst: cpu::HypervisorCpuError::GetFloatingPointRegs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:516,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:516,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 8
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: MshvVcpu::get_fpu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - get_fpu
    - cpu::HypervisorCpuError::GetFloatingPointRegs
    - into
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_fpu(&self) -> cpu::Result<FpuState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:525,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:525,1
    - Dst: set_fpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:526,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:526,1
    - Dst: cpu::HypervisorCpuError::SetFloatingPointRegs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:528,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - fpu
    argTypes:
    - '&FpuState'
    constantsTouched: []
    func_position:
      end: 529
      start: 524
    functionDepth: 7
    functionLinenumber: 524
    functionLinenumberEnd: 529
    functionName: MshvVcpu::set_fpu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - set_fpu
    - map_err
    - into
    - cpu::HypervisorCpuError::SetFloatingPointRegs
    - usize::into
    - clone
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_fpu(&self, fpu: &FpuState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:536,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:536,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:536,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:536,1
    - Dst: MsrEntries::from_entries
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:537,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:537,1
    - Dst: get_msrs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:538,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:538,1
    - Dst: cpu::HypervisorCpuError::GetMsrEntries
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:541,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:541,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:543,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:544,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:544,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:544,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:546,1
    - Dst: "as_slice()[..succ]\n                .iter()\n                .map(|e|\
        \ (*e).into())\n                .collect::<Vec<MsrEntry>>"
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:544,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - msrs
    argTypes:
    - '&mut Vec<MsrEntry>'
    constantsTouched: []
    func_position:
      end: 551
      start: 535
    functionDepth: 7
    functionLinenumber: 535
    functionLinenumberEnd: 551
    functionName: MshvVcpu::get_msrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - impl Iterator::map
    - map_err
    - cpu::HypervisorCpuError::GetMsrEntries
    - "as_slice()[..succ]\n                .iter()\n                .map(|e| (*e).into())\n\
      \                .collect::<Vec<MsrEntry>>"
    - into
    - copy_from_slice
    - unwrap
    - get_msrs
    - as_slice
    - usize::into
    - Self::collect
    - MsrEntries::from_entries
    - Result::iter
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_msrs(&self, msrs: &mut Vec<MsrEntry>) -> cpu::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:559,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:559,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:559,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:559,1
    - Dst: MsrEntries::from_entries
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:560,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:560,1
    - Dst: set_msrs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:561,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:561,1
    - Dst: cpu::HypervisorCpuError::SetMsrEntries
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:563,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - msrs
    argTypes:
    - '&[MsrEntry]'
    constantsTouched: []
    func_position:
      end: 564
      start: 558
    functionDepth: 7
    functionLinenumber: 558
    functionLinenumberEnd: 564
    functionName: MshvVcpu::set_msrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - map_err
    - cpu::HypervisorCpuError::SetMsrEntries
    - set_msrs
    - into
    - unwrap
    - usize::into
    - Self::collect
    - MsrEntries::from_entries
    - Result::iter
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_msrs(&self, msrs: &[MsrEntry]) -> cpu::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: MshvVcpu::enable_hyperv_synic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn enable_hyperv_synic(&self) -> cpu::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:577,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:581,1
    - Dst: to_reset_intercept_msg
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:585,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:585,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:588,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:590,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:592,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:592,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:600,1
    - Dst: to_ioport_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:604,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:604,1
    - Dst: access_size
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:607,1
    - Dst: MshvVcpu::advance_rip_update_rax
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:630,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:631,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:648,1
    - Dst: pio_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:650,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:651,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:650,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:652,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:652,1
    - Dst: pio_read
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:656,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:657,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:656,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:658,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:658,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:661,1
    - Dst: MshvVcpu::advance_rip_update_rax
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:668,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:669,1
    - Dst: to_memory_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:673,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:673,1
    - Dst: interruption_pending
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:687,1
    - Dst: emulator::Emulator::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:696,1
    - Dst: Result::emulate
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:697,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:697,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:699,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:699,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:701,1
    - Dst: to_memory_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:706,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:706,1
    - Dst: Emulator::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:719,1
    - Dst: Result::emulate_first_insn
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:722,1
    - Dst: EmulationResult::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:722,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:727,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:727,1
    - Dst: set_cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:730,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:730,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:732,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:732,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:734,1
    - Dst: to_gpa_attribute_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:738,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:738,1
    - Dst: host_visibility
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:739,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:742,1
    - Dst: range_count
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:745,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:748,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:748,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:754,1
    - Dst: snp::parse_gpa_range
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:756,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:756,1
    - Dst: rcu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:759,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:760,1
    - Dst: Self::reset_addr_range
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:761,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:768,1
    - Dst: vec_with_array_field::<mshv_modify_gpa_host_access, u64>
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:772,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:772,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:773,1
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:787,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:787,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:788,1
    - Dst: Result::as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:788,1
    - Dst: modify_gpa_host_access
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:791,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:791,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:793,1
    - Dst: rcu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:797,1
    - Dst: load
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:798,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:798,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:798,1
    - Dst: Self::reset_addr_range
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:799,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:802,1
    - Dst: to_memory_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:806,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:806,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:810,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:810,1
    - Dst: to_cpuid_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:816,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:816,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:818,1
    - Dst: to_msr_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:822,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:822,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:828,1
    - Dst: to_exception_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:833,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:833,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:835,1
    - Dst: to_apic_eoi_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:839,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:839,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:846,1
    - Dst: cpu::VmExit::IoapicEoi
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:846,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:847,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:847,1
    - Dst: to_vmg_intercept_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:852,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:852,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:859,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:859,1
    - Dst: ghcb_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:862,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:883,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:884,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:884,1
    - Dst: hv_x64_register_sev_ghcb::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:887,1
    - Dst: MshvVcpu::disable_prev_ghcb_page
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:890,1
    - Dst: set_enabled
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:894,1
    - Dst: set_page_number
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:895,1
    - Dst: gpa_page_number
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:897,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:907,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:908,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:908,1
    - Dst: svm_ghcb_msr::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:910,1
    - Dst: set_ghcb_info
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:913,1
    - Dst: set_gpa_page_number
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:916,1
    - Dst: gpa_page_number
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:917,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:929,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:930,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:930,1
    - Dst: get_cpuid_values
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:934,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:934,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:952,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:953,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:953,1
    - Dst: hv_x64_register_sev_hv_doorbell::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:979,1
    - Dst: set_enabled
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:982,1
    - Dst: set_page_number
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:983,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:994,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:995,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:995,1
    - Dst: MshvVcpu::clear_swexit_info1
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1001,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1006,1
    - Dst: get_reg
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1008,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1008,1
    - Dst: MshvVcpu::clear_swexit_info1
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1015,1
    - Dst: intercepted_port
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1036,1
    - Dst: operand_size_16bit
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1040,1
    - Dst: operand_size_8bit
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1042,1
    - Dst: access_type
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1050,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1052,1
    - Dst: pio_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1056,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1056,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1056,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1057,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1057,1
    - Dst: pio_read
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1062,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1063,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1062,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1065,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1065,1
    - Dst: MshvVcpu::clear_swexit_info1
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1072,1
    - Dst: mmio_read
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1085,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1085,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1086,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1086,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1091,1
    - Dst: u64::from_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1093,1
    - Dst: MshvVcpu::clear_swexit_info1
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1096,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1110,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1111,1
    - Dst: mmio_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1114,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1114,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1115,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1115,1
    - Dst: MshvVcpu::clear_swexit_info1
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1120,1
    - Dst: MshvVcpu::gpa_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1139,1
    - Dst: psp_issue_guest_request
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1150,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1150,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1152,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1152,1
    - Dst: sev_snp_ap_create
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1173,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1173,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1175,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1175,1
    - Dst: MshvVcpu::clear_swexit_info1
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1178,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1188,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1190,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1190,1
    - Dst: usize::errno
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1195,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1196,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1197,1
    - Dst: cpu::HypervisorCpuError::RunVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1197,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 786
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 576
    functionDepth: 16
    functionLinenumber: 576
    functionLinenumberEnd: 1202
    functionName: MshvVcpu::run
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::SetRegister
    - as_ref
    - operand_size_8bit
    - operand_size_16bit
    - MshvVcpu::gpa_write
    - get_cpuid_values
    - MshvVcpu::advance_rip_update_rax
    - intercepted_port
    - Default::default
    - to_gpa_attribute_info
    - to_reset_intercept_msg
    - as_mut_slice
    - Self::reset_addr_range
    - set_cpu_state
    - set_page_number
    - modify_gpa_host_access
    - u64::from_le_bytes
    - Err
    - host_visibility
    - unwrap
    - psp_issue_guest_request
    - hv_x64_register_sev_hv_doorbell::default
    - Result::into
    - clone
    - set_ghcb_info
    - copy_from_slice
    - ghcb_info
    - to_memory_info
    - cpu::VmExit::IoapicEoi
    - get_reg
    - to_ioport_info
    - to_exception_info
    - try_into
    - pio_write
    - Result::emulate_first_insn
    - Result::as_slice
    - Result::push
    - hv_x64_register_sev_ghcb::default
    - usize::errno
    - Emulator::new
    - mmio_write
    - to_vmg_intercept_info
    - MshvVcpu::disable_prev_ghcb_page
    - rcu
    - map_err
    - interruption_pending
    - Result::emulate
    - mmio_read
    - Ok
    - Vec::new
    - range_count
    - set_gpa_page_number
    - to_apic_eoi_info
    - to_msr_info
    - usize::into
    - vec_with_array_field::<mshv_modify_gpa_host_access, u64>
    - Self::clone
    - svm_ghcb_msr::default
    - String::copy_from_slice
    - access_size
    - Result::map_err
    - sev_snp_ap_create
    - snp::parse_gpa_range
    - set_enabled
    - gpa_page_number
    - to_le_bytes
    - cpu::HypervisorCpuError::RunVcpu
    - MshvVcpu::clear_swexit_info1
    - pio_read
    - EmulationResult::map_err
    - run
    - load
    - access_type
    - Result::len
    - to_cpuid_info
    - emulator::Emulator::new
    - u32::from_le_bytes
    linkageType: ''
    returnType: std::result::Result
    signature: fn run(&mut self) -> std::result::Result<cpu::VmExit, cpu::HypervisorCpuError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _irq
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1207
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1207
    functionName: MshvVcpu::init_pmu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn init_pmu(&self, _irq: u32) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1212
    functionName: MshvVcpu::has_pmu_support
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn has_pmu_support(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1220,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1221,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1221,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1228,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1229,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1229,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - cpu_id
    - boot_ip
    - fdt_start
    argTypes:
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1233
      start: 1215
    functionDepth: 7
    functionLinenumber: 1215
    functionLinenumberEnd: 1233
    functionName: MshvVcpu::setup_regs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::SetRegister
    - usize::into
    - map_err
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn setup_regs(&self, cpu_id: u32, boot_ip: u64, fdt_start: u64) ->
      cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MshvVcpu::sys_reg_to_mshv_reg
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1237,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1241,1
    - Dst: get_reg
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1243,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1243,1
    - Dst: cpu::HypervisorCpuError::GetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1245,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1245,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - sys_reg
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1250
      start: 1236
    functionDepth: 6
    functionLinenumber: 1236
    functionLinenumberEnd: 1250
    functionName: MshvVcpu::get_sys_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Default::default
    - MshvVcpu::sys_reg_to_mshv_reg
    - usize::into
    - get_reg
    - cpu::HypervisorCpuError::GetRegister
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_sys_reg(&self, sys_reg: u32) -> cpu::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _reg_list
    argTypes:
    - '&mut crate::RegList'
    constantsTouched: []
    func_position:
      end: 1255
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1255
    functionName: MshvVcpu::get_reg_list
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_reg_list(&self, _reg_list: &mut crate::RegList) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _kvi
    argTypes:
    - '&crate::VcpuInit'
    constantsTouched: []
    func_position:
      end: 1260
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1260
    functionName: MshvVcpu::vcpu_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn vcpu_init(&self, _kvi: &crate::VcpuInit) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _feature
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 1265
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1265
    functionName: MshvVcpu::vcpu_finalize
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn vcpu_finalize(&self, _feature: i32) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1270
    functionName: MshvVcpu::vcpu_get_finalized_features
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i32
    signature: fn vcpu_get_finalized_features(&self) -> i32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _vm
    - _kvi
    - _id
    argTypes:
    - '&dyn crate::Vm'
    - '&mut crate::VcpuInit'
    - u32
    constantsTouched: []
    func_position:
      end: 1280
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1280
    functionName: MshvVcpu::vcpu_set_processor_features
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn vcpu_set_processor_features(&self,_vm: &dyn crate::Vm,_kvi: &mut
      crate::VcpuInit,_id: u32,) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1283
    functionDepth: 7
    functionLinenumber: 1283
    functionLinenumberEnd: 1285
    functionName: MshvVcpu::create_vcpu_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: crate::VcpuInit
    signature: fn create_vcpu_init(&self) -> crate::VcpuInit
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1292,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1292,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1292,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1292,1
    - Dst: <CpuId>::from_entries
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1293,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1293,1
    - Dst: cpu::HypervisorCpuError::SetCpuid
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1294,1
    - Dst: register_intercept_result_cpuid
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1296,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1296,1
    - Dst: cpu::HypervisorCpuError::SetCpuid
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1298,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - cpuid
    argTypes:
    - '&[CpuIdEntry]'
    constantsTouched: []
    func_position:
      end: 1299
      start: 1291
    functionDepth: 7
    functionLinenumber: 1291
    functionLinenumberEnd: 1299
    functionName: MshvVcpu::set_cpuid2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - impl Iterator::map
    - <CpuId>::from_entries
    - map_err
    - into
    - cpu::HypervisorCpuError::SetCpuid
    - usize::into
    - Self::collect
    - register_intercept_result_cpuid
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_cpuid2(&self, cpuid: &[CpuIdEntry]) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1306,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _num_entries
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 3
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: MshvVcpu::get_cpuid2
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - clone
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_cpuid2(&self, _num_entries: usize) -> cpu::Result<Vec<CpuIdEntry>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cpuid_values
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1320,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1320,1
    - Dst: cpu::HypervisorCpuError::GetCpuidVales
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1322,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - function
    - index
    - xfem
    - xss
    argTypes:
    - u32
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1323
      start: 1313
    functionDepth: 7
    functionLinenumber: 1313
    functionLinenumberEnd: 1323
    functionName: MshvVcpu::get_cpuid_values
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - cpu::HypervisorCpuError::GetCpuidVales
    - get_cpuid_values
    - map_err
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn get_cpuid_values(&self,function: u32,index: u32,xfem: u64,xss:
      u64,) -> cpu::Result<[u32; 4]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1330,1
    - Dst: get_lapic
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1330,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1330,1
    - Dst: cpu::HypervisorCpuError::GetlapicState
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1333,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1333,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1329
    functionDepth: 8
    functionLinenumber: 1329
    functionLinenumberEnd: 1335
    functionName: MshvVcpu::get_lapic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - into
    - get_lapic
    - cpu::HypervisorCpuError::GetlapicState
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_lapic(&self) -> cpu::Result<crate::arch::x86::LapicState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1342,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1342,1
    - Dst: set_lapic
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1343,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1343,1
    - Dst: cpu::HypervisorCpuError::SetLapicState
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1345,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - lapic
    argTypes:
    - '&crate::arch::x86::LapicState'
    constantsTouched: []
    func_position:
      end: 1346
      start: 1341
    functionDepth: 7
    functionLinenumber: 1341
    functionLinenumberEnd: 1346
    functionName: MshvVcpu::set_lapic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::SetLapicState
    - map_err
    - into
    - usize::into
    - set_lapic
    - clone
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_lapic(&self, lapic: &crate::arch::x86::LapicState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1353
    functionName: MshvVcpu::get_mp_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_mp_state(&self) -> cpu::Result<MpState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _mp_state
    argTypes:
    - MpState
    constantsTouched: []
    func_position:
      end: 1360
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1360
    functionName: MshvVcpu::set_mp_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_mp_state(&self, _mp_state: MpState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _state
    argTypes:
    - '&CpuState'
    constantsTouched: []
    func_position:
      end: 1396
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1396
    functionName: MshvVcpu::set_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_state(&self, _state: &CpuState) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1443
    functionName: MshvVcpu::state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cpu::Result
    signature: fn state(&self) -> cpu::Result<CpuState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1450,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1450,1
    - Dst: cpu::HypervisorCpuError::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1453,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1453,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - gva
    - flags
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1460
      start: 1449
    functionDepth: 8
    functionLinenumber: 1449
    functionLinenumberEnd: 1460
    functionName: MshvVcpu::translate_gva
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::TranslateVirtualAddress
    - map_err
    - usize::into
    - translate_gva
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn translate_gva(&self, gva: u64, flags: u64) -> cpu::Result<(u64,
      u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1470,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1471,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1472,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1473,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1474,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1475,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1476,1
    - Dst: msr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1477,1
    - Dst: msr_data
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1480
    functionName: MshvVcpu::boot_msr_entries
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - msr_data
    - msr
    linkageType: ''
    returnType: '&''static [MsrEntry]'
    signature: fn boot_msr_entries(&self) -> &'static [MsrEntry]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snp::get_sev_control_register
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1487,1
    - Dst: set_sev_control_register
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1489,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1489,1
    - Dst: cpu::HypervisorCpuError::SetSevControlRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1491,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - vmsa_pfn
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1492
      start: 1486
    functionDepth: 7
    functionLinenumber: 1486
    functionLinenumberEnd: 1492
    functionName: MshvVcpu::set_sev_control_register
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - snp::get_sev_control_register
    - usize::into
    - cpu::HypervisorCpuError::SetSevControlRegister
    - set_sev_control_register
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_sev_control_register(&self, vmsa_pfn: u64) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: request_virtual_interrupt
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1506,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1506,1
    - Dst: cpu::HypervisorCpuError::Nmi
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1508,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1497
    functionDepth: 7
    functionLinenumber: 1497
    functionLinenumberEnd: 1509
    functionName: MshvVcpu::nmi
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - request_virtual_interrupt
    - cpu::HypervisorCpuError::Nmi
    - map_err
    linkageType: ''
    returnType: cpu::Result
    signature: fn nmi(&self) -> cpu::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1523,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1524,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1524,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - gicr_base_addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1527
      start: 1514
    functionDepth: 7
    functionLinenumber: 1514
    functionLinenumberEnd: 1527
    functionName: MshvVcpu::set_gic_redistributor_addr
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - cpu::HypervisorCpuError::SetRegister
    - usize::into
    - map_err
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_gic_redistributor_addr(&self, gicr_base_addr: u64) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1538,1
    - Dst: get_reg
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1540,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1540,1
    - Dst: hv_x64_register_sev_ghcb::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1546,1
    - Dst: set_enabled
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1550,1
    - Dst: set_page_number
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1551,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1562,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1563,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1563,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1535
    functionDepth: 6
    functionLinenumber: 1535
    functionLinenumberEnd: 1566
    functionName: MshvVcpu::disable_prev_ghcb_page
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - cpu::HypervisorCpuError::SetRegister
    - set_page_number
    - map_err
    - Default::default
    - hv_x64_register_sev_ghcb::default
    - unwrap
    - set_enabled
    - usize::into
    - get_reg
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: fn disable_prev_ghcb_page(&self) -> cpu::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_xcrs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1572,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1572,1
    - Dst: cpu::HypervisorCpuError::GetXcsr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1574,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1571
    functionDepth: 8
    functionLinenumber: 1571
    functionLinenumberEnd: 1575
    functionName: MshvVcpu::get_xcrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - cpu::HypervisorCpuError::GetXcsr
    - map_err
    - get_xcrs
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_xcrs(&self) -> cpu::Result<ExtendedControlRegisters>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_xcrs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1582,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1582,1
    - Dst: cpu::HypervisorCpuError::SetXcsr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1584,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - xcrs
    argTypes:
    - '&ExtendedControlRegisters'
    constantsTouched: []
    func_position:
      end: 1585
      start: 1581
    functionDepth: 8
    functionLinenumber: 1581
    functionLinenumberEnd: 1585
    functionName: MshvVcpu::set_xcrs
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - cpu::HypervisorCpuError::SetXcsr
    - set_xcrs
    - map_err
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_xcrs(&self, xcrs: &ExtendedControlRegisters) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_vcpu_events
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1593,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1593,1
    - Dst: cpu::HypervisorCpuError::GetVcpuEvents
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1595,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1592
    functionDepth: 8
    functionLinenumber: 1592
    functionLinenumberEnd: 1596
    functionName: MshvVcpu::get_vcpu_events
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - cpu::HypervisorCpuError::GetVcpuEvents
    - map_err
    - get_vcpu_events
    linkageType: ''
    returnType: cpu::Result
    signature: fn get_vcpu_events(&self) -> cpu::Result<VcpuEvents>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_vcpu_events
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1604,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1604,1
    - Dst: cpu::HypervisorCpuError::SetVcpuEvents
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1606,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - events
    argTypes:
    - '&VcpuEvents'
    constantsTouched: []
    func_position:
      end: 1607
      start: 1603
    functionDepth: 8
    functionLinenumber: 1603
    functionLinenumberEnd: 1607
    functionName: MshvVcpu::set_vcpu_events
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - set_vcpu_events
    - map_err
    - cpu::HypervisorCpuError::SetVcpuEvents
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn set_vcpu_events(&self, events: &VcpuEvents) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1617,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1617,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1613
    functionDepth: 0
    functionLinenumber: 1613
    functionLinenumberEnd: 1621
    functionName: MshvVcpu::clear_swexit_info1
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - unwrap
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn clear_swexit_info1(&self) -> std::result::Result<cpu::VmExit, cpu::HypervisorCpuError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: step_by
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1625,1
    - Dst: zip
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1625,1
    - Dst: String::chunks
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1627,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1630,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1630,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1634,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1636,1
    - Dst: gpa_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1638,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1638,1
    - Dst: cpu::HypervisorCpuError::GpaWrite
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1640,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1640,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 2
    argNames:
    - gpa
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1644
      start: 1624
    functionDepth: 6
    functionLinenumber: 1624
    functionLinenumberEnd: 1644
    functionName: MshvVcpu::gpa_write
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Default::default
    - zip
    - cpu::HypervisorCpuError::GpaWrite
    - copy_from_slice
    - len
    - usize::into
    - String::chunks
    - gpa_write
    - step_by
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn gpa_write(&self, gpa: u64, data: &[u8]) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: instruction_length
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1652,1
    - Dst: get_vp_reg_page
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1660,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1677,1
    - Dst: cpu::HypervisorCpuError::SetRegister
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1678,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1678,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 2
    argNames:
    - info
    - ret_rax
    argTypes:
    - '&hv_x64_io_port_intercept_message'
    - u64
    constantsTouched: []
    func_position:
      end: 1681
      start: 1647
    functionDepth: 7
    functionLinenumber: 1647
    functionLinenumberEnd: 1681
    functionName: MshvVcpu::advance_rip_update_rax
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - cpu::HypervisorCpuError::SetRegister
    - get_vp_reg_page
    - map_err
    - instruction_length
    - usize::into
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn advance_rip_update_rax(&self,info: &hv_x64_io_port_intercept_message,ret_rax:
      u64,) -> cpu::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1686,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1687,1
    - Dst: cpu::HypervisorCpuError::UnsupportedSysReg
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sys_regs
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1689
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1689
    functionName: MshvVcpu::sys_reg_to_mshv_reg
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - cpu::HypervisorCpuError::UnsupportedSysReg
    - Err
    - Ok
    linkageType: ''
    returnType: cpu::Result
    signature: 'fn sys_reg_to_mshv_reg(&self, sys_regs: u32) -> cpu::Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_device
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1710,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1710,1
    - Dst: vm::HypervisorVmError::CreateDevice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1713,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1713,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1714,1
    - Dst: VfioDeviceFd::new_from_mshv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - device
    argTypes:
    - '&mut CreateDevice'
    constantsTouched: []
    func_position:
      end: 1715
      start: 1709
    functionDepth: 8
    functionLinenumber: 1709
    functionLinenumberEnd: 1715
    functionName: MshvVm::create_device
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 1
    functionsReached:
    - map_err
    - usize::into
    - vm::HypervisorVmError::CreateDevice
    - create_device
    - VfioDeviceFd::new_from_mshv
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn create_device(&self, device: &mut CreateDevice) -> vm::Result<VfioDeviceFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1722,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - code
    - value
    argTypes:
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 1725
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1725
    functionName: MshvVm::set_partition_property
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - set_partition_property
    - map_err
    linkageType: ''
    returnType: anyhow::Result
    signature: 'pub fn set_partition_property(&self, code: u32, value: u64) -> anyhow::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1748
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1748
    functionName: MshvVm::set_identity_map_address
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_identity_map_address(&self, _address: u64) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _offset
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1756
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1756
    functionName: MshvVm::set_tss_address
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_tss_address(&self, _offset: usize) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1763
    functionName: MshvVm::create_irq_chip
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn create_irq_chip(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_irqfd
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1771,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1771,1
    - Dst: vm::HypervisorVmError::RegisterIrqFd
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1773,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1773,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - gsi
    argTypes:
    - '&EventFd'
    - u32
    constantsTouched: []
    func_position:
      end: 1776
      start: 1768
    functionDepth: 8
    functionLinenumber: 1768
    functionLinenumberEnd: 1776
    functionName: MshvVm::register_irqfd
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - register_irqfd
    - map_err
    - vm::HypervisorVmError::RegisterIrqFd
    - usize::into
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn register_irqfd(&self, fd: &EventFd, gsi: u32) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unregister_irqfd
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1784,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1784,1
    - Dst: vm::HypervisorVmError::UnregisterIrqFd
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1786,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1786,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - gsi
    argTypes:
    - '&EventFd'
    - u32
    constantsTouched: []
    func_position:
      end: 1789
      start: 1781
    functionDepth: 8
    functionLinenumber: 1781
    functionLinenumberEnd: 1789
    functionName: MshvVm::unregister_irqfd
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - vm::HypervisorVmError::UnregisterIrqFd
    - usize::into
    - unregister_irqfd
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn unregister_irqfd(&self, fd: &EventFd, gsi: u32) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::try_into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1799,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1799,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1800,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1800,1
    - Dst: vm::HypervisorVmError::CreateVcpu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1803,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1803,1
    - Dst: libc::mmap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1814,1
    - Dst: std::ptr::null_mut
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1815,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1819,1
    - Dst: libc::sysconf
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1820,1
    - Dst: std::ptr::eq
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1823,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1826,1
    - Dst: Some
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1828,1
    - Dst: Ghcb
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1828,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1836,1
    - Dst: load
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1838,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1838,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1838,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1840,1
    - Dst: ArcSwap::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1844,1
    - Dst: load
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1844,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1844,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1846,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 2
    argNames:
    - id
    - vm_ops
    argTypes:
    - u32
    - Option<Arc<dyn VmOps>>
    constantsTouched: []
    func_position:
      end: 1847
      start: 1794
    functionDepth: 7
    functionLinenumber: 1794
    functionLinenumberEnd: 1847
    functionName: MshvVm::create_vcpu
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - ArcSwap::new
    - map_err
    - as_ref
    - Ok
    - std::ptr::null_mut
    - Vec::new
    - u32::try_into
    - libc::sysconf
    - as_raw_fd
    - usize::into
    - libc::mmap
    - load
    - std::result::Result::unwrap
    - Err
    - Box::new
    - std::ptr::eq
    - clone
    - vm::HypervisorVmError::CreateVcpu
    - Ghcb
    - create_vcpu
    - Some
    linkageType: ''
    returnType: vm::Result
    signature: 'fn create_vcpu(&self,id: u32,vm_ops: Option<Arc<dyn VmOps>>,) -> vm::Result<Box<dyn
      cpu::Vcpu>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1852
    functionName: MshvVm::enable_split_irq
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn enable_split_irq(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1862,1
    - Dst: mshv_ioctls::IoEventAddress::from
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1865,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1874,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1874,1
    - Dst: vm::HypervisorVmError::RegisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1877,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1877,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1878,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1878,1
    - Dst: vm::HypervisorVmError::RegisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1881,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1881,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1884,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1884,1
    - Dst: vm::HypervisorVmError::RegisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1886,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - fd
    - addr
    - datamatch
    argTypes:
    - '&EventFd'
    - '&IoEventAddress'
    - Option<DataMatch>
    constantsTouched: []
    func_position:
      end: 1888
      start: 1854
    functionDepth: 8
    functionLinenumber: 1854
    functionLinenumberEnd: 1888
    functionName: MshvVm::register_ioevent
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - vm::HypervisorVmError::RegisterIoEvent
    - register_ioevent
    - mshv_ioctls::IoEventAddress::from
    - usize::into
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn register_ioevent(&self,fd: &EventFd,addr: &IoEventAddress,datamatch:
      Option<DataMatch>,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1894,1
    - Dst: mshv_ioctls::IoEventAddress::from
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1897,1
    - Dst: unregister_ioevent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1900,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1900,1
    - Dst: vm::HypervisorVmError::UnregisterIoEvent
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1902,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - addr
    argTypes:
    - '&EventFd'
    - '&IoEventAddress'
    constantsTouched: []
    func_position:
      end: 1903
      start: 1891
    functionDepth: 8
    functionLinenumber: 1891
    functionLinenumberEnd: 1903
    functionName: MshvVm::unregister_ioevent
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - usize::into
    - mshv_ioctls::IoEventAddress::from
    - vm::HypervisorVmError::UnregisterIoEvent
    - unregister_ioevent
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn unregister_ioevent(&self, fd: &EventFd, addr: &IoEventAddress)
      -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1932,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1932,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1933,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1933,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1934,1
    - Dst: write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1939,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1939,1
    - Dst: insert
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1939,1
    - Dst: map_user_memory
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1947,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1947,1
    - Dst: vm::HypervisorVmError::CreateUserMemory
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1949,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1949,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 6
    argNames:
    - _slot
    - guest_phys_addr
    - memory_size
    - userspace_addr
    - readonly
    - _log_dirty_pages
    argTypes:
    - u32
    - u64
    - usize
    - '*mut u8'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1951
      start: 1915
    functionDepth: 7
    functionLinenumber: 1915
    functionLinenumberEnd: 1951
    functionName: MshvVm::create_user_memory_region
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - insert
    - try_into
    - Default::default
    - usize::try_into
    - map_err
    - vm::HypervisorVmError::CreateUserMemory
    - std::result::Result::unwrap
    - Ok
    - unwrap
    - usize::into
    - map_user_memory
    - write
    linkageType: ''
    returnType: vm::Result
    signature: 'unsafe fn create_user_memory_region(&self,_slot: u32,guest_phys_addr:
      u64,memory_size: usize,userspace_addr: *mut u8,readonly: bool,_log_dirty_pages:
      bool,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1976,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1976,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1977,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1977,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1978,1
    - Dst: write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1981,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1981,1
    - Dst: remove
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1981,1
    - Dst: unmap_user_memory
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1986,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1986,1
    - Dst: vm::HypervisorVmError::RemoveUserMemory
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1988,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1988,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 6
    argNames:
    - _slot
    - guest_phys_addr
    - memory_size
    - userspace_addr
    - readonly
    - _log_dirty_pages
    argTypes:
    - u32
    - u64
    - usize
    - '*mut u8'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1990
      start: 1959
    functionDepth: 7
    functionLinenumber: 1959
    functionLinenumberEnd: 1990
    functionName: MshvVm::remove_user_memory_region
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::RemoveUserMemory
    - try_into
    - Default::default
    - usize::try_into
    - remove
    - map_err
    - std::result::Result::unwrap
    - Ok
    - unwrap
    - unmap_user_memory
    - usize::into
    - write
    linkageType: ''
    returnType: vm::Result
    signature: 'unsafe fn remove_user_memory_region(&self,_slot: u32,guest_phys_addr:
      u64,memory_size: usize,userspace_addr: *mut u8,readonly: bool,_log_dirty_pages:
      bool,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MshvVm::create_device
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1999,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:1999,1
    - Dst: vm::HypervisorVmError::CreatePassthroughDevice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2000,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1992
    functionDepth: 9
    functionLinenumber: 1992
    functionLinenumberEnd: 2001
    functionName: MshvVm::create_passthrough_device
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::CreatePassthroughDevice
    - MshvVm::create_device
    - vm::Result::map_err
    - usize::into
    linkageType: ''
    returnType: vm::Result
    signature: fn create_passthrough_device(&self) -> vm::Result<VfioDeviceFd>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2008,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2026,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - gsi
    - config
    argTypes:
    - u32
    - '&InterruptSourceConfig'
    constantsTouched: []
    func_position:
      end: 2030
      start: 2006
    functionDepth: 7
    functionLinenumber: 2006
    functionLinenumberEnd: 2030
    functionName: MshvVm::make_routing_entry
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - into
    linkageType: ''
    returnType: IrqRoutingEntry
    signature: 'fn make_routing_entry(&self, gsi: u32, config: &InterruptSourceConfig)
      -> IrqRoutingEntry'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vec_with_array_field::<mshv_user_irq_table, mshv_user_irq_entry>
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2034,1
    - Dst: '&''static [MsrEntry]::len'
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2034,1
    - Dst: '&''static [MsrEntry]::len'
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2035,1
    - Dst: '&''static [MsrEntry]::iter'
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2037,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2037,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2037,1
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2051,1
    - Dst: '&''static [MsrEntry]::len'
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2051,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2052,1
    - Dst: set_msi_routing
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2055,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2055,1
    - Dst: vm::HypervisorVmError::SetGsiRouting
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2057,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 1
    argNames:
    - entries
    argTypes:
    - '&[IrqRoutingEntry]'
    constantsTouched: []
    func_position:
      end: 2058
      start: 2032
    functionDepth: 7
    functionLinenumber: 2032
    functionLinenumberEnd: 2058
    functionName: MshvVm::set_gsi_routing
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - '&''static [MsrEntry]::iter'
    - set_msi_routing
    - map_err
    - '&''static [MsrEntry]::len'
    - copy_from_slice
    - as_mut_slice
    - usize::into
    - Self::collect
    - vec_with_array_field::<mshv_user_irq_table, mshv_user_irq_entry>
    - vm::HypervisorVmError::SetGsiRouting
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_gsi_routing(&self, entries: &[IrqRoutingEntry]) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enable_dirty_page_tracking
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2064,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2064,1
    - Dst: vm::HypervisorVmError::StartDirtyLog
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2066,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2063
    functionDepth: 7
    functionLinenumber: 2063
    functionLinenumberEnd: 2067
    functionName: MshvVm::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - enable_dirty_page_tracking
    - map_err
    - vm::HypervisorVmError::StartDirtyLog
    linkageType: ''
    returnType: vm::Result
    signature: fn start_dirty_log(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2073,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2073,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2077,1
    - Dst: get_dirty_log
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2078,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2078,1
    - Dst: vm::HypervisorVmError::StartDirtyLog
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2084,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2084,1
    - Dst: disable_dirty_page_tracking
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2086,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2086,1
    - Dst: vm::HypervisorVmError::StartDirtyLog
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2088,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2088,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2072
    functionDepth: 8
    functionLinenumber: 2072
    functionLinenumberEnd: 2090
    functionName: MshvVm::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - map_err
    - get_dirty_log
    - disable_dirty_page_tracking
    - vm::HypervisorVmError::StartDirtyLog
    - unwrap
    - read
    - usize::into
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn stop_dirty_log(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_dirty_log
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2096,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2096,1
    - Dst: vm::HypervisorVmError::GetDirtyLog
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2102,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - _slot
    - base_gpa
    - memory_size
    argTypes:
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 2103
      start: 2095
    functionDepth: 8
    functionLinenumber: 2095
    functionLinenumberEnd: 2103
    functionName: MshvVm::get_dirty_log
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - get_dirty_log
    - vm::HypervisorVmError::GetDirtyLog
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: 'fn get_dirty_log(&self, _slot: u32, base_gpa: u64, memory_size: u64)
      -> vm::Result<Vec<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2108,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2108,1
    - Dst: vm::HypervisorVmError::GetClock
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2111,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2111,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2112,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2107
    functionDepth: 7
    functionLinenumber: 2107
    functionLinenumberEnd: 2113
    functionName: MshvVm::get_clock
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - vm::HypervisorVmError::GetClock
    - map_err
    - into
    - usize::into
    - get_partition_property
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: fn get_clock(&self) -> vm::Result<ClockData>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2118,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2119,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2119,1
    - Dst: vm::HypervisorVmError::SetClock
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2124,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&ClockData'
    constantsTouched: []
    func_position:
      end: 2125
      start: 2117
    functionDepth: 7
    functionLinenumber: 2117
    functionLinenumberEnd: 2125
    functionName: MshvVm::set_clock
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - set_partition_property
    - into
    - vm::HypervisorVmError::SetClock
    - usize::into
    linkageType: ''
    returnType: vm::Result
    signature: 'fn set_clock(&self, data: &ClockData) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2128
    functionDepth: 0
    functionLinenumber: 2128
    functionLinenumberEnd: 2130
    functionName: MshvVm::as_any
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&dyn Any'
    signature: fn as_any(&self) -> &dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2135,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2135,1
    - Dst: vm::HypervisorVmError::InitializeSevSnp
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2140,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2134
    functionDepth: 7
    functionLinenumber: 2134
    functionLinenumberEnd: 2141
    functionName: MshvVm::sev_snp_init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - usize::into
    - set_partition_property
    - map_err
    - vm::HypervisorVmError::InitializeSevSnp
    linkageType: ''
    returnType: vm::Result
    signature: fn sev_snp_init(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2154,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2155,1
    - Dst: vec_with_array_field::<mshv_import_isolated_pages, u64>
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2159,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2159,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2161,1
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2166,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2166,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2167,1
    - Dst: import_isolated_pages
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2169,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2169,1
    - Dst: vm::HypervisorVmError::ImportIsolatedPages
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2171,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 3
    argNames:
    - page_type
    - page_size
    - pages
    argTypes:
    - u32
    - u32
    - '&[u64]'
    constantsTouched: []
    func_position:
      end: 2172
      start: 2147
    functionDepth: 7
    functionLinenumber: 2147
    functionLinenumberEnd: 2172
    functionName: MshvVm::import_isolated_pages
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Result::is_empty
    - map_err
    - vm::HypervisorVmError::ImportIsolatedPages
    - Result::len
    - copy_from_slice
    - as_mut_slice
    - usize::into
    - vec_with_array_field::<mshv_import_isolated_pages, u64>
    - import_isolated_pages
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn import_isolated_pages(&self,page_type: u32,page_size: u32,pages:
      &[u64],) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2188,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2191,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2192,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2193,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2195,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2196,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2197,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2197,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2198,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2199,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2200,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2201,1
    - Dst: get_default_snp_guest_policy
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2212,1
    - Dst: complete_isolated_import
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2221,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2221,1
    - Dst: vm::HypervisorVmError::CompleteIsolatedImport
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2223,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 3
    argNames:
    - snp_id_block
    - host_data
    - id_block_enabled
    argTypes:
    - IGVM_VHS_SNP_ID_BLOCK
    - '[u8; 32]'
    - u8
    constantsTouched: []
    func_position:
      end: 2224
      start: 2179
    functionDepth: 6
    functionLinenumber: 2179
    functionLinenumberEnd: 2224
    functionName: MshvVm::complete_isolated_import
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Default::default
    - as_ref
    - to_le_bytes
    - complete_isolated_import
    - copy_from_slice
    - vm::HypervisorVmError::CompleteIsolatedImport
    - get_default_snp_guest_policy
    - usize::into
    linkageType: ''
    returnType: vm::Result
    signature: 'fn complete_isolated_import(&self,snp_id_block: IGVM_VHS_SNP_ID_BLOCK,host_data:
      [u8; 32],id_block_enabled: u8,) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MshvGicV2M::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2228,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2228,1
    - Dst: vm::HypervisorVmError::CreateVgic
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2229,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2232,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2232,1
    - Dst: vm::HypervisorVmError::CreateVgic
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2238,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2242,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2242,1
    - Dst: vm::HypervisorVmError::CreateVgic
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2249,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2252,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2252,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&VgicConfig'
    constantsTouched: []
    func_position:
      end: 2253
      start: 2227
    functionDepth: 5
    functionLinenumber: 2227
    functionLinenumberEnd: 2253
    functionName: MshvVm::create_vgic
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - set_partition_property
    - Arc::new
    - Mutex::new
    - Result::map_err
    - MshvGicV2M::new
    - vm::HypervisorVmError::CreateVgic
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn create_vgic(&self, config: &VgicConfig) -> vm::Result<Arc<Mutex<dyn
      Vgic>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _kvi
    argTypes:
    - '&mut crate::VcpuInit'
    constantsTouched: []
    func_position:
      end: 2258
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2258
    functionName: MshvVm::get_preferred_target
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: vm::Result
    signature: 'fn get_preferred_target(&self, _kvi: &mut crate::VcpuInit) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2263,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2263,1
    - Dst: vm::HypervisorVmError::SetVmProperty
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2261
    functionDepth: 2
    functionLinenumber: 2261
    functionLinenumberEnd: 2273
    functionName: MshvVm::pause
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - set_partition_property
    - vm::HypervisorVmError::SetVmProperty
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: fn pause(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2278,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2278,1
    - Dst: vm::HypervisorVmError::SetVmProperty
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2276
    functionDepth: 2
    functionLinenumber: 2276
    functionLinenumberEnd: 2288
    functionName: MshvVm::resume
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - set_partition_property
    - vm::HypervisorVmError::SetVmProperty
    - map_err
    linkageType: ''
    returnType: vm::Result
    signature: fn resume(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2296,1
    - Dst: load
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2303,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2303,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2303,1
    - Dst: rcu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2304,1
    - Dst: Self::as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2305,1
    - Dst: clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2305,1
    - Dst: enlarge
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2306,1
    - Dst: filter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2311,1
    - Dst: load
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2313,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2313,1
    - Dst: is_bit_set
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2313,1
    - Dst: map
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2311,1
    - Dst: collect
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2311,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2322,1
    - Dst: vec_with_array_field::<mshv_modify_gpa_host_access, u64>
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2323,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2323,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2324,1
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2336,1
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2336,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2337,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2337,1
    - Dst: modify_gpa_host_access
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2340,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2340,1
    - Dst: vm::HypervisorVmError::ModifyGpaHostAccess
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2342,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2342,1
    - Dst: rcu
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2345,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2346,1
    - Dst: Self::set_bit
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2347,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 121
    argCount: 2
    argNames:
    - gpa
    - size
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 2354
      start: 2291
    functionDepth: 6
    functionLinenumber: 2291
    functionLinenumberEnd: 2354
    functionName: MshvVm::gain_page_access
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - filter
    - map_err
    - as_ref
    - enlarge
    - Self::set_bit
    - vm::HypervisorVmError::ModifyGpaHostAccess
    - Ok
    - as_mut_slice
    - len
    - as_slice
    - usize::into
    - Self::as_ref
    - vec_with_array_field::<mshv_modify_gpa_host_access, u64>
    - is_bit_set
    - Self::clone
    - is_empty
    - load
    - modify_gpa_host_access
    - clone
    - map
    - copy_from_slice
    - rcu
    - collect
    linkageType: ''
    returnType: vm::Result
    signature: 'fn gain_page_access(&self, gpa: u64, size: u32) -> vm::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2359,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2359,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2365,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2370,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2370,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2376,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2381,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2381,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2387,1
    - Dst: initialize
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2393,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2393,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2395,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2395,1
    - Dst: snp::get_default_snp_guest_policy
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2400,1
    - Dst: snp::get_default_vmgexit_offload_features
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2401,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2408,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2408,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2413,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2413,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2418,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2418,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2423,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2423,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2432,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2432,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2438,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2438,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2441,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2441,1
    - Dst: vm::HypervisorVmError::InitializeVm
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2446,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2446,1
    - Dst: get_msr_index_list
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2449,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2449,1
    - Dst: vm::HypervisorVmError::GetMsrList
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2452,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2452,1
    - Dst: hypervisor::Result::iter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2459,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2459,1
    - Dst: store
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2462,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2462,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs:2464,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 129
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2356
    functionDepth: 16
    functionLinenumber: 2356
    functionLinenumberEnd: 2465
    functionName: MshvVm::init
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
    functionUses: 0
    functionsReached:
    - snp::get_default_vmgexit_offload_features
    - map_err
    - set_partition_property
    - vm::HypervisorVmError::InitializeVm
    - initialize
    - snp::get_default_snp_guest_policy
    - Arc::new
    - impl Iterator::enumerate
    - store
    - Ok
    - usize::into
    - hypervisor::Result::iter
    - get_msr_index_list
    - vm::HypervisorVmError::GetMsrList
    linkageType: ''
    returnType: vm::Result
    signature: fn init(&self) -> vm::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EsrEl2::from
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:35,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:40,1
    - Dst: IssDataAbort::from
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:43,1
    - Dst: Self::iss
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:43,1
    - Dst: Self::isv
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:44,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:45,1
    - Dst: Self::sas
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:47,1
    - Dst: Self::sse
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:48,1
    - Dst: Self::srt
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:49,1
    - Dst: get_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:51,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:51,1
    - Dst: PlatformError::GetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:55,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:55,1
    - Dst: Result::get_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:56,1
    - Dst: Self::wnr
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:58,1
    - Dst: to_ne_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:59,1
    - Dst: mmio_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:67,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:67,1
    - Dst: PlatformError::MemoryWriteFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:69,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:69,1
    - Dst: mmio_read
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:74,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:74,1
    - Dst: PlatformError::MemoryReadFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:76,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:76,1
    - Dst: u64::from_ne_bytes
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:79,1
    - Dst: Self::sf
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:83,1
    - Dst: Result::get_pc
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:90,1
    - Dst: Result::set_pc
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:91,1
    - Dst: Self::il
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:91,1
    - Dst: Result::set_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:92,1
    - Dst: set_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:94,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:94,1
    - Dst: PlatformError::SetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:97,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:97,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs:99,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 144
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 34
    functionDepth: 7
    functionLinenumber: 34
    functionLinenumberEnd: 100
    functionName: Emulator::emulate_with_syndrome
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs
    functionUses: 1
    functionsReached:
    - map_err
    - set_regs
    - mmio_read
    - Result::get_regs
    - Ok
    - Self::sas
    - PlatformError::MemoryWriteFailure
    - Result::set_regs
    - Self::sf
    - usize::into
    - PlatformError::SetCpuStateFailure
    - u64::from_ne_bytes
    - Self::srt
    - PlatformError::GetCpuStateFailure
    - Self::isv
    - Result::get_pc
    - Self::sse
    - get_regs
    - Result::set_pc
    - mmio_write
    - EsrEl2::from
    - to_ne_bytes
    - Self::wnr
    - PlatformError::MemoryReadFailure
    - Self::il
    - IssDataAbort::from
    - Self::iss
    linkageType: ''
    returnType: Result
    signature: pub fn emulate_with_syndrome(&mut self) -> Result<bool, PlatformError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:56,1
    - Dst: iter
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:59,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: VcpuMshvState::fmt
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - enumerate
    - len
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - GicState
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: MshvGicV2MState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(state: GicState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - _vm
    - config
    argTypes:
    - '&dyn Vm'
    - '&VgicConfig'
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: MshvGicV2M::new
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(_vm: &dyn Vm, config: &VgicConfig) -> Result<MshvGicV2M>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: MshvGicV2M::fdt_compatibility
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: fn fdt_compatibility(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: MshvGicV2M::msi_compatible
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn msi_compatible(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: MshvGicV2M::msi_compatibility
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: fn msi_compatibility(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: MshvGicV2M::fdt_maint_irq
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn fdt_maint_irq(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: MshvGicV2M::vcpu_count
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn vcpu_count(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: MshvGicV2M::msi_properties
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u64; 2]'
    signature: fn msi_properties(&self) -> [u64; 2]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: MshvGicV2M::device_properties
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u64; 4]'
    signature: fn device_properties(&self) -> [u64; 4]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _vcpu_states
    argTypes:
    - '&[CpuState]'
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: MshvGicV2M::set_gicr_typers
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_gicr_typers(&mut self, _vcpu_states: &[CpuState])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: MshvGicV2M::state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn state(&self) -> Result<GicState>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: MshvGicV2M::as_any_concrete_mut
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_concrete_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _state
    argTypes:
    - '&GicState'
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: MshvGicV2M::set_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn set_state(&mut self, _state: &GicState) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: MshvGicV2M::save_data_tables
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: fn save_data_tables(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:26,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:29,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:31,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:29,1
    - Dst: PlatformError::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:32,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:35,1
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:36,1
    - Dst: PlatformError::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - gva
    - flags
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 8
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: MshvEmulatorContext::translate
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 2
    functionsReached:
    - map_err
    - into
    - Err
    - translate_gva
    - PlatformError::TranslateVirtualAddress
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn translate(&self, gva: u64, flags: u32) -> Result<u64, PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MshvEmulatorContext::translate
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:41,1
    - Dst: guest_mem_read
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:50,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:50,1
    - Dst: mmio_read
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:52,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:52,1
    - Dst: PlatformError::MemoryReadFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:54,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:54,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - gva
    - data
    - flags
    argTypes:
    - u64
    - '&mut [u8]'
    - u32
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 9
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: MshvEmulatorContext::r
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 1
    functionsReached:
    - guest_mem_read
    - map_err
    - is_err
    - PlatformError::MemoryReadFailure
    - MshvEmulatorContext::translate
    - mmio_read
    - usize::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn r(&self, gva: u64, data: &mut [u8], flags: u32) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:66,1
    - Dst: MshvEmulatorContext::r
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:81,1
    - Dst: MshvEmulatorContext::r
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:84,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - gva
    - data
    - flags
    argTypes:
    - u64
    - '&mut [u8]'
    - u32
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 10
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: MshvEmulatorContext::read_memory_flags
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 2
    functionsReached:
    - String::len
    - MshvEmulatorContext::r
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn read_memory_flags(&self,gva: u64,data: &mut [u8],flags: u32,) ->
      Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MshvEmulatorContext::translate
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:91,1
    - Dst: guest_mem_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:100,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:100,1
    - Dst: mmio_write
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:102,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:102,1
    - Dst: PlatformError::MemoryWriteFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:104,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:104,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - gva
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 9
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: MshvEmulatorContext::w
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 1
    functionsReached:
    - mmio_write
    - map_err
    - PlatformError::MemoryWriteFailure
    - is_err
    - MshvEmulatorContext::translate
    - usize::into
    - guest_mem_write
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn w(&mut self, gva: u64, data: &[u8]) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MshvEmulatorContext::read_memory_flags
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gva
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 11
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: MshvEmulatorContext::read_memory
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 0
    functionsReached:
    - MshvEmulatorContext::read_memory_flags
    linkageType: ''
    returnType: Result
    signature: 'fn read_memory(&self, gva: u64, data: &mut [u8]) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:120,1
    - Dst: MshvEmulatorContext::w
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:135,1
    - Dst: MshvEmulatorContext::w
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:138,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - gva
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 10
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: MshvEmulatorContext::write_memory
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 0
    functionsReached:
    - String::len
    - MshvEmulatorContext::w
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_memory(&mut self, gva: u64, data: &[u8]) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:146,1
    - Dst: PlatformError::GetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:146,1
    - Dst: get_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:153,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:153,1
    - Dst: PlatformError::GetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:156,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:156,1
    - Dst: get_sregs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:157,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:157,1
    - Dst: PlatformError::GetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:160,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:160,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 166
      start: 144
    functionDepth: 7
    functionLinenumber: 144
    functionLinenumberEnd: 166
    functionName: MshvEmulatorContext::cpu_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 1
    functionsReached:
    - PlatformError::GetCpuStateFailure
    - get_sregs
    - map_err
    - get_regs
    - Err
    - usize::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn cpu_state(&self, cpu_id: usize) -> Result<Self::CpuState, PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:170,1
    - Dst: PlatformError::SetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:170,1
    - Dst: set_regs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:180,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:180,1
    - Dst: PlatformError::SetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:182,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:182,1
    - Dst: set_sregs
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:183,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:183,1
    - Dst: PlatformError::SetCpuStateFailure
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:185,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 2
    argNames:
    - cpu_id
    - state
    argTypes:
    - usize
    - Self::CpuState
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 8
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: MshvEmulatorContext::set_cpu_state
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 0
    functionsReached:
    - set_sregs
    - map_err
    - Err
    - set_regs
    - usize::into
    - PlatformError::SetCpuStateFailure
    linkageType: ''
    returnType: Result
    signature: 'fn set_cpu_state(&self, cpu_id: usize, state: Self::CpuState) -> Result<(),
      PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MshvEmulatorContext::cpu_state
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:190,1
    - Dst: linearize
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:190,1
    - Dst: MshvEmulatorContext::read_memory_flags
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ip
    - instruction_bytes
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 8
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: MshvEmulatorContext::fetch
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
    functionUses: 0
    functionsReached:
    - linearize
    - MshvEmulatorContext::cpu_state
    - MshvEmulatorContext::read_memory_flags
    linkageType: ''
    returnType: Result
    signature: 'fn fetch(&self, ip: u64, instruction_bytes: &mut [u8]) -> Result<(),
      PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - SegmentRegister
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: MshvSegmentRegister::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: SegmentRegister) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dt
    argTypes:
    - DescriptorTable
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: TableRegister::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(dt: DescriptorTable) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:139,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:140,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:141,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:142,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:143,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:144,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:145,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:146,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:147,1
    - Dst: into
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - s
    argTypes:
    - SpecialRegisters
    constantsTouched: []
    func_position:
      end: 158
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 158
    functionName: MshvSpecialRegisters::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: SpecialRegisters) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - CpuIdEntry
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: hv_cpuid_entry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: CpuIdEntry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - FpuState
    constantsTouched: []
    func_position:
      end: 245
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 245
    functionName: FloatingPointUnit::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: FpuState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - LapicState
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: MshvLapicState::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: LapicState) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - MsrEntry
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: msr_entry::from
    functionSourceFile: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: MsrEntry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:32,1
    - Dst: next
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:33,1
    - Dst: map
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:33,1
    - Dst: trailing_zeros
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:42,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:44,1
    - Dst: mul
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:45,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:45,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:45,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 58
    functionName: BitposIterator::next
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    - is_none
    - trailing_zeros
    - mul
    - unwrap
    - Some
    - checked_add
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: BitposIteratorExt::bit_positions
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl Iterator
    signature: fn bit_positions(self) -> impl Iterator<Item = u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - inp
    - out
    argTypes:
    - '&[u64]'
    - '&[u64]'
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: unit_tests::bitpos_check
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn bitpos_check(inp: &[u64], out: &[u64])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitpos_check
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:86,1
    - Dst: bitpos_check
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:87,1
    - Dst: bitpos_check
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:88,1
    - Dst: bitpos_check
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:89,1
    - Dst: bitpos_check
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:90,1
    - Dst: bitpos_check
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:91,1
    - Dst: bitpos_check
      Src: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: unit_tests::bitpos_iterator_works
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs
    functionUses: 0
    functionsReached:
    - bitpos_check
    linkageType: ''
    returnType: void
    signature: fn bitpos_iterator_works()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - command
    - length
    argTypes:
    - Command
    - u64
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: Request::new
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(command: Command, length: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Request::start
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: pub fn start() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - length
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 5
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Request::state
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn state(length: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - length
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: Request::config
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn config(length: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - length
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Request::memory
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 2
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn memory(length: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - length
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Request::memory_fd
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn memory_fd(length: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Request::complete
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: pub fn complete() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 5
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Request::abandon
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: pub fn abandon() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Request::command
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Command
    signature: pub fn command(&self) -> Command
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Request::length
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn length(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Request::default
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:180,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:181,1
    - Dst: Self::as_mut_slice
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:181,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:181,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: Request::read_from
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Result::read_exact
    - Self::as_mut_slice
    - Request::default
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_from(fd: &mut dyn Read) -> Result<Request, MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:188,1
    - Dst: Self::as_slice
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:188,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: Request::write_to
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - Self::as_slice
    - Result::write_all
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_to(&self, fd: &mut dyn Write) -> Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - length
    argTypes:
    - Status
    - u64
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: Response::new
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 6
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(status: Status, length: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: Response::ok
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: pub fn ok() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 5
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: Response::error
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: pub fn error() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: Response::status
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Status
    signature: pub fn status(&self) -> Status
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Response::length
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn length(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Response::default
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:239,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:240,1
    - Dst: Self::as_mut_slice
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:240,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:240,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: Response::read_from
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 4
    functionsReached:
    - map_err
    - Result::read_exact
    - Self::as_mut_slice
    - Response::default
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_from(fd: &mut dyn Read) -> Result<Response, MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Request::abandon
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:255,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:255,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:256,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:257,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - fd
    - error
    argTypes:
    - '&mut T'
    - MigratableError
    constantsTouched: []
    func_position:
      end: 260
      start: 246
    functionDepth: 6
    functionLinenumber: 246
    functionLinenumberEnd: 260
    functionName: Response::ok_or_abandon
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - Err
    - Response::read_from
    - Self::write_to
    - Request::abandon
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn ok_or_abandon<T>(self,fd: &mut T,error: MigratableError,) ->
      Result<Response, MigratableError>whereT: Read + Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:263,1
    - Dst: Self::as_slice
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:263,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: Response::write_to
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - Self::as_slice
    - Result::write_all
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_to(&self, fd: &mut dyn Write) -> Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into_iter
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:291,1
    - Dst: bit_positions
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:291,1
    - Dst: map
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:291,1
    - Dst: coalesce
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:291,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:299,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:301,1
    - Dst: map
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 3
    argNames:
    - bitmap
    - start_addr
    - page_size
    argTypes:
    - impl IntoIterator<Item = u64>
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 308
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 308
    functionName: MemoryRangeTable::dirty_ranges_iter
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - map
    - coalesce
    - Err
    - Self::into_iter
    - bit_positions
    - Ok
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn dirty_ranges_iter(bitmap: impl IntoIterator<Item = u64>,start_addr:
      u64,page_size: u64,) -> impl Iterator<Item = MemoryRange>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::dirty_ranges_iter
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:320,1
    - Dst: impl Iterator::collect
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bitmap
    - start_addr
    - page_size
    argTypes:
    - impl IntoIterator<Item = u64>
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 322
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 322
    functionName: MemoryRangeTable::from_dirty_bitmap
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 4
    functionsReached:
    - Self::dirty_ranges_iter
    - impl Iterator::collect
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_dirty_bitmap(bitmap: impl IntoIterator<Item = u64>,start_addr:
      u64,page_size: u64,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: MemoryRangeTable::regions
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[MemoryRange]'
    signature: pub fn regions(&self) -> &[MemoryRange]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - range
    argTypes:
    - MemoryRange
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: MemoryRangeTable::push
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: 'pub fn push(&mut self, range: MemoryRange)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:335,1
    - Dst: String::resize_with
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:336,1
    - Dst: std::mem::size_of::<MemoryRange>
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:337,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:341,1
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:342,1
    - Dst: String::as_ptr
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:343,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:341,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - fd
    - length
    argTypes:
    - '&mut dyn Read'
    - u64
    constantsTouched: []
    func_position:
      end: 350
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 350
    functionName: MemoryRangeTable::read_from
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Vec::new
    - std::mem::size_of::<MemoryRange>
    - Result::read_exact
    - std::slice::from_raw_parts_mut
    - String::as_ptr
    - String::resize_with
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_from(fd: &mut dyn Read, length: u64) -> Result<MemoryRangeTable,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<MemoryRange>
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:353,1
    - Dst: len
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: MemoryRangeTable::length
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 1
    functionsReached:
    - std::mem::size_of::<MemoryRange>
    - len
    linkageType: ''
    returnType: u64
    signature: pub fn length(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:358,1
    - Dst: std::slice::from_raw_parts
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:359,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:359,1
    - Dst: MemoryRangeTable::length
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:359,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: MemoryRangeTable::write_to
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - Result::write_all
    - map_err
    - std::slice::from_raw_parts
    - MemoryRangeTable::length
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_to(&self, fd: &mut dyn Write) -> Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: MemoryRangeTable::is_empty
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - is_empty
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - table
    argTypes:
    - Self
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: MemoryRangeTable::extend
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - extend
    linkageType: ''
    returnType: void
    signature: 'pub fn extend(&mut self, table: Self)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:373,1
    - Dst: String::extend
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tables
    argTypes:
    - Vec<Self>
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 5
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: MemoryRangeTable::new_from_tables
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 2
    functionsReached:
    - String::extend
    - Vec::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_from_tables(tables: Vec<Self>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryRangeTable::from_dirty_bitmap
      Src: /src/cloud-hypervisor/vm-migration/src/protocol.rs:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 410
    functionName: unit_tests::test_memory_range_table_from_dirty_ranges_iter
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/protocol.rs
    functionUses: 0
    functionsReached:
    - MemoryRangeTable::from_dirty_bitmap
    linkageType: ''
    returnType: void
    signature: fn test_memory_range_table_from_dirty_ranges_iter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Pausable::pause
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Pausable::resume
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:87,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:87,1
    - Dst: MigratableError::Restore
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: SnapshotData::to_state
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 1
    functionsReached:
    - std::result::Result::map_err
    - MigratableError::Restore
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'pub fn to_state<''a, T>(&''a self) -> Result<T, MigratableError>whereT:
      Deserialize<''a>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:96,1
    - Dst: String::map_err
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:96,1
    - Dst: MigratableError::Snapshot
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:97,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: SnapshotData::new_from_state
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 4
    functionsReached:
    - serde_json::to_string
    - Ok
    - String::map_err
    - MigratableError::Snapshot
    linkageType: ''
    returnType: Result
    signature: 'pub fn new_from_state<T>(state: &T) -> Result<Self, MigratableError>whereT:
      Serialize,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:129,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - SnapshotData
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: Snapshot::from_data
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 4
    functionsReached:
    - Some
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_data(data: SnapshotData) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:139,1
    - Dst: Snapshot::from_data
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:139,1
    - Dst: SnapshotData::new_from_state
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Snapshot::new_from_state
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 27
    functionsReached:
    - SnapshotData::new_from_state
    - Snapshot::from_data
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new_from_state<T>(state: &T) -> Result<Self, MigratableError>whereT:
      Serialize,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - snapshot
    argTypes:
    - String
    - Snapshot
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 9
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Snapshot::add_snapshot
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: 'pub fn add_snapshot(&mut self, id: String, snapshot: Snapshot)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:152,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:152,1
    - Dst: MigratableError::Restore
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:154,1
    - Dst: to_state
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: Snapshot::to_state
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - MigratableError::Restore
    - ok_or_else
    - to_state
    linkageType: ''
    returnType: Result
    signature: 'pub fn to_state<''a, T>(&''a self) -> Result<T, MigratableError>whereT:
      Deserialize<''a>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ApiResult::and_then
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:160,1
    - Dst: get
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - snapshot
    - id
    argTypes:
    - Option<&'a Snapshot>
    - '&str'
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 8
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: snapshot_from_id
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 10
    functionsReached:
    - get
    - ApiResult::and_then
    linkageType: ''
    returnType: Option
    signature: 'pub fn snapshot_from_id<''a>(snapshot: Option<&''a Snapshot>, id:
      &str) -> Option<&''a Snapshot>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::as_ref
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:167,1
    - Dst: get
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:168,1
    - Dst: map
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:168,1
    - Dst: FdtWriterResult::to_state
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:168,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:168,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - s
    - id
    argTypes:
    - Option<&'a Snapshot>
    - '&str'
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 8
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: state_from_id
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 19
    functionsReached:
    - map
    - transpose
    - FdtWriterResult::to_state
    - get
    - FdtWriterResult::as_ref
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn state_from_id<''a, T>(s: Option<&''a Snapshot>, id: &str) ->
      Result<Option<T>, MigratableError>whereT: Deserialize<''a>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: Snapshottable::id
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - String::new
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:183,1
    - Dst: Snapshot::default
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: Snapshottable::snapshot
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Snapshot::default
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _snapshot
    - _destination_url
    argTypes:
    - '&Snapshot'
    - '&str'
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: Transportable::send
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn send(&self,_snapshot: &Snapshot,_destination_url: &str,) -> std::result::Result<(),
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:214,1
    - Dst: Snapshot::default
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _source_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 6
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Transportable::recv
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Snapshot::default
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn recv(&self, _source_url: &str) -> std::result::Result<Snapshot,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: Migratable::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Migratable::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:236,1
    - Dst: MemoryRangeTable::default
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Migratable::dirty_log
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - MemoryRangeTable::default
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn dirty_log(&mut self) -> std::result::Result<MemoryRangeTable, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Migratable::start_migration
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-migration/src/lib.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Migratable::complete_migration
    functionSourceFile: /src/cloud-hypervisor/vm-migration/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn complete_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - rx
    - file
    argTypes:
    - flume::Receiver<String>
    - Option<File>
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Monitor::new
    functionSourceFile: /src/cloud-hypervisor/event_monitor/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(rx: flume::Receiver<String>, file: Option<File>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flume::unbounded
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:43,1
    - Dst: push
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Monitor::subscribe
    functionSourceFile: /src/cloud-hypervisor/event_monitor/src/lib.rs
    functionUses: 0
    functionsReached:
    - push
    - flume::unbounded
    linkageType: ''
    returnType: flume::Receiver
    signature: pub fn subscribe(&mut self) -> flume::Receiver<Arc<String>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::as_raw_fd
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:55,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:59,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:61,1
    - Dst: Err
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:65,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:65,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&File'
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: set_file_nonblocking
    functionSourceFile: /src/cloud-hypervisor/event_monitor/src/lib.rs
    functionUses: 1
    functionsReached:
    - Vec::as_raw_fd
    - Err
    - libc::fcntl
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn set_file_nonblocking(file: &File) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_file_nonblocking
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:78,1
    - Dst: flume::unbounded
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:81,1
    - Dst: Monitor::new
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:82,1
    - Dst: get_or_init
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:84,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:86,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - file
    argTypes:
    - Option<File>
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: set_monitor
    functionSourceFile: /src/cloud-hypervisor/event_monitor/src/lib.rs
    functionUses: 1
    functionsReached:
    - get_or_init
    - Instant::now
    - flume::unbounded
    - Monitor::new
    - set_file_nonblocking
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn set_monitor(file: Option<File>) -> io::Result<Monitor>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::iter
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:96,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:96,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: PropertiesFormatter::fmt
    functionSourceFile: /src/cloud-hypervisor/event_monitor/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Self::iter
    - impl Iterator::enumerate
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:117,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:117,1
    - Dst: elapsed
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:119,1
    - Dst: serde_json::to_string_pretty
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:125,1
    - Dst: send
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:126,1
    - Dst: ok
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - source
    - event
    - properties
    argTypes:
    - '&str'
    - '&str'
    - Option<&HashMap<Cow<str>, Cow<str>>>
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 8
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: event_log
    functionSourceFile: /src/cloud-hypervisor/event_monitor/src/lib.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - ok
    - serde_json::to_string_pretty
    - get
    - send
    - elapsed
    linkageType: ''
    returnType: void
    signature: 'pub fn event_log(source: &str, event: &str, properties: Option<&HashMap<Cow<str>,
      Cow<str>>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::std::collections::HashMap::new
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:3,1
    - Dst: '[u32; 4]::insert'
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:5,1
    - Dst: into
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:5,1
    - Dst: into
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:5,1
    - Dst: $crate::event_log
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:7,1
    - Dst: Some
      Src: /src/cloud-hypervisor/event_monitor/src/lib.rs:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 9
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: event
    functionSourceFile: /src/cloud-hypervisor/event_monitor/src/lib.rs
    functionUses: 75
    functionsReached:
    - into
    - $crate::event_log
    - ::std::collections::HashMap::new
    - '[u32; 4]::insert'
    - Some
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::time::Instant::now
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:95,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:98,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:99,1
    - Dst: TcpListener::bind
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:107,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:107,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:107,1
    - Dst: std::result::Result::set_nonblocking
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:108,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:108,1
    - Dst: epoll::create
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:113,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:113,1
    - Dst: fs::File::from_raw_fd
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:115,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:116,1
    - Dst: std::result::Result::as_raw_fd
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:119,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:120,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:116,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:123,1
    - Dst: epoll::Events::empty
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:123,1
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:125,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:126,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:127,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:129,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:125,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:134,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:139,1
    - Dst: u64::ip
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:142,1
    - Dst: std::net::IpAddr::from_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:142,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:142,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:148,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:151,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:154,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:155,1
    - Dst: WaitForBootError::Accept
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:155,1
    - Dst: closure
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:160,1
    - Dst: elapsed
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:162,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:173,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:175,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 91
    argCount: 1
    argNames:
    - custom_timeout
    argTypes:
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 177
      start: 94
    functionDepth: 14
    functionLinenumber: 94
    functionLinenumberEnd: 177
    functionName: GuestNetworkConfig::wait_vm_boot
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - expect
    - epoll::wait
    - std::result::Result::set_nonblocking
    - std::result::Result::accept
    - map_err
    - epoll::create
    - '&str::to_string'
    - WaitForBootError::Accept
    - TcpListener::bind
    - fs::File::from_raw_fd
    - Ok
    - elapsed
    - String::new
    - std::result::Result::as_raw_fd
    - epoll::Event::new
    - u64::ip
    - as_str
    - epoll::ctl
    - std::net::IpAddr::from_str
    - std::result::Result::unwrap
    - Err
    - usize::raw_os_error
    - std::time::Instant::now
    - Result::map_err
    - closure
    - epoll::Events::empty
    linkageType: ''
    returnType: Result
    signature: 'pub fn wait_vm_boot(&self, custom_timeout: Option<i32>) -> Result<(),
      WaitForBootError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:202,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - image_name
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: UbuntuDiskConfig::new
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 112
    functionsReached:
    - String::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(image_name: String) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:220,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:221,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:222,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - image_name
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: WindowsDiskConfig::new
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - String::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(image_name: String) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:231,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:231,1
    - Dst: arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:231,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:233,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:231,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:231,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:238,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:238,1
    - Dst: arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:238,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:240,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:238,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:238,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:245,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:245,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:246,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:245,1
    - Dst: (bool, Vec::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: WindowsDiskConfig::drop
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - expect
    - std::process::Command::new
    - (bool, Vec::expect
    - as_str
    - Self::args
    - output
    - Vec::output
    - arg
    - Self::arg
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:258,1
    - Dst: Self::parent
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:270,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:270,1
    - Dst: to_path_buf
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:270,1
    - Dst: Self::join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:272,1
    - Dst: exists
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:273,1
    - Dst: fs::read_to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:274,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:274,1
    - Dst: Result::contains
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:275,1
    - Dst: Result::contains
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 283
    functionName: workspace_root
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 2
    functionsReached:
    - fs::read_to_string
    - Self::parent
    - to_path_buf
    - Result::contains
    - Self::join
    - PathBuf::from
    - unwrap
    - exists
    linkageType: ''
    returnType: PathBuf
    signature: fn workspace_root() -> PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:288,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:288,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:288,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:288,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:288,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:290,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:290,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:290,1
    - Dst: fs::create_dir_all
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:292,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:292,1
    - Dst: workspace_root
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:295,1
    - Dst: PathBuf::join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:295,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:295,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:295,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:295,1
    - Dst: iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:301,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:301,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:302,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:303,1
    - Dst: rate_limited_copy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:304,1
    - Dst: io::Result::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:304,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:308,1
    - Dst: fs::File::open
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:309,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:309,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:309,1
    - Dst: read_to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:309,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:309,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:313,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:317,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:319,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:319,1
    - Dst: fs::File::create
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:321,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:321,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:321,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:321,1
    - Dst: Result::as_bytes
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:323,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:321,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:326,1
    - Dst: fs::File::open
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:328,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:328,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:328,1
    - Dst: read_to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:328,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:328,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:333,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:334,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:335,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:336,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:337,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:338,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:339,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:341,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:343,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:345,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:347,1
    - Dst: Result::replace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:349,1
    - Dst: fs::File::create
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:351,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:351,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:351,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:351,1
    - Dst: Result::as_bytes
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:353,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:351,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:356,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:356,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:356,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:358,1
    - Dst: Vec::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:356,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:356,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:356,1
    - Dst: iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:363,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:363,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:366,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:366,1
    - Dst: args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:366,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:368,1
    - Dst: args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:366,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:369,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:369,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:369,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:366,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 227
    argCount: 2
    argNames:
    - tmp_dir
    - network
    argTypes:
    - '&TempDir'
    - '&GuestNetworkConfig'
    constantsTouched: []
    func_position:
      end: 375
      start: 286
    functionDepth: 11
    functionLinenumber: 286
    functionLinenumberEnd: 375
    functionName: UbuntuDiskConfig::prepare_cloudinit
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - expect
    - args
    - Self::as_str
    - '&TempDir::as_path'
    - to_string
    - to_str
    - Result::replace
    - String::from
    - write_all
    - Result::as_bytes
    - std::process::Command::new
    - fs::File::open
    - String::new
    - PathBuf::join
    - output
    - Vec::args
    - rate_limited_copy
    - workspace_root
    - iter
    - for_each
    - io::Result::expect
    - Vec::arg
    - unwrap
    - join
    - fs::File::create
    - Self::arg
    - read_to_string
    - fs::create_dir_all
    - Self::args
    linkageType: ''
    returnType: String
    signature: 'fn prepare_cloudinit(&self, tmp_dir: &TempDir, network: &GuestNetworkConfig)
      -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:378,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:378,1
    - Dst: push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:379,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:382,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:384,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:384,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:384,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:384,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:384,1
    - Dst: UbuntuDiskConfig::prepare_cloudinit
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:385,1
    - Dst: rate_limited_copy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:387,1
    - Dst: io::Result::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 2
    argNames:
    - tmp_dir
    - network
    argTypes:
    - '&TempDir'
    - '&GuestNetworkConfig'
    constantsTouched: []
    func_position:
      end: 392
      start: 377
    functionDepth: 12
    functionLinenumber: 377
    functionLinenumberEnd: 392
    functionName: UbuntuDiskConfig::prepare_files
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - dirs::home_dir
    - UbuntuDiskConfig::prepare_cloudinit
    - push
    - io::Result::expect
    - workload_path::push
    - join
    - unwrap
    - rate_limited_copy
    - '&TempDir::as_path'
    - to_str
    - String::from
    linkageType: ''
    returnType: void
    signature: 'fn prepare_files(&mut self, tmp_dir: &TempDir, network: &GuestNetworkConfig)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:396,1
    - Dst: clone
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:396,1
    - Dst: Some
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:397,1
    - Dst: clone
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - disk_type
    argTypes:
    - DiskType
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: UbuntuDiskConfig::disk
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - Some
    - clone
    linkageType: ''
    returnType: Option
    signature: 'fn disk(&self, disk_type: DiskType) -> Option<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _tmp_dir
    - _network
    argTypes:
    - '&TempDir'
    - '&GuestNetworkConfig'
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: WindowsDiskConfig::prepare_cloudinit
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - String::new
    linkageType: ''
    returnType: String
    signature: 'fn prepare_cloudinit(&self, _tmp_dir: &TempDir, _network: &GuestNetworkConfig)
      -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:408,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:408,1
    - Dst: push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:409,1
    - Dst: workload_path::push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:412,1
    - Dst: fs::metadata
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:414,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:414,1
    - Dst: len
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:414,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:420,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:420,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:420,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:420,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:420,1
    - Dst: std::fs::File::create
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:425,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:425,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:425,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:427,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:427,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:432,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:432,1
    - Dst: arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:432,1
    - Dst: arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:432,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:435,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:432,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:432,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:439,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:439,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:439,1
    - Dst: '&TempDir::as_path'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:443,1
    - Dst: file_name
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:443,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:443,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:450,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:450,1
    - Dst: arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:450,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:452,1
    - Dst: args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:450,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:455,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:450,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:450,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:463,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:463,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:463,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:463,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:469,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:469,1
    - Dst: arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:469,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:471,1
    - Dst: args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:469,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:474,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:469,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:469,1
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:485,1
    - Dst: Self::arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:485,1
    - Dst: output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:485,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 126
    argCount: 2
    argNames:
    - tmp_dir
    - _network
    argTypes:
    - '&TempDir'
    - '&GuestNetworkConfig'
    constantsTouched: []
    func_position:
      end: 493
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 493
    functionName: WindowsDiskConfig::prepare_files
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - expect
    - args
    - trim
    - push
    - Self::as_str
    - fs::metadata
    - '&TempDir::as_path'
    - to_string
    - to_str
    - arg
    - String::from
    - std::process::Command::new
    - dirs::home_dir
    - std::io::Result::expect
    - String::from_utf8_lossy
    - workload_path::push
    - output
    - file_name
    - len
    - as_str
    - unwrap
    - join
    - set_len
    - Self::arg
    - std::fs::File::create
    linkageType: ''
    returnType: void
    signature: 'fn prepare_files(&mut self, tmp_dir: &TempDir, _network: &GuestNetworkConfig)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:497,1
    - Dst: clone
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - disk_type
    argTypes:
    - DiskType
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: WindowsDiskConfig::disk
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - Some
    - clone
    linkageType: ''
    returnType: Option
    signature: 'fn disk(&self, disk_type: DiskType) -> Option<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::MaybeUninit::zeroed
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:506,1
    - Dst: std::ffi::CString::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:507,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:507,1
    - Dst: libc::statvfs
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:508,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:508,1
    - Dst: as_mut_ptr
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:508,1
    - Dst: assume_init
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:510,1
    - Dst: assume_init
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:511,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:519,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:519,1
    - Dst: fs::copy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:523,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:525,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:529,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:529,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:533,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:535,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:538,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - P
    - Q
    constantsTouched: []
    func_position:
      end: 539
      start: 503
    functionDepth: 10
    functionLinenumber: 503
    functionLinenumberEnd: 539
    functionName: rate_limited_copy
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 4
    functionsReached:
    - as_ptr
    - thread::sleep
    - assume_init
    - std::time::Duration::new
    - io::Error::last_os_error
    - as_mut_ptr
    - std::ffi::CString::new
    - Err
    - Ok
    - fs::copy
    - Result::unwrap
    - std::mem::MaybeUninit::zeroed
    - usize::raw_os_error
    - libc::statvfs
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn rate_limited_copy<P: AsRef<Path>, Q: AsRef<Path>>(from: P,
      to: Q) -> io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::is_ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:547,1
    - Dst: success
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:547,1
    - Dst: code
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:551,1
    - Dst: signal
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:554,1
    - Dst: Some
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:554,1
    - Dst: u64::is_ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:554,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - r
    - output
    argTypes:
    - Result<(), std::boxed::Box<dyn std::any::Any + std::marker::Send>>
    - '&std::process::Output'
    constantsTouched: []
    func_position:
      end: 578
      start: 542
    functionDepth: 14
    functionLinenumber: 542
    functionLinenumberEnd: 578
    functionName: handle_child_output
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 115
    functionsReached:
    - u64::is_ok
    - success
    - code
    - signal
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn handle_child_output(r: Result<(), std::boxed::Box<dyn std::any::Any
      + std::marker::Send>>,output: &std::process::Output,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpStream::connect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:631,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:631,1
    - Dst: Session::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:632,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:632,1
    - Dst: set_tcp_stream
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:633,1
    - Dst: handshake
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:634,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:634,1
    - Dst: userauth_password
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:636,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:636,1
    - Dst: fs::read
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:640,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:640,1
    - Dst: fs::metadata
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:641,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:641,1
    - Dst: permissions
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:641,1
    - Dst: mode
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:641,1
    - Dst: scp_send
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:647,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:648,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:647,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:650,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:650,1
    - Dst: send_eof
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:653,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:653,1
    - Dst: wait_eof
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:654,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:654,1
    - Dst: close
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:658,1
    - Dst: wait_close
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:659,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:661,1
    - Dst: closure
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:664,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:679,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:683,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:683,1
    - Dst: into
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:683,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:685,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 98
    argCount: 6
    argNames:
    - path
    - remote_path
    - auth
    - ip
    - retries
    - timeout
    argTypes:
    - '&Path'
    - '&Path'
    - '&PasswordAuth'
    - '&str'
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 686
      start: 619
    functionDepth: 8
    functionLinenumber: 619
    functionLinenumberEnd: 686
    functionName: scp_to_guest_with_auth
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - wait_eof
    - userauth_password
    - map_err
    - IoResult::map_err
    - fs::metadata
    - Result::unwrap
    - write_all
    - Ok
    - thread::sleep
    - into
    - wait_close
    - fs::read
    - send_eof
    - Session::new
    - permissions
    - TcpStream::connect
    - set_tcp_stream
    - std::io::Result::map_err
    - std::time::Duration::new
    - Result::len
    - Err
    - mode
    - close
    - Result::map_err
    - scp_send
    - closure
    - handshake
    linkageType: ''
    returnType: Result
    signature: 'fn scp_to_guest_with_auth(path: &Path,remote_path: &Path,auth: &PasswordAuth,ip:
      &str,retries: u8,timeout: u8,) -> Result<(), SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scp_to_guest_with_auth
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:695,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:699,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - path
    - remote_path
    - ip
    - retries
    - timeout
    argTypes:
    - '&Path'
    - '&Path'
    - '&str'
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 706
      start: 688
    functionDepth: 9
    functionLinenumber: 688
    functionLinenumberEnd: 706
    functionName: scp_to_guest
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - scp_to_guest_with_auth
    - String::from
    linkageType: ''
    returnType: Result
    signature: 'pub fn scp_to_guest(path: &Path,remote_path: &Path,ip: &str,retries:
      u8,timeout: u8,) -> Result<(), SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:715,1
    - Dst: TcpStream::connect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:721,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:721,1
    - Dst: Session::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:722,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:722,1
    - Dst: set_tcp_stream
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:723,1
    - Dst: handshake
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:724,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:724,1
    - Dst: userauth_password
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:726,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:726,1
    - Dst: channel_session
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:730,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:730,1
    - Dst: exec
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:733,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:733,1
    - Dst: read_to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:737,1
    - Dst: close
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:738,1
    - Dst: wait_close
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:739,1
    - Dst: exit_status
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:741,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:741,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:744,1
    - Dst: SshCommandError::NonZeroExitStatus
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:744,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:746,1
    - Dst: closure
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:750,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:765,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:769,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:769,1
    - Dst: into
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:769,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:771,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 81
    argCount: 5
    argNames:
    - command
    - auth
    - ip
    - retries
    - timeout
    argTypes:
    - '&str'
    - '&PasswordAuth'
    - '&str'
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 772
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 772
    functionName: ssh_command_ip_with_auth
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - userauth_password
    - map_err
    - channel_session
    - Result::unwrap
    - Ok
    - String::new
    - exit_status
    - thread::sleep
    - into
    - wait_close
    - Session::new
    - SshCommandError::NonZeroExitStatus
    - TcpStream::connect
    - set_tcp_stream
    - std::time::Duration::new
    - Err
    - close
    - read_to_string
    - Result::map_err
    - closure
    - handshake
    - exec
    linkageType: ''
    returnType: Result
    signature: 'pub fn ssh_command_ip_with_auth(command: &str,auth: &PasswordAuth,ip:
      &str,retries: u8,timeout: u8,) -> Result<String, SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command_ip_with_auth
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:780,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:783,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - command
    - ip
    - retries
    - timeout
    argTypes:
    - '&str'
    - '&str'
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 790
      start: 774
    functionDepth: 6
    functionLinenumber: 774
    functionLinenumberEnd: 790
    functionName: ssh_command_ip
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 11
    functionsReached:
    - ssh_command_ip_with_auth
    - String::from
    linkageType: ''
    returnType: Result
    signature: 'pub fn ssh_command_ip(command: &str,ip: &str,retries: u8,timeout:
      u8,) -> Result<String, SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:794,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:795,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - command
    - retries
    - interval
    argTypes:
    - '&str'
    - u32
    - Duration
    constantsTouched: []
    func_position:
      end: 803
      start: 792
    functionDepth: 7
    functionLinenumber: 792
    functionLinenumberEnd: 803
    functionName: exec_host_command_with_retries
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - exec_host_command_output
    - FdtWriterResult::success
    linkageType: ''
    returnType: bool
    signature: 'pub fn exec_host_command_with_retries(command: &str, retries: u32,
      interval: Duration) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exec_host_command_output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 7
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: exec_host_command_status
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 4
    functionsReached:
    - exec_host_command_output
    linkageType: ''
    returnType: ExitStatus
    signature: 'pub fn exec_host_command_status(command: &str) -> ExitStatus'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::process::Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:810,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:810,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:810,1
    - Dst: (bool, Vec::unwrap_or_else
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:810,1
    - Dst: success
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:815,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:816,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 826
      start: 809
    functionDepth: 6
    functionLinenumber: 809
    functionLinenumberEnd: 826
    functionName: exec_host_command_output
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 11
    functionsReached:
    - std::process::Command::new
    - (bool, Vec::unwrap_or_else
    - success
    - Self::args
    - String::from_utf8_lossy
    - Vec::output
    linkageType: ''
    returnType: Output
    signature: 'pub fn exec_host_command_output(command: &str) -> Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:829,1
    - Dst: count
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - input
    - line_count
    argTypes:
    - '&str'
    - usize
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 7
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: check_lines_count
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - count
    - lines
    linkageType: ''
    returnType: bool
    signature: 'pub fn check_lines_count(input: &str, line_count: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:843,1
    - Dst: lines
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:844,1
    - Dst: '&[&str]::iter'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:845,1
    - Dst: impl Iterator::all
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:845,1
    - Dst: contains
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:845,1
    - Dst: Self::lines
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:850,1
    - Dst: count
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - input
    - keywords
    - line_count
    argTypes:
    - '&str'
    - '&[&str]'
    - usize
    constantsTouched: []
    func_position:
      end: 862
      start: 842
    functionDepth: 5
    functionLinenumber: 842
    functionLinenumberEnd: 862
    functionName: check_matched_lines_count
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::all
    - String::new
    - '&[&str]::iter'
    - lines
    - contains
    - Self::lines
    - count
    linkageType: ''
    returnType: bool
    signature: 'pub fn check_matched_lines_count(input: &str, keywords: &[&str], line_count:
      usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::kill
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:865,1
    - Dst: id
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:865,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:867,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:868,1
    - Dst: libc::c_int::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:868,1
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:875,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:875,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:875,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:875,1
    - Dst: kill
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:876,1
    - Dst: env::var
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:877,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:877,1
    - Dst: contains
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:878,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - child
    argTypes:
    - '&mut Child'
    constantsTouched: []
    func_position:
      end: 882
      start: 864
    functionDepth: 10
    functionLinenumber: 864
    functionLinenumberEnd: 882
    functionName: kill_child
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 82
    functionsReached:
    - unwrap_or_default
    - wait_timeout
    - is_none
    - io::Error::last_os_error
    - Duration::new
    - libc::kill
    - kill
    - env::var
    - contains
    - usize::raw_os_error
    - libc::c_int::unwrap
    - Result::unwrap
    - id
    linkageType: ''
    returnType: void
    signature: 'pub fn kill_child(child: &mut Child)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirs::home_dir
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:897,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:897,1
    - Dst: push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:898,1
    - Dst: push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:899,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:901,1
    - Dst: Result::create
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:901,1
    - Dst: truncate
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:901,1
    - Dst: write
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:901,1
    - Dst: read
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:901,1
    - Dst: open
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:901,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:901,1
    - Dst: lock
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:909,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:909,1
    - Dst: String::default
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:912,1
    - Dst: read_to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:913,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:913,1
    - Dst: Self::trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:914,1
    - Dst: trim().parse::<u8>
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:914,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:914,1
    - Dst: u8::max
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:915,1
    - Dst: u32::overflowing_add
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:915,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:916,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:916,1
    - Dst: seek
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:917,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:917,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:917,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:918,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:918,1
    - Dst: String::as_bytes
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:918,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:918,1
    - Dst: unlock
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:920,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 923
      start: 896
    functionDepth: 14
    functionLinenumber: 896
    functionLinenumberEnd: 923
    functionName: next_guest_id
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - String::as_bytes
    - Self::trim
    - push
    - to_string
    - write_all
    - OpenOptions::new
    - dirs::home_dir
    - seek
    - String::default
    - u8::max
    - lock
    - trim().parse::<u8>
    - unwrap
    - set_len
    - read
    - unwrap_or
    - read_to_string
    - open
    - truncate
    - u32::overflowing_add
    - Result::create
    - SeekFrom::Start
    - unlock
    - write
    linkageType: ''
    returnType: u8
    signature: fn next_guest_id() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:930,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:930,1
    - Dst: Result::prepare_files
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - disk_config
    - class
    - id
    argTypes:
    - Box<dyn DiskConfig>
    - '&str'
    - u8
    constantsTouched: []
    func_position:
      end: 955
      start: 929
    functionDepth: 13
    functionLinenumber: 929
    functionLinenumberEnd: 955
    functionName: Guest::new_from_ip_range
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 2
    functionsReached:
    - Result::prepare_files
    - TempDir::new_with_prefix
    - unwrap
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_from_ip_range(mut disk_config: Box<dyn DiskConfig>, class:
      &str, id: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_from_ip_range
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:958,1
    - Dst: next_guest_id
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - disk_config
    argTypes:
    - Box<dyn DiskConfig>
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 14
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: Guest::new
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 114
    functionsReached:
    - next_guest_id
    - Self::new_from_ip_range
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(disk_config: Box<dyn DiskConfig>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 966
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 966
    functionName: Guest::default_net_string
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: pub fn default_net_string(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 973
    functionName: Guest::default_net_string_w_iommu
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: pub fn default_net_string_w_iommu(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - mtu
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 980
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 980
    functionName: Guest::default_net_string_w_mtu
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: 'pub fn default_net_string_w_mtu(&self, mtu: u16) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 989
      start: 982
    functionDepth: 7
    functionLinenumber: 982
    functionLinenumberEnd: 989
    functionName: Guest::ssh_command
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 12
    functionsReached:
    - ssh_command_ip
    linkageType: ''
    returnType: Result
    signature: 'pub fn ssh_command(&self, command: &str) -> Result<String, SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 999
      start: 992
    functionDepth: 7
    functionLinenumber: 992
    functionLinenumberEnd: 999
    functionName: Guest::ssh_command_l1
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - ssh_command_ip
    linkageType: ''
    returnType: Result
    signature: 'pub fn ssh_command_l1(&self, command: &str) -> Result<String, SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1009
      start: 1002
    functionDepth: 7
    functionLinenumber: 1002
    functionLinenumberEnd: 1009
    functionName: Guest::ssh_command_l2_1
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - ssh_command_ip
    linkageType: ''
    returnType: Result
    signature: 'pub fn ssh_command_l2_1(&self, command: &str) -> Result<String, SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1019
      start: 1012
    functionDepth: 7
    functionLinenumber: 1012
    functionLinenumberEnd: 1019
    functionName: Guest::ssh_command_l2_2
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - ssh_command_ip
    linkageType: ''
    returnType: Result
    signature: 'pub fn ssh_command_l2_2(&self, command: &str) -> Result<String, SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1029
      start: 1022
    functionDepth: 7
    functionLinenumber: 1022
    functionLinenumberEnd: 1029
    functionName: Guest::ssh_command_l2_3
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - ssh_command_ip
    linkageType: ''
    returnType: Result
    signature: 'pub fn ssh_command_l2_3(&self, command: &str) -> Result<String, SshCommandError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - cpu_count
    - kernel_path
    - kernel_cmd
    argTypes:
    - u8
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1042
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1042
    functionName: Guest::api_create_body
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: 'pub fn api_create_body(&self, cpu_count: u8, kernel_path: &str, kernel_cmd:
      &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1045,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1045,1
    - Dst: parse
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1045,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 11
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: Guest::get_cpu_count
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - trim
    - Guest::ssh_command
    - parse
    - map_err
    linkageType: ''
    returnType: Result
    signature: pub fn get_cpu_count(&self) -> Result<u32, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1052,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1052,1
    - Dst: parse
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1052,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1051
    functionDepth: 11
    functionLinenumber: 1051
    functionLinenumberEnd: 1056
    functionName: Guest::get_total_memory
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - trim
    - Guest::ssh_command
    - parse
    - map_err
    linkageType: ''
    returnType: Result
    signature: pub fn get_total_memory(&self) -> Result<u32, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command_l2_1
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1060,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1060,1
    - Dst: parse
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1060,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1059
    functionDepth: 11
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    functionName: Guest::get_total_memory_l2
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - trim
    - map_err
    - parse
    - Guest::ssh_command_l2_1
    linkageType: ''
    returnType: Result
    signature: pub fn get_total_memory_l2(&self) -> Result<u32, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1067,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1068,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1067,1
    - Dst: parse
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1067,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - node_id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1077
      start: 1066
    functionDepth: 11
    functionLinenumber: 1066
    functionLinenumberEnd: 1077
    functionName: Guest::get_numa_node_memory
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - map_err
    - trim
    - as_str
    - parse
    - Guest::ssh_command
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_numa_node_memory(&self, node_id: usize) -> Result<u32,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1080,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - custom_timeout
    argTypes:
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 1083
      start: 1079
    functionDepth: 15
    functionLinenumber: 1079
    functionLinenumberEnd: 1083
    functionName: Guest::wait_vm_boot
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 2
    functionsReached:
    - wait_vm_boot
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn wait_vm_boot(&self, custom_timeout: Option<i32>) -> Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1086,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1088,1
    - Dst: '&mut Self::as_str'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1088,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - node_id
    - cpus
    argTypes:
    - usize
    - '&[usize]'
    constantsTouched: []
    func_position:
      end: 1092
      start: 1085
    functionDepth: 8
    functionLinenumber: 1085
    functionLinenumberEnd: 1092
    functionName: Guest::check_numa_node_cpus
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - String::iter
    - Guest::ssh_command
    - '&mut Self::as_str'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn check_numa_node_cpus(&self, node_id: usize, cpus: &[usize])
      -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1100,1
    - Dst: '&mut Self::as_str'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1100,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1100,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1101,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - node_id
    - distances
    argTypes:
    - usize
    - '&str'
    constantsTouched: []
    func_position:
      end: 1105
      start: 1094
    functionDepth: 8
    functionLinenumber: 1094
    functionLinenumberEnd: 1105
    functionName: Guest::check_numa_node_distances
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - trim
    - Guest::ssh_command
    - '&mut Self::as_str'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn check_numa_node_distances(&self,node_id: usize,distances: &str,)
      -> Result<bool, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option<&[u32]>::iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1116,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1116,1
    - Dst: Option<&[&[usize]]>::iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1123,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1123,1
    - Dst: Guest::check_numa_node_cpus
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1124,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1124,1
    - Dst: Option<&[&str]>::iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1130,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - mem_ref
    - node_ref
    - distance_ref
    argTypes:
    - Option<&[u32]>
    - Option<&[&[usize]]>
    - Option<&[&str]>
    constantsTouched: []
    func_position:
      end: 1134
      start: 1107
    functionDepth: 9
    functionLinenumber: 1107
    functionLinenumberEnd: 1134
    functionName: Guest::check_numa_common
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - Option<&[&[usize]]>::iter
    - Option<&[u32]>::iter
    - impl Iterator::enumerate
    - Option<&[&str]>::iter
    - Guest::check_numa_node_cpus
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn check_numa_common(&self,mem_ref: Option<&[u32]>,node_ref: Option<&[&[usize]]>,distance_ref:
      Option<&[&str]>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1137,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1137,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1137,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1136
    functionDepth: 8
    functionLinenumber: 1136
    functionLinenumberEnd: 1141
    functionName: Guest::get_pci_bridge_class
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - trim
    - to_string
    - Guest::ssh_command
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_pci_bridge_class(&self) -> Result<String, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1144,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1144,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1144,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1143
    functionDepth: 8
    functionLinenumber: 1143
    functionLinenumberEnd: 1148
    functionName: Guest::get_pci_device_ids
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - trim
    - to_string
    - Guest::ssh_command
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_pci_device_ids(&self) -> Result<String, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1151,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1151,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1151,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1150
    functionDepth: 8
    functionLinenumber: 1150
    functionLinenumberEnd: 1155
    functionName: Guest::get_pci_vendor_ids
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - trim
    - to_string
    - Guest::ssh_command
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_pci_vendor_ids(&self) -> Result<String, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::get_pci_device_ids
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1163,1
    - Dst: split
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1164,1
    - Dst: collect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1164,1
    - Dst: Guest::get_pci_vendor_ids
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1165,1
    - Dst: split
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1166,1
    - Dst: collect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1166,1
    - Dst: iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1168,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1168,1
    - Dst: get
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1170,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1173,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - device_id
    - vendor_id
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1178
      start: 1157
    functionDepth: 9
    functionLinenumber: 1157
    functionLinenumberEnd: 1178
    functionName: Guest::does_device_vendor_pair_match
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - iter
    - Guest::get_pci_vendor_ids
    - impl Iterator::enumerate
    - Ok
    - Guest::get_pci_device_ids
    - get
    - split
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn does_device_vendor_pair_match(&self,device_id: &str,vendor_id:
      &str,) -> Result<bool, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1183,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1184,1
    - Dst: ssh_command_ip
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1185,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1185,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1189,1
    - Dst: std::time::Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1189,1
    - Dst: io::Result::join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1200,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - socket
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1206
      start: 1180
    functionDepth: 7
    functionLinenumber: 1180
    functionLinenumberEnd: 1206
    functionName: Guest::check_vsock
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - thread::sleep
    - std::time::Duration::new
    - io::Result::join
    - ssh_command_ip
    - unwrap
    - thread::spawn
    - clone
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn check_vsock(&self, socket: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1215
    functionName: Guest::check_nvidia_gpu
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn check_nvidia_gpu(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1219,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1219,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1219,1
    - Dst: "ssh_command(list_boots_cmd)\n            .unwrap()\n            .trim()\n\
        \            .parse::<u32>"
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1219,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1219,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1227,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1227,1
    - Dst: Guest::wait_vm_boot
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1229,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1229,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1230,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1230,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1230,1
    - Dst: "ssh_command(list_boots_cmd)\n            .unwrap()\n            .trim()\n\
        \            .parse::<u32>"
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1230,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - current_reboot_count
    - custom_timeout
    argTypes:
    - u32
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 1237
      start: 1217
    functionDepth: 13
    functionLinenumber: 1217
    functionLinenumberEnd: 1237
    functionName: Guest::reboot_linux
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_default
    - trim
    - "ssh_command(list_boots_cmd)\n            .unwrap()\n            .trim()\n \
      \           .parse::<u32>"
    - Guest::wait_vm_boot
    - Result::unwrap
    - Guest::ssh_command
    linkageType: ''
    returnType: void
    signature: 'pub fn reboot_linux(&self, current_reboot_count: u32, custom_timeout:
      Option<i32>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1240,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1239
    functionDepth: 8
    functionLinenumber: 1239
    functionLinenumberEnd: 1242
    functionName: Guest::enable_memory_hotplug
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Guest::ssh_command
    linkageType: ''
    returnType: void
    signature: pub fn enable_memory_hotplug(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1251,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1251,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1253,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1253,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1256,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1256,1
    - Dst: Guest::check_vsock
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1260,1
    - Dst: Result::as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1260,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1265,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1265,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1281,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1281,1
    - Dst: Guest::ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1297,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 3
    argNames:
    - socket
    - console_text
    - pmem_path
    argTypes:
    - Option<&String>
    - Option<&String>
    - Option<&String>
    constantsTouched: []
    func_position:
      end: 1300
      start: 1244
    functionDepth: 8
    functionLinenumber: 1244
    functionLinenumberEnd: 1300
    functionName: Guest::check_devices_common
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - Guest::check_vsock
    - Result::unwrap
    - Result::as_str
    - Guest::ssh_command
    linkageType: ''
    returnType: void
    signature: 'pub fn check_devices_common(&self,socket: Option<&String>,console_text:
      Option<&String>,pmem_path: Option<&String>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 1320
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1320
    functionName: VerbosityLevel::fmt
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_binary_path
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1333,1
    - Dst: clh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - guest
    argTypes:
    - '&''a Guest'
    constantsTouched: []
    func_position:
      end: 1334
      start: 1332
    functionDepth: 4
    functionLinenumber: 1332
    functionLinenumberEnd: 1334
    functionName: GuestCommand::new
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 117
    functionsReached:
    - clh_command
    - Self::new_with_binary_path
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(guest: &''a Guest) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - guest
    - binary_path
    argTypes:
    - '&''a Guest'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1344
      start: 1336
    functionDepth: 5
    functionLinenumber: 1336
    functionLinenumberEnd: 1344
    functionName: GuestCommand::new_with_binary_path
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 7
    functionsReached:
    - Command::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_binary_path(guest: &''a Guest, binary_path: &str)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - verbosity
    argTypes:
    - VerbosityLevel
    constantsTouched: []
    func_position:
      end: 1349
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1349
    functionName: GuestCommand::verbosity
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn verbosity(&mut self, verbosity: VerbosityLevel) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1354
    functionName: GuestCommand::capture_output
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn capture_output(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - print_cmd
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1359
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1359
    functionName: GuestCommand::set_print_cmd
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_print_cmd(&mut self, print_cmd: bool) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arg
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1366,1
    - Dst: args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1369,1
    - Dst: stderr
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1386,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1388,1
    - Dst: stdout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1386,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1389,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1386,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1386,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1393,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1393,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1393,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1394,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1396,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1396,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1398,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1398,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1398,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1399,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1401,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1401,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1405,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1407,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1407,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1415,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1361
    functionDepth: 2
    functionLinenumber: 1361
    functionLinenumberEnd: 1417
    functionName: GuestCommand::spawn
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - args
    - stdout
    - std::io::Error::other
    - spawn
    - as_ref
    - Stdio::piped
    - Err
    - libc::fcntl
    - stderr
    - unwrap
    - as_raw_fd
    - arg
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: pub fn spawn(&mut self) -> io::Result<Child>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 1426
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1426
    functionName: GuestCommand::args
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 2
    functionsReached:
    - args
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn args<I, S>(&mut self, args: I) -> &mut SelfwhereI: IntoIterator<Item
      = S>,S: AsRef<OsStr>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: disk
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1429,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1429,1
    - Dst: GuestCommand::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1430,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1432,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1440,1
    - Dst: GuestCommand::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1447,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1428
    functionDepth: 5
    functionLinenumber: 1428
    functionLinenumberEnd: 1459
    functionName: GuestCommand::default_disks
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - is_some
    - as_str
    - disk
    - GuestCommand::args
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn default_disks(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestCommand::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1462,1
    - Dst: default_net_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1462,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1461
    functionDepth: 5
    functionLinenumber: 1461
    functionLinenumberEnd: 1463
    functionName: GuestCommand::default_net
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_str
    - default_net_string
    - GuestCommand::args
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn default_net(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: workspace_root
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1472,1
    - Dst: env::var
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1473,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1473,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1473,1
    - Dst: PathBuf::join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1477,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1478,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1478,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1479
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1479
    functionName: clh_command
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 18
    functionsReached:
    - '&str::to_string'
    - PathBuf::join
    - env::var
    - unwrap
    - to_str
    - String::from
    - workspace_root
    - unwrap_or
    linkageType: ''
    returnType: String
    signature: 'pub fn clh_command(cmd: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1482,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1483,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1484,1
    - Dst: std::result::Result::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1484,1
    - Dst: as_f64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1488,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1488,1
    - Dst: as_f64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1492,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1492,1
    - Dst: as_f64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1499,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1499,1
    - Dst: as_f64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1502,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1502,1
    - Dst: as_f64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1505,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1505,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 3
    argNames:
    - output
    - sender
    - bandwidth
    argTypes:
    - '&[u8]'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1519
      start: 1481
    functionDepth: 4
    functionLinenumber: 1481
    functionLinenumberEnd: 1519
    functionName: parse_iperf3_output
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - expect
    - map_err
    - serde_json::from_str
    - std::panic::catch_unwind
    - as_f64
    - String::from_utf8_lossy
    - std::result::Result::expect
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_iperf3_output(output: &[u8], sender: bool, bandwidth:
      bool) -> Result<f64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 1541
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1541
    functionName: FioOps::fmt
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1545,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1547,1
    - Dst: std::result::Result::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1547,1
    - Dst: as_array
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1548,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1548,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1566,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1566,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1569,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1569,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1577,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1577,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1580,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1580,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 3
    argNames:
    - output
    - fio_ops
    - num_jobs
    argTypes:
    - '&str'
    - '&FioOps'
    - u32
    constantsTouched: []
    func_position:
      end: 1595
      start: 1544
    functionDepth: 4
    functionLinenumber: 1544
    functionLinenumberEnd: 1595
    functionName: parse_fio_output
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 3
    functionsReached:
    - expect
    - map_err
    - serde_json::from_str
    - std::panic::catch_unwind
    - std::result::Result::expect
    - as_u64
    - as_array
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_fio_output(output: &str, fio_ops: &FioOps, num_jobs:
      u32) -> Result<f64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1598,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1600,1
    - Dst: std::result::Result::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1600,1
    - Dst: as_array
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1601,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1601,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1619,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1619,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1622,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1622,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1630,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1630,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1633,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1633,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1598,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 3
    argNames:
    - output
    - fio_ops
    - num_jobs
    argTypes:
    - '&str'
    - '&FioOps'
    - u32
    constantsTouched: []
    func_position:
      end: 1648
      start: 1597
    functionDepth: 4
    functionLinenumber: 1597
    functionLinenumberEnd: 1648
    functionName: parse_fio_output_iops
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 3
    functionsReached:
    - expect
    - map_err
    - serde_json::from_str
    - std::panic::catch_unwind
    - std::result::Result::expect
    - as_u64
    - as_array
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_fio_output_iops(output: &str, fio_ops: &FioOps, num_jobs:
      u32) -> Result<f64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_timeout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1652,1
    - Dst: Duration::from_secs
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1652,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1654,1
    - Dst: WaitTimeoutError::General
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1654,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1658,1
    - Dst: FdtWriterResult::success
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1661,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1662,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - child
    - timeout
    argTypes:
    - '&mut Child'
    - u64
    constantsTouched: []
    func_position:
      end: 1669
      start: 1651
    functionDepth: 1
    functionLinenumber: 1651
    functionLinenumberEnd: 1669
    functionName: child_wait_timeout
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 2
    functionsReached:
    - FdtWriterResult::success
    - wait_timeout
    - Duration::from_secs
    - Err
    - WaitTimeoutError::General
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn child_wait_timeout(child: &mut Child, timeout: u64) -> Result<(),
      WaitTimeoutError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1682,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1685,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1685,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1688,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1690,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1691,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1705,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1710,1
    - Dst: '&mut Self::stderr'
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1712,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1713,1
    - Dst: stdout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1712,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1714,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1712,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1712,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1718,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1722,1
    - Dst: child_wait_timeout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1726,1
    - Dst: Some
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1727,1
    - Dst: Error::WaitTimeout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1727,1
    - Dst: kill
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1732,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1733,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1733,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1740,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1740,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1741,1
    - Dst: parse_iperf3_output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1741,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1746,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1748,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1748,1
    - Dst: impl Iterator::sum
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1748,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 96
    argCount: 5
    argNames:
    - test_timeout
    - queue_pairs
    - guest
    - receive
    - bandwidth
    argTypes:
    - u32
    - u32
    - '&Guest'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1750
      start: 1671
    functionDepth: 8
    functionLinenumber: 1671
    functionLinenumberEnd: 1750
    functionName: measure_virtio_net_throughput
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 2
    functionsReached:
    - child_wait_timeout
    - stdout
    - map_err
    - '&mut Self::args'
    - Stdio::piped
    - Ok
    - ssh_command
    - Vec::new
    - thread::sleep
    - Duration::new
    - impl Iterator::sum
    - Result::push
    - wait_with_output
    - parse_iperf3_output
    - Err
    - unwrap
    - Result::iter
    - '&mut Self::stderr'
    - spawn
    - Error::WaitTimeout
    - kill
    - Command::new
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn measure_virtio_net_throughput(test_timeout: u32,queue_pairs:
      u32,guest: &Guest,receive: bool,bandwidth: bool,) -> Result<f64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1753,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1754,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1755,1
    - Dst: FdtWriterResult::lines
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1756,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1757,1
    - Dst: std::result::Result::expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1757,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1759,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1761,1
    - Dst: split
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1762,1
    - Dst: split("us").collect::<Vec<&str>>
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1762,1
    - Dst: "split(\"us\").collect::<Vec<&str>>()[0]\n                        .parse::<f64>"
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1762,1
    - Dst: expect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1762,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - output
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1783
      start: 1752
    functionDepth: 5
    functionLinenumber: 1752
    functionLinenumberEnd: 1783
    functionName: parse_ethr_latency_output
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 2
    functionsReached:
    - expect
    - FdtWriterResult::lines
    - map_err
    - Vec::new
    - as_str
    - split("us").collect::<Vec<&str>>
    - serde_json::from_str
    - std::panic::catch_unwind
    - String::from_utf8_lossy
    - "split(\"us\").collect::<Vec<&str>>()[0]\n                        .parse::<f64>"
    - std::result::Result::expect
    - Result::push
    - split
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_ethr_latency_output(output: &[u8]) -> Result<Vec<f64>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scp_to_guest
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1789,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1790,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1791,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1799,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1801,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1801,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1804,1
    - Dst: join
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1804,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1804,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1804,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1804,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1811,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1811,1
    - Dst: Vec::stderr
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1811,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1822,1
    - Dst: stdout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1811,1
    - Dst: Stdio::piped
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1823,1
    - Dst: spawn
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1811,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1811,1
    - Dst: child_wait_timeout
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1827,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1827,1
    - Dst: kill
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1829,1
    - Dst: Err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1830,1
    - Dst: fs::read
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1834,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1834,1
    - Dst: parse_ethr_latency_output
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1835,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 2
    argNames:
    - guest
    - test_timeout
    argTypes:
    - '&Guest'
    - u32
    constantsTouched: []
    func_position:
      end: 1836
      start: 1785
    functionDepth: 10
    functionLinenumber: 1785
    functionLinenumberEnd: 1836
    functionName: measure_virtio_net_latency
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 1
    functionsReached:
    - Path::new
    - stdout
    - map_err
    - scp_to_guest
    - child_wait_timeout
    - IoResult::map_err
    - Vec::stderr
    - Stdio::piped
    - to_string
    - to_str
    - ssh_command
    - thread::sleep
    - Duration::new
    - fs::read
    - Err
    - unwrap
    - join
    - spawn
    - kill
    - Self::args
    - Command::new
    - Result::map_err
    - as_path
    - parse_ethr_latency_output
    linkageType: ''
    returnType: Result
    signature: 'pub fn measure_virtio_net_latency(guest: &Guest, test_timeout: u32)
      -> Result<Vec<f64>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: (bool, Vec::split
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1841,1
    - Dst: collect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1841,1
    - Dst: String::contains
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1844,1
    - Dst: String::lines
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1845,1
    - Dst: trim
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1846,1
    - Dst: starts_with
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1849,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1849,1
    - Dst: split_whitespace
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1850,1
    - Dst: collect
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1850,1
    - Dst: len
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1851,1
    - Dst: Some
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1853,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/test_infra/src/lib.rs:1853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 3
    argNames:
    - output
    - device_desc
    - bar_index
    argTypes:
    - '&str'
    - '&str'
    - usize
    constantsTouched: []
    func_position:
      end: 1860
      start: 1840
    functionDepth: 5
    functionLinenumber: 1840
    functionLinenumberEnd: 1860
    functionName: extract_bar_address
    functionSourceFile: /src/cloud-hypervisor/test_infra/src/lib.rs
    functionUses: 0
    functionsReached:
    - starts_with
    - String::lines
    - trim
    - as_str
    - split_whitespace
    - String::contains
    - String::from
    - len
    - (bool, Vec::split
    - Some
    - collect
    linkageType: ''
    returnType: Option
    signature: 'pub fn extract_bar_address(output: &str, device_desc: &str, bar_index:
      usize) -> Option<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: BusDevice::read
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: BusDevice::write
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: BusDeviceSync::read
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn read(&self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: BusDeviceSync::write
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn write(&self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mutex::lock
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:44,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:44,1
    - Dst: read
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 13
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Mutex::read
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - expect
    - Mutex::lock
    - read
    linkageType: ''
    returnType: void
    signature: 'fn read(&self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mutex::lock
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:50,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:50,1
    - Dst: write
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 13
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Mutex::write
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - expect
    - Mutex::lock
    - write
    linkageType: ''
    returnType: Option
    signature: 'fn write(&self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - base
    - len
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: BusRange::overlaps
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn overlaps(&self, base: u64, len: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&BusRange'
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: BusRange::eq
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &BusRange) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&BusRange'
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: BusRange::cmp
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 1
    functionsReached:
    - cmp
    linkageType: ''
    returnType: Ordering
    signature: 'fn cmp(&self, other: &BusRange) -> Ordering'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:110,1
    - Dst: BusRange::cmp
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&BusRange'
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: BusRange::partial_cmp
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - Some
    - BusRange::cmp
    linkageType: ''
    returnType: Option
    signature: 'fn partial_cmp(&self, other: &BusRange) -> Option<Ordering>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:127,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Bus::new
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 6
    functionsReached:
    - RwLock::new
    - BTreeMap::new
    linkageType: ''
    returnType: Bus
    signature: pub fn new() -> Bus
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:132,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:132,1
    - Dst: range
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:133,1
    - Dst: Self::next_back
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:133,1
    - Dst: upgrade
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:136,1
    - Dst: map
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:136,1
    - Dst: bool::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 8
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: Bus::first_before
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 1
    functionsReached:
    - map
    - upgrade
    - range
    - unwrap
    - read
    - Self::next_back
    - bool::clone
    linkageType: ''
    returnType: Option
    signature: 'fn first_before(&self, addr: u64) -> Option<(BusRange, Arc<dyn BusDeviceSync>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::first_before
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:141,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 9
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: Bus::resolve
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 3
    functionsReached:
    - Bus::first_before
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn resolve(&self, addr: u64) -> Option<(u64, u64, Arc<dyn BusDeviceSync>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:153,1
    - Dst: read
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:157,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:157,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:157,1
    - Dst: any
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:157,1
    - Dst: Self::overlaps
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:162,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:164,1
    - Dst: write
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:167,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:167,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:167,1
    - Dst: Arc::downgrade
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:171,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:167,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:174,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - device
    - base
    - len
    argTypes:
    - Arc<dyn BusDeviceSync>
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 178
      start: 151
    functionDepth: 8
    functionLinenumber: 151
    functionLinenumberEnd: 178
    functionName: Bus::insert
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 1
    functionsReached:
    - is_some
    - iter
    - any
    - insert
    - Err
    - Self::overlaps
    - Ok
    - unwrap
    - read
    - Arc::downgrade
    - write
    linkageType: ''
    returnType: Result
    signature: 'pub fn insert(&self, device: Arc<dyn BusDeviceSync>, base: u64, len:
      u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:183,1
    - Dst: write
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:188,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:188,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:188,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:188,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:189,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - base
    - len
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 8
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: Bus::remove
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 1
    functionsReached:
    - remove
    - is_none
    - Err
    - Ok
    - unwrap
    - write
    linkageType: ''
    returnType: Result
    signature: 'pub fn remove(&self, base: u64, len: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:197,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:197,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:198,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:200,1
    - Dst: Result::upgrade
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:201,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:201,1
    - Dst: core::ptr::eq
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:202,1
    - Dst: Arc::as_ptr
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:202,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:203,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:207,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:208,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - device
    argTypes:
    - '&dyn BusDeviceSync'
    constantsTouched: []
    func_position:
      end: 212
      start: 196
    functionDepth: 8
    functionLinenumber: 196
    functionLinenumberEnd: 212
    functionName: Bus::remove_by_device
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - iter
    - Result::push
    - remove
    - Vec::new
    - Result::upgrade
    - Result::iter
    - Ok
    - unwrap
    - core::ptr::eq
    - Arc::as_ptr
    - write
    linkageType: ''
    returnType: Result
    signature: 'pub fn remove_by_device(&self, device: &dyn BusDeviceSync) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::resolve
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:223,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:224,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:226,1
    - Dst: Bus::remove
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:230,1
    - Dst: Bus::insert
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - old_base
    - old_len
    - new_base
    - new_len
    argTypes:
    - u64
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 234
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 234
    functionName: Bus::update_range
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - Bus::insert
    - clone
    - Err
    - Bus::resolve
    - Bus::remove
    linkageType: ''
    returnType: Result
    signature: 'pub fn update_range(&self,old_base: u64,old_len: u64,new_base: u64,new_len:
      u64,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::resolve
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:240,1
    - Dst: read
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:242,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:243,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - addr
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 10
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: Bus::read
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - Bus::resolve
    - Ok
    - Err
    - read
    linkageType: ''
    returnType: Result
    signature: 'pub fn read(&self, addr: u64, data: &mut [u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::resolve
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:253,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:255,1
    - Dst: write
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:255,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - addr
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 10
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: Bus::write
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - write
    - Bus::resolve
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn write(&self, addr: u64, data: &[u8]) -> Result<Option<Arc<Barrier>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:288,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:289,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:290,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:290,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:290,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:291,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:291,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:291,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:293,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:293,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:296,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:296,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:296,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:297,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:297,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:297,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:298,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:298,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:298,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:299,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:299,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:299,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:300,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:300,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:300,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:301,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:301,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:301,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:302,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:302,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:302,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:303,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 287
    functionDepth: 8
    functionLinenumber: 287
    functionLinenumberEnd: 304
    functionName: unit_tests::bus_insert
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - '&Arc::insert'
    - Result::clone
    - Result::unwrap
    - Bus::new
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn bus_insert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:308,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:309,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:310,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:310,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:310,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:311,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:311,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:312,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:312,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:313,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:313,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:314,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:314,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:315,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:315,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:316,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:316,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:317,1
    - Dst: IoResult::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:317,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:318,1
    - Dst: IoResult::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:318,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:319,1
    - Dst: IoResult::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:319,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:320,1
    - Dst: IoResult::unwrap_err
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 8
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: unit_tests::bus_read_write
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - IoResult::unwrap_err
    - '&Arc::read'
    - Arc::new
    - '&Arc::insert'
    - '&Arc::write'
    - IoResult::unwrap
    - Result::clone
    - Result::unwrap
    - Bus::new
    linkageType: ''
    returnType: void
    signature: fn bus_read_write()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:325,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:326,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:327,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:327,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:327,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:330,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:330,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:332,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:332,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:333,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:333,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:335,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 324
    functionDepth: 8
    functionLinenumber: 324
    functionLinenumberEnd: 336
    functionName: unit_tests::bus_read_write_values
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - '&Arc::read'
    - Arc::new
    - '&Arc::insert'
    - '&Arc::write'
    - IoResult::unwrap
    - Result::clone
    - Result::unwrap
    - Bus::new
    linkageType: ''
    returnType: void
    signature: fn bus_read_write_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bus::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:349,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:351,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:352,1
    - Dst: String::clone
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:352,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:352,1
    - Dst: '&Arc::write'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:353,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:353,1
    - Dst: '&Arc::read'
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:354,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/vm-device/src/bus.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: unit_tests::busrange_cmp
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached:
    - '&Arc::read'
    - Arc::new
    - '&Arc::insert'
    - '&Arc::write'
    - IoResult::unwrap
    - Result::unwrap
    - String::clone
    - Bus::new
    linkageType: ''
    returnType: void
    signature: fn busrange_cmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 372
    functionName: unit_tests::bus_range_overlap
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn bus_range_overlap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-device/src/interrupt/mod.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: InterruptSourceGroup::enable
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/interrupt/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn enable(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-device/src/interrupt/mod.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: InterruptSourceGroup::disable
    functionSourceFile: /src/cloud-hypervisor/vm-device/src/interrupt/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn disable(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:55,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:60,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:65,1
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:65,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - base
    - size
    argTypes:
    - GuestAddress
    - GuestUsize
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: AddressAllocator::new
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 13
    functionsReached:
    - Some
    - u64::checked_add
    - BTreeMap::new
    - insert
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(base: GuestAddress, size: GuestUsize) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:71,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:71,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:74,1
    - Dst: Result::unchecked_add
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - address
    - alignment
    argTypes:
    - GuestAddress
    - GuestUsize
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: AddressAllocator::align_address
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 2
    functionsReached:
    - is_multiple_of
    - Result::unchecked_add
    - Result::raw_value
    linkageType: ''
    returnType: GuestAddress
    signature: 'fn align_address(&self, address: GuestAddress, alignment: GuestUsize)
      -> GuestAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::align_address
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:86,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:90,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:95,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:99,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:103,1
    - Dst: Result::unchecked_sub
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:107,1
    - Dst: GuestAddress::raw_value
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:108,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:107,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:112,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:115,1
    - Dst: Result::unchecked_add
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:118,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 3
    argNames:
    - req_address
    - req_size
    - alignment
    argTypes:
    - GuestAddress
    - GuestUsize
    - GuestUsize
    constantsTouched: []
    func_position:
      end: 124
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 124
    functionName: AddressAllocator::available_range
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 1
    functionsReached:
    - iter
    - GuestAddress::raw_value
    - AddressAllocator::align_address
    - Err
    - Result::unchecked_add
    - Result::unchecked_sub
    - Ok
    - raw_value
    linkageType: ''
    returnType: Result
    signature: 'fn available_range(&self,req_address: GuestAddress,req_size: GuestUsize,alignment:
      GuestUsize,) -> Result<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:131,1
    - Dst: rev
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:131,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:131,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:133,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:133,1
    - Dst: len
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:135,1
    - Dst: unchecked_add
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:138,1
    - Dst: Result::checked_sub
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:149,1
    - Dst: AddressAllocator::align_address
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:149,1
    - Dst: GuestAddress::raw_value
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:149,1
    - Dst: saturating_sub
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:151,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:152,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:153,1
    - Dst: AddressAllocator::align_address
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:154,1
    - Dst: Result::unchecked_sub
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 2
    argNames:
    - req_size
    - alignment
    argTypes:
    - GuestUsize
    - GuestUsize
    constantsTouched: []
    func_position:
      end: 161
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 161
    functionName: AddressAllocator::first_available_range
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 1
    functionsReached:
    - iter
    - AddressAllocator::align_address
    - GuestAddress::raw_value
    - unchecked_add
    - raw_value
    - Result::checked_sub
    - rev
    - Result::unchecked_sub
    - len
    - saturating_sub
    - enumerate
    - Some
    - collect
    linkageType: ''
    returnType: Option
    signature: 'fn first_available_range(&self,req_size: GuestUsize,alignment: GuestUsize,)
      -> Option<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::unwrap_or
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:176,1
    - Dst: is_power_of_two
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:177,1
    - Dst: AddressAllocator::available_range
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:182,1
    - Dst: AddressAllocator::first_available_range
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:188,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:191,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - address
    - size
    - align_size
    argTypes:
    - Option<GuestAddress>
    - GuestUsize
    - Option<GuestUsize>
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 9
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: AddressAllocator::allocate
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 5
    functionsReached:
    - insert
    - AddressAllocator::available_range
    - Result::unwrap_or
    - is_power_of_two
    - Some
    - AddressAllocator::first_available_range
    linkageType: ''
    returnType: Option
    signature: 'pub fn allocate(&mut self,address: Option<GuestAddress>,size: GuestUsize,align_size:
      Option<GuestUsize>,) -> Option<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:199,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - GuestAddress
    - GuestUsize
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 8
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: AddressAllocator::free
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 4
    functionsReached:
    - remove
    - get
    linkageType: ''
    returnType: void
    signature: 'pub fn free(&mut self, address: GuestAddress, size: GuestUsize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: AddressAllocator::base
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GuestAddress
    signature: pub fn base(&self) -> GuestAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: AddressAllocator::end
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GuestAddress
    signature: pub fn end(&self) -> GuestAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: unit_tests::new_fails_overflow
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn new_fails_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: unit_tests::new_fails_size_zero
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn new_fails_size_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:233,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:233,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 9
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: unit_tests::allocate_fails_alignment_zero
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    linkageType: ''
    returnType: void
    signature: fn allocate_fails_alignment_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:242,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:242,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 9
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: unit_tests::allocate_fails_alignment_non_power_of_two
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    linkageType: ''
    returnType: void
    signature: fn allocate_fails_alignment_non_power_of_two()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:251,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:251,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 9
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: unit_tests::allocate_fails_not_enough_space
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    linkageType: ''
    returnType: void
    signature: fn allocate_fails_not_enough_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:265,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:265,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 9
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: unit_tests::allocate_alignment
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    linkageType: ''
    returnType: void
    signature: fn allocate_alignment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:282,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:282,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 9
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: unit_tests::allocate_address
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    linkageType: ''
    returnType: void
    signature: fn allocate_address()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:296,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:296,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 295
    functionDepth: 9
    functionLinenumber: 295
    functionLinenumberEnd: 313
    functionName: unit_tests::allocate_address_alignment
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    linkageType: ''
    returnType: void
    signature: fn allocate_address_alignment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:317,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:317,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 316
    functionDepth: 9
    functionLinenumber: 316
    functionLinenumberEnd: 343
    functionName: unit_tests::allocate_address_not_enough_space
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    linkageType: ''
    returnType: void
    signature: fn allocate_address_not_enough_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:347,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:347,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:347,1
    - Dst: free
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:355,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 346
    functionDepth: 9
    functionLinenumber: 346
    functionLinenumberEnd: 361
    functionName: unit_tests::allocate_address_free_and_realloc
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    - free
    linkageType: ''
    returnType: void
    signature: fn allocate_address_free_and_realloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:365,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:365,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:365,1
    - Dst: free
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:374,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 9
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: unit_tests::allocate_address_free_fail_and_realloc
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    - free
    linkageType: ''
    returnType: void
    signature: fn allocate_address_free_fail_and_realloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:384,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:384,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:384,1
    - Dst: free
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:393,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-allocator/src/address.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 9
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: unit_tests::allocate_address_fail_free_and_realloc
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/address.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - vm_memory::GuestAddress
    - AddressAllocator::new
    - free
    linkageType: ''
    returnType: void
    signature: fn allocate_address_fail_free_and_realloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs:18,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs:18,1
    - Dst: pop
      Src: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs:18,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 13
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: MemorySlotAllocator::next_memory_slot
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs
    functionUses: 1
    functionsReached:
    - lock
    - fetch_add
    - pop
    - unwrap
    linkageType: ''
    returnType: u32
    signature: pub fn next_memory_slot(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs:26,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs:26,1
    - Dst: push
      Src: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - slot
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 13
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: MemorySlotAllocator::free_memory_slot
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs
    functionUses: 0
    functionsReached:
    - lock
    - push
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn free_memory_slot(&mut self, slot: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - next_memory_slot
    - memory_slot_free_list
    argTypes:
    - Arc<AtomicU32>
    - Arc<Mutex<Vec<u32>>>
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: MemorySlotAllocator::new
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(next_memory_slot: Arc<AtomicU32>,memory_slot_free_list:
      Arc<Mutex<Vec<u32>>>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::sysconf
      Src: /src/cloud-hypervisor/vm-allocator/src/page_size.rs:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: get_page_size
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/page_size.rs
    functionUses: 7
    functionsReached:
    - libc::sysconf
    linkageType: ''
    returnType: u64
    signature: pub fn get_page_size() -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_page_size
      Src: /src/cloud-hypervisor/vm-allocator/src/page_size.rs:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: align_page_size_up
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/page_size.rs
    functionUses: 2
    functionsReached:
    - get_page_size
    linkageType: ''
    returnType: u64
    signature: 'pub fn align_page_size_up(address: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_page_size
      Src: /src/cloud-hypervisor/vm-allocator/src/page_size.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: align_page_size_down
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/page_size.rs
    functionUses: 3
    functionsReached:
    - get_page_size
    linkageType: ''
    returnType: u64
    signature: 'pub fn align_page_size_down(address: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: is_4k_aligned
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/page_size.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_4k_aligned(address: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: is_4k_multiple
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/page_size.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_4k_multiple(size: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_page_size
      Src: /src/cloud-hypervisor/vm-allocator/src/page_size.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: is_page_size_aligned
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/page_size.rs
    functionUses: 1
    functionsReached:
    - get_page_size
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_page_size_aligned(address: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:71,1
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:72,1
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:73,1
    - Dst: GsiAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:78,1
    - Dst: GsiAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - io_base
    - io_size
    - platform_mmio_base
    - platform_mmio_size
    - apics
    argTypes:
    - GuestAddress
    - GuestUsize
    - GuestAddress
    - GuestUsize
    - '&[GsiApic]'
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 9
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: SystemAllocator::new
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/system.rs
    functionUses: 1
    functionsReached:
    - AddressAllocator::new
    - Some
    - GsiAllocator::new
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(io_base: GuestAddress,io_size: GuestUsize,platform_mmio_base:
      GuestAddress,platform_mmio_size: GuestUsize,#[cfg(target_arch = "x86_64")] apics:
      &[GsiApic],) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allocate_irq
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:86,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: SystemAllocator::allocate_irq
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/system.rs
    functionUses: 0
    functionsReached:
    - allocate_irq
    - ok
    linkageType: ''
    returnType: Option
    signature: pub fn allocate_irq(&mut self) -> Option<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allocate_gsi
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:91,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: SystemAllocator::allocate_gsi
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/system.rs
    functionUses: 0
    functionsReached:
    - allocate_gsi
    - ok
    linkageType: ''
    returnType: Option
    signature: pub fn allocate_gsi(&mut self) -> Option<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allocate
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:101,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:102,1
    - Dst: Result::unwrap_or
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - address
    - size
    - align_size
    argTypes:
    - Option<GuestAddress>
    - GuestUsize
    - Option<GuestUsize>
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 10
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: SystemAllocator::allocate_io_addresses
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/system.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_or
    - Some
    - allocate
    linkageType: ''
    returnType: Option
    signature: 'pub fn allocate_io_addresses(&mut self,address: Option<GuestAddress>,size:
      GuestUsize,align_size: Option<GuestUsize>,) -> Option<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allocate
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:112,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:115,1
    - Dst: Result::unwrap_or_else
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - address
    - size
    - align_size
    argTypes:
    - Option<GuestAddress>
    - GuestUsize
    - Option<GuestUsize>
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 10
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: SystemAllocator::allocate_platform_mmio_addresses
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/system.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_or_else
    - Some
    - allocate
    linkageType: ''
    returnType: Option
    signature: 'pub fn allocate_platform_mmio_addresses(&mut self,address: Option<GuestAddress>,size:
      GuestUsize,align_size: Option<GuestUsize>,) -> Option<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - GuestAddress
    - GuestUsize
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 9
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: SystemAllocator::free_io_addresses
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/system.rs
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'pub fn free_io_addresses(&mut self, address: GuestAddress, size: GuestUsize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cloud-hypervisor/vm-allocator/src/system.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - GuestAddress
    - GuestUsize
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 9
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: SystemAllocator::free_platform_mmio_addresses
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/system.rs
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'pub fn free_platform_mmio_addresses(&mut self, address: GuestAddress,
      size: GuestUsize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - base
    - irqs
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: GsiApic::new
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/gsi.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(base: u32, irqs: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: GsiAllocator::new
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/gsi.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_add
      Src: /src/cloud-hypervisor/vm-allocator/src/gsi.rs:77,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vm-allocator/src/gsi.rs:77,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-allocator/src/gsi.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: GsiAllocator::allocate_gsi
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/gsi.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - checked_add
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn allocate_gsi(&mut self) -> Result<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_add
      Src: /src/cloud-hypervisor/vm-allocator/src/gsi.rs:104,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vm-allocator/src/gsi.rs:104,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vm-allocator/src/gsi.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: GsiAllocator::allocate_irq
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/gsi.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - checked_add
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn allocate_irq(&mut self) -> Result<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GsiAllocator::new
      Src: /src/cloud-hypervisor/vm-allocator/src/gsi.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: GsiAllocator::default
    functionSourceFile: /src/cloud-hypervisor/vm-allocator/src/gsi.rs
    functionUses: 0
    functionsReached:
    - GsiAllocator::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: std::io::Error::from
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::other
    linkageType: ''
    returnType: Self
    signature: 'fn from(e: Error) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:86,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:87,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:87,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:89,1
    - Dst: RxVirtio::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:91,1
    - Dst: TxVirtio::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:92,1
    - Dst: NetCounters::default
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - tap
    argTypes:
    - Tap
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 105
    functionName: VhostUserNetThread::new
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 1
    functionsReached:
    - RxVirtio::new
    - EventFd::new
    - NetCounters::default
    - Result::map_err
    - TxVirtio::new
    - Result::clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn new(tap: Tap) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - RawFd
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: VhostUserNetThread::set_epoll_fd
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_epoll_fd(&mut self, fd: RawFd)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: net_util::open_tap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:132,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:134,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:135,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:136,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:132,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:143,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:144,1
    - Dst: drain
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:145,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:145,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:146,1
    - Dst: VhostUserNetThread::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:146,1
    - Dst: usize::push
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:147,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:148,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 8
    argNames:
    - ip_addr
    - host_mac
    - netmask
    - mtu
    - num_queues
    - queue_size
    - ifname
    - mem
    argTypes:
    - IpAddr
    - MacAddr
    - IpAddr
    - Option<u16>
    - usize
    - u16
    - Option<&str>
    - GuestMemoryAtomic<GuestMemoryMmap>
    constantsTouched: []
    func_position:
      end: 158
      start: 122
    functionDepth: 20
    functionLinenumber: 122
    functionLinenumberEnd: 158
    functionName: VhostUserNetBackend::new
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - drain
    - VhostUserNetThread::new
    - usize::push
    - Mutex::new
    - Vec::push
    - net_util::open_tap
    - Result::map_err
    - enumerate
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn new(ip_addr: IpAddr,host_mac: MacAddr,netmask: IpAddr,mtu: Option<u16>,num_queues:
      usize,queue_size: u16,ifname: Option<&str>,mem: GuestMemoryAtomic<GuestMemoryMmap>,)
      -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: VhostUserNetBackend::num_queues
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn num_queues(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: VhostUserNetBackend::max_queue_size
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn max_queue_size(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: VhostUserNetBackend::features
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - bits
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: VhostUserNetBackend::protocol_features
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VhostUserProtocolFeatures
    signature: fn protocol_features(&self) -> VhostUserProtocolFeatures
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: VhostUserNetBackend::set_event_idx
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_event_idx(&mut self, _enabled: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:208,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:208,1
    - Dst: net_util::register_listener
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:212,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:213,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:214,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:216,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:212,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:223,1
    - Dst: process_tx
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:224,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:226,1
    - Dst: deref
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:226,1
    - Dst: get_queue_mut
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:226,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:224,1
    - Dst: signal_used_queue
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:229,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:229,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:235,1
    - Dst: process_rx
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:236,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:238,1
    - Dst: deref
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:238,1
    - Dst: get_queue_mut
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:238,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:236,1
    - Dst: signal_used_queue
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:241,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:241,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:246,1
    - Dst: into
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:246,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 4
    argNames:
    - device_event
    - _evset
    - vrings
    - thread_id
    argTypes:
    - u16
    - EventSet
    - '&[VringRwLock<GuestMemoryAtomic<GuestMemoryMmap>>]'
    - usize
    constantsTouched: []
    func_position:
      end: 250
      start: 201
    functionDepth: 8
    functionLinenumber: 201
    functionLinenumberEnd: 250
    functionName: VhostUserNetBackend::handle_event
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - map_err
    - process_rx
    - std::result::Result::map_err
    - get_queue_mut
    - process_tx
    - deref
    - Err
    - get_mut
    - net_util::register_listener
    - u64::from
    - into
    - Ok
    - unwrap
    - as_raw_fd
    - memory
    - signal_used_queue
    linkageType: ''
    returnType: VhostUserBackendResult
    signature: 'fn handle_event(&mut self,device_event: u16,_evset: EventSet,vrings:
      &[VringRwLock<GuestMemoryAtomic<GuestMemoryMmap>>],thread_id: usize,) -> VhostUserBackendResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:253,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:254,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:254,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:254,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - thread_index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 13
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: VhostUserNetBackend::exit_event
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - lock
    - Some
    - unwrap
    - try_clone
    linkageType: ''
    returnType: Option
    signature: 'fn exit_event(&self, thread_index: usize) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: VhostUserNetBackend::queues_per_thread
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Vec
    signature: fn queues_per_thread(&self) -> Vec<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _mem
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: VhostUserNetBackend::update_memory
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: VhostUserBackendResult
    signature: 'fn update_memory(&mut self,_mem: GuestMemoryAtomic<GuestMemoryMmap>,)
      -> VhostUserBackendResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:289,1
    - Dst: add
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:291,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:302,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:302,1
    - Dst: get
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:304,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:305,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:305,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:305,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:308,1
    - Dst: Ipv4Addr::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:308,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:309,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:309,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:309,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:313,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:313,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:313,1
    - Dst: IpAddr::V4
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:316,1
    - Dst: Ipv4Addr::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:316,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:317,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:317,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:318,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:318,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:318,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:322,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:322,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:322,1
    - Dst: get
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:326,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:326,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:327,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:327,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:327,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:330,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:333,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 90
    argCount: 1
    argNames:
    - backend
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 344
      start: 288
    functionDepth: 11
    functionLinenumber: 288
    functionLinenumberEnd: 344
    functionName: VhostUserNetBackendConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 1
    functionsReached:
    - vm::Result::ok_or
    - map_err
    - add
    - convert
    - parse
    - option_parser::Toggle
    - Result::map_err
    - IpAddr::V4
    - convert::<Toggle>
    - '&mut Self::add'
    - OptionParser::new
    - Ok
    - get
    - unwrap_or_else
    - Ipv4Addr::new
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(backend: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserNetBackendConfig::parse
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:348,1
    - Dst: process::exit
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:352,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:356,1
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:358,1
    - Dst: GuestMemoryMmap::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:358,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:360,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:360,1
    - Dst: VhostUserNetBackend::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:361,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:369,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:361,1
    - Dst: VhostUserDaemon::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:374,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:375,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:376,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:374,1
    - Dst: (std::process::Command, String)::get_epoll_handlers
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:381,1
    - Dst: len
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:382,1
    - Dst: read
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:382,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:382,1
    - Dst: len
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:382,1
    - Dst: process::exit
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:384,1
    - Dst: read
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:387,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:387,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:387,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:387,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:388,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:388,1
    - Dst: set_epoll_fd
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:388,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:391,1
    - Dst: (std::process::Command, String)::start_client
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:395,1
    - Dst: (std::process::Command, String)::start
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:397,1
    - Dst: Listener::new
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:397,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:397,1
    - Dst: process::exit
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:400,1
    - Dst: (std::process::Command, String)::wait
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:403,1
    - Dst: read
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:407,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:407,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:407,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:408,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:408,1
    - Dst: write
      Src: /src/cloud-hypervisor/vhost_user_net/src/lib.rs:408,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 110
    argCount: 1
    argNames:
    - backend_command
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 412
      start: 347
    functionDepth: 21
    functionLinenumber: 347
    functionLinenumberEnd: 412
    functionName: start_net_backend
    functionSourceFile: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
    functionUses: 0
    functionsReached:
    - RwLock::new
    - '&str::to_string'
    - GuestMemoryAtomic::new
    - Listener::new
    - Result::unwrap
    - Vec::lock
    - Arc::new
    - GuestMemoryMmap::clone
    - set_epoll_fd
    - len
    - (std::process::Command, String)::start_client
    - as_raw_fd
    - VhostUserNetBackendConfig::parse
    - as_deref
    - GuestMemoryMmap::new
    - iter
    - VhostUserNetBackend::new
    - (std::process::Command, String)::get_epoll_handlers
    - unwrap
    - read
    - clone
    - VhostUserDaemon::new
    - (std::process::Command, String)::wait
    - process::exit
    - (std::process::Command, String)::start
    - enumerate
    - write
    linkageType: ''
    returnType: void
    signature: 'pub fn start_net_backend(backend_command: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: PvmemcontrolSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: PvmemcontrolTransport::ack
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn ack() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: PvmemcontrolTransport::error
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn error() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - command
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: PvmemcontrolTransport::register_response
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - bool::into
    linkageType: ''
    returnType: Self
    signature: 'fn register_response(command: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: PvmemcontrolTransport::as_register
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PvmemcontrolTransportRegister
    signature: unsafe fn as_register(self) -> PvmemcontrolTransportRegister
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: PvmemcontrolResp::fmt
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestConnection::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: GuestConnection::default
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 2
    functionsReached:
    - GuestConnection::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - command
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: GuestConnection::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(command: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestConnection::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:235,1
    - Dst: GuestConnection::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: GuestConnection::next
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - GuestConnection::new
    - GuestConnection::default
    linkageType: ''
    returnType: Self
    signature: fn next(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:247,1
    - Dst: GuestConnection::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:247,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:249,1
    - Dst: Error::InvalidConnection
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: GuestConnection::try_from
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - GuestConnection::new
    - Error::InvalidConnection
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(value: u32) -> Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:262,1
    - Dst: GuestConnection::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: PercpuInitState::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - HashMap::new
    - GuestConnection::default
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - transport
    - state
    argTypes:
    - PvmemcontrolTransport
    - PvmemcontrolState
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: PvmemcontrolDevice::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(transport: PvmemcontrolTransport, state: PvmemcontrolState)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:292,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:292,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:293,1
    - Dst: Result::check_range
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:293,1
    - Dst: std::mem::size_of::<PvmemcontrolResp>
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:295,1
    - Dst: max
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:295,1
    - Dst: std::mem::size_of::<PvmemcontrolReq>
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:295,1
    - Dst: PvmemcontrolDevice::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:298,1
    - Dst: PvmemcontrolTransport::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:299,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:307,1
    - Dst: next
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:308,1
    - Dst: PvmemcontrolDevice::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:311,1
    - Dst: PvmemcontrolTransport::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:312,1
    - Dst: next
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:319,1
    - Dst: insert
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:320,1
    - Dst: PvmemcontrolTransport::register_response
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:323,1
    - Dst: PvmemcontrolDevice::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:325,1
    - Dst: PvmemcontrolState::PercpuInit
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 3
    argNames:
    - guest_memory
    - state
    argTypes:
    - '&GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>'
    - PercpuInitState
    - PvmemcontrolTransportRegister
    constantsTouched: []
    func_position:
      end: 326
      start: 286
    functionDepth: 7
    functionLinenumber: 286
    functionLinenumberEnd: 326
    functionName: PvmemcontrolDevice::register_percpu_buf
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - PvmemcontrolDevice::new
    - next
    - insert
    - PvmemcontrolState::PercpuInit
    - GuestMemoryAtomic::memory
    - std::mem::size_of::<PvmemcontrolReq>
    - into
    - PvmemcontrolTransport::error
    - PvmemcontrolTransport::register_response
    - contains_key
    - Result::check_range
    - std::mem::size_of::<PvmemcontrolResp>
    - max
    linkageType: ''
    returnType: Self
    signature: 'fn register_percpu_buf(guest_memory: &GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>,mut
      state: PercpuInitState,PvmemcontrolTransportRegister'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolDevice::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:329,1
    - Dst: PvmemcontrolTransport::ack
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:330,1
    - Dst: PvmemcontrolState::PercpuInit
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:331,1
    - Dst: PercpuInitState::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 6
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: PvmemcontrolDevice::reset
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - PvmemcontrolTransport::ack
    - PvmemcontrolState::PercpuInit
    - PercpuInitState::new
    - PvmemcontrolDevice::new
    linkageType: ''
    returnType: Self
    signature: fn reset() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolDevice::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:336,1
    - Dst: PvmemcontrolTransport::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: PvmemcontrolDevice::error
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - PvmemcontrolDevice::new
    - PvmemcontrolTransport::error
    linkageType: ''
    returnType: Self
    signature: fn error() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolDevice::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:340,1
    - Dst: PvmemcontrolTransport::ack
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:341,1
    - Dst: PvmemcontrolState::Ready
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames: []
    argTypes:
    - PercpuInitState
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: PvmemcontrolDevice::ready
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - PvmemcontrolTransport::ack
    - PvmemcontrolDevice::new
    - PvmemcontrolState::Ready
    linkageType: ''
    returnType: Self
    signature: fn ready(PercpuInitState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::replace
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:351,1
    - Dst: Self::reset
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:354,1
    - Dst: Self::register_percpu_buf
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:359,1
    - Dst: as_register
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:360,1
    - Dst: Self::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:364,1
    - Dst: Self::ready
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:369,1
    - Dst: Self::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:372,1
    - Dst: Self::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:375,1
    - Dst: Self::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:378,1
    - Dst: Self::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - guest_memory
    - command
    argTypes:
    - '&GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>'
    - PvmemcontrolTransportCommand
    constantsTouched: []
    func_position:
      end: 385
      start: 346
    functionDepth: 7
    functionLinenumber: 346
    functionLinenumberEnd: 385
    functionName: PvmemcontrolDevice::run_command
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - Self::ready
    - Self::register_percpu_buf
    - std::mem::replace
    - Self::error
    - Self::reset
    - as_register
    linkageType: ''
    returnType: void
    signature: 'fn run_command(&mut self,guest_memory: &GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>,command:
      PvmemcontrolTransportCommand,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:389,1
    - Dst: iter
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:389,1
    - Dst: skip
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:389,1
    - Dst: zip
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:389,1
    - Dst: String::iter_mut
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:393,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: PvmemcontrolDevice::read_transport
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - iter
    - for_each
    - zip
    - as_slice
    - String::iter_mut
    - skip
    linkageType: ''
    returnType: void
    signature: 'fn read_transport(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:400,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:400,1
    - Dst: skip
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:400,1
    - Dst: zip
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:400,1
    - Dst: String::iter
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:405,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 407
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 407
    functionName: PvmemcontrolDevice::write_transport
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - iter_mut
    - for_each
    - zip
    - String::iter
    - as_mut_slice
    - skip
    linkageType: ''
    returnType: void
    signature: 'fn write_transport(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::get
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:411,1
    - Dst: vm::Result::copied
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - GuestConnection
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 8
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: PvmemcontrolDevice::find_connection
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - vm::Result::copied
    - Self::get
    linkageType: ''
    returnType: Option
    signature: 'fn find_connection(&self, conn: GuestConnection) -> Option<GuestAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:435,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:436,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:437,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:437,1
    - Dst: Result::get_slice
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:440,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:441,1
    - Dst: Error::GuestMemory
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:441,1
    - Dst: GuestMemoryError::InvalidGuestAddress
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:441,1
    - Dst: f
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:446,1
    - Dst: '&[T]::ptr_guard_mut'
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:446,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:446,1
    - Dst: '&[T]::len'
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:446,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:448,1
    - Dst: Error::LibcFail
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:448,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:448,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 3
    argNames:
    - addr
    - length
    - f
    argTypes:
    - u64
    - u64
    - F
    constantsTouched: []
    func_position:
      end: 451
      start: 431
    functionDepth: 7
    functionLinenumber: 431
    functionLinenumberEnd: 451
    functionName: PvmemcontrolBusDevice::operate_on_memory_range
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 5
    functionsReached:
    - as_ptr
    - vm_memory::GuestAddress
    - '&[T]::len'
    - GuestMemoryError::InvalidGuestAddress
    - Result::get_slice
    - Err
    - usize::try_from
    - Result::map_err
    - '&[T]::ptr_guard_mut'
    - Ok
    - Error::GuestMemory
    - Error::LibcFail
    - io::Error::last_os_error
    - memory
    - f
    linkageType: ''
    returnType: result::Result
    signature: 'fn operate_on_memory_range<F>(&self, addr: u64, length: u64, f: F)
      -> result::Result<(), Error>whereF: FnOnce(*mut libc::c_void, usize) -> libc::c_int,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolBusDevice::operate_on_memory_range
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:455,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - addr
    - length
    - advice
    argTypes:
    - u64
    - u64
    - libc::c_int
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 8
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: PvmemcontrolBusDevice::madvise
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - libc::madvise
    - PvmemcontrolBusDevice::operate_on_memory_range
    linkageType: ''
    returnType: result::Result
    signature: 'fn madvise(&self, addr: u64, length: u64, advice: libc::c_int) ->
      result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolBusDevice::operate_on_memory_range
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:462,1
    - Dst: libc::mlock2
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - length
    - on_default
    argTypes:
    - u64
    - u64
    - bool
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 8
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: PvmemcontrolBusDevice::mlock
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - libc::mlock2
    - PvmemcontrolBusDevice::operate_on_memory_range
    linkageType: ''
    returnType: result::Result
    signature: 'fn mlock(&self, addr: u64, length: u64, on_default: bool) -> result::Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolBusDevice::operate_on_memory_range
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:469,1
    - Dst: libc::munlock
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - length
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: PvmemcontrolBusDevice::munlock
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - libc::munlock
    - PvmemcontrolBusDevice::operate_on_memory_range
    linkageType: ''
    returnType: result::Result
    signature: 'fn munlock(&self, addr: u64, length: u64) -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolBusDevice::operate_on_memory_range
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:481,1
    - Dst: libc::mprotect
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - addr
    - length
    - protection
    argTypes:
    - u64
    - u64
    - libc::c_int
    constantsTouched: []
    func_position:
      end: 484
      start: 474
    functionDepth: 8
    functionLinenumber: 474
    functionLinenumberEnd: 484
    functionName: PvmemcontrolBusDevice::mprotect
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - libc::mprotect
    - PvmemcontrolBusDevice::operate_on_memory_range
    linkageType: ''
    returnType: result::Result
    signature: 'fn mprotect(&self,addr: u64,length: u64,protection: libc::c_int,)
      -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: then
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:487,1
    - Dst: CString::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:487,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:487,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:489,1
    - Dst: std::ptr::null
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:491,1
    - Dst: PvmemcontrolBusDevice::operate_on_memory_range
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:496,1
    - Dst: libc::prctl
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - addr
    - length
    - name
    argTypes:
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 505
      start: 486
    functionDepth: 5
    functionLinenumber: 486
    functionLinenumberEnd: 505
    functionName: PvmemcontrolBusDevice::set_vma_anon_name
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - PvmemcontrolBusDevice::operate_on_memory_range
    - CString::new
    - Result::as_ptr
    - std::ptr::null
    - Result::unwrap
    - libc::prctl
    - then
    linkageType: ''
    returnType: result::Result
    signature: 'fn set_vma_anon_name(&self, addr: u64, length: u64, name: u64) ->
      result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:516,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:517,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:518,1
    - Dst: vm_allocator::page_size::get_page_size
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:519,1
    - Dst: u64::into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:519,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:520,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:521,1
    - Dst: PvmemcontrolBusDevice::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:524,1
    - Dst: PvmemcontrolBusDevice::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:525,1
    - Dst: PvmemcontrolBusDevice::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:526,1
    - Dst: PvmemcontrolBusDevice::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:527,1
    - Dst: PvmemcontrolBusDevice::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:528,1
    - Dst: PvmemcontrolBusDevice::set_vma_anon_name
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:529,1
    - Dst: PvmemcontrolBusDevice::mlock
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:530,1
    - Dst: PvmemcontrolBusDevice::munlock
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:531,1
    - Dst: PvmemcontrolBusDevice::mprotect
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:532,1
    - Dst: PvmemcontrolBusDevice::mprotect
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:533,1
    - Dst: PvmemcontrolBusDevice::mprotect
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:534,1
    - Dst: PvmemcontrolBusDevice::mprotect
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:536,1
    - Dst: PvmemcontrolBusDevice::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:538,1
    - Dst: PvmemcontrolBusDevice::madvise
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:539,1
    - Dst: Result::map
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:541,1
    - Dst: PvmemcontrolResp::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 4
    argNames:
    - func_code
    - addr
    - length
    - arg
    argTypes:
    - FunctionCode
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 542
      start: 507
    functionDepth: 7
    functionLinenumber: 507
    functionLinenumberEnd: 542
    functionName: PvmemcontrolBusDevice::process_request
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - vm_allocator::page_size::get_page_size
    - u64::into
    - into
    - PvmemcontrolBusDevice::mlock
    - PvmemcontrolBusDevice::madvise
    - PvmemcontrolBusDevice::mprotect
    - PvmemcontrolBusDevice::set_vma_anon_name
    - PvmemcontrolResp::default
    - PvmemcontrolBusDevice::munlock
    - Result::map
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn process_request(&self,func_code: FunctionCode,addr: u64,length:
      u64,arg: u64,) -> Result<PvmemcontrolResp, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_native
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:554,1
    - Dst: u64::to_native
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:555,1
    - Dst: u64::to_native
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:556,1
    - Dst: to_native
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:557,1
    - Dst: FunctionCode::try_from
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:560,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:560,1
    - Dst: Error::UnknownFunctionCode
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:561,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:560,1
    - Dst: PvmemcontrolBusDevice::process_request
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:562,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:568,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:569,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:570,1
    - Dst: raw_os_error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:573,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:573,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:573,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:574,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:575,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:578,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:579,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:580,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:585,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:586,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:587,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:591,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 67
    argCount: 1
    argNames: []
    argTypes:
    - PvmemcontrolReq
    constantsTouched: []
    func_position:
      end: 595
      start: 544
    functionDepth: 7
    functionLinenumber: 544
    functionLinenumberEnd: 595
    functionName: PvmemcontrolBusDevice::handle_request
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - FunctionCode::try_from
    - u64::to_native
    - Default::default
    - raw_os_error
    - unwrap_or
    - into
    - Err
    - and_then
    - Result::map_err
    - Ok
    - PvmemcontrolBusDevice::process_request
    - Error::UnknownFunctionCode
    - to_native
    linkageType: ''
    returnType: Result
    signature: fn handle_request(&self,PvmemcontrolReq
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:598,1
    - Dst: read_obj
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:598,1
    - Dst: PvmemcontrolBusDevice::handle_request
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:605,1
    - Dst: memory
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:613,1
    - Dst: write_obj
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:613,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - guest_addr
    argTypes:
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 616
      start: 597
    functionDepth: 8
    functionLinenumber: 597
    functionLinenumberEnd: 616
    functionName: PvmemcontrolBusDevice::handle_pvmemcontrol_request
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - write_obj
    - PvmemcontrolBusDevice::handle_request
    - read_obj
    - is_err
    - memory
    linkageType: ''
    returnType: void
    signature: 'fn handle_pvmemcontrol_request(&self, guest_addr: GuestAddress)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:620,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:620,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:624,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:624,1
    - Dst: write_transport
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:624,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:627,1
    - Dst: bool::iter_mut
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:629,1
    - Dst: IterMut::zip
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:629,1
    - Dst: String::iter
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:630,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:629,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:637,1
    - Dst: PvmemcontrolTransportCommand::try_from
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:638,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:641,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:641,1
    - Dst: run_command
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:641,1
    - Dst: GuestConnection::try_from
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:643,1
    - Dst: Result::and_then
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:643,1
    - Dst: read
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:645,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:645,1
    - Dst: find_connection
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:645,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:645,1
    - Dst: Error::InvalidConnection
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:649,1
    - Dst: map_or_else
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:643,1
    - Dst: PvmemcontrolBusDevice::handle_pvmemcontrol_request
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:653,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 82
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 657
      start: 618
    functionDepth: 8
    functionLinenumber: 618
    functionLinenumberEnd: 657
    functionName: PvmemcontrolBusDevice::handle_guest_write
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - map_or_else
    - PvmemcontrolTransportCommand::try_from
    - Result::and_then
    - write_transport
    - String::iter
    - ok_or
    - String::len
    - PvmemcontrolBusDevice::handle_pvmemcontrol_request
    - bool::iter_mut
    - for_each
    - IterMut::zip
    - unwrap
    - read
    - run_command
    - find_connection
    - Error::InvalidConnection
    - u32::from_le_bytes
    - GuestConnection::try_from
    - write
    linkageType: ''
    returnType: void
    signature: 'fn handle_guest_write(&self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:660,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:660,1
    - Dst: read_transport
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 661
      start: 659
    functionDepth: 8
    functionLinenumber: 659
    functionLinenumberEnd: 661
    functionName: PvmemcontrolBusDevice::handle_guest_read
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - read_transport
    - unwrap
    - read
    linkageType: ''
    returnType: void
    signature: 'fn handle_guest_read(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:669,1
    - Dst: PvmemcontrolDevice::error
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:669,1
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:670,1
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:685,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - id
    - mem
    argTypes:
    - String
    - GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>
    constantsTouched: []
    func_position:
      end: 694
      start: 665
    functionDepth: 5
    functionLinenumber: 665
    functionLinenumberEnd: 694
    functionName: PvmemcontrolDevice::make_device
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - PciConfiguration::new
    - RwLock::new
    - PvmemcontrolDevice::error
    - write_config_register
    linkageType: ''
    returnType: (PvmemcontrolPciDevice, PvmemcontrolBusDevice)
    signature: 'pub fn make_device(id: String,mem: GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>,)
      -> (PvmemcontrolPciDevice, PvmemcontrolBusDevice)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 709
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 709
    functionName: PvmemcontrolPciDevice::write_config_register
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - write_config_register
    linkageType: ''
    returnType: (Vec
    signature: 'fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_config_register
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: PvmemcontrolPciDevice::read_config_register
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - read_config_register
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 717
    functionName: PvmemcontrolPciDevice::as_any_mut
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn std::any::Any'
    signature: fn as_any_mut(&mut self) -> &mut dyn std::any::Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 792
    functionName: PvmemcontrolPciDevice::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:730,1
    - Dst: Vec::is_some
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:734,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:735,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:736,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:735,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:737,1
    - Dst: PciBarConfiguration::default
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:739,1
    - Dst: Self::set_index
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:739,1
    - Dst: Self::set_address
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:739,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:741,1
    - Dst: Self::set_size
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:739,1
    - Dst: Self::set_region_type
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:739,1
    - Dst: Self::set_prefetchable
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:739,1
    - Dst: add_pci_bar
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:747,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:747,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:749,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:749,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:752,1
    - Dst: clone_from
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:753,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 4
    argNames:
    - _allocator
    - mmio32_allocator
    - _mmio64_allocator
    - resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 755
      start: 723
    functionDepth: 9
    functionLinenumber: 723
    functionLinenumberEnd: 755
    functionName: PvmemcontrolPciDevice::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - Self::set_prefetchable
    - Self::set_index
    - map_err
    - Ok
    - Self::set_size
    - Vec::new
    - PciDeviceError::IoAllocationFailed
    - '&mut AddressAllocator::allocate'
    - PciBarConfiguration::default
    - Result::push
    - PciDeviceError::IoRegistrationFailed
    - Self::set_region_type
    - Vec::is_some
    - add_pci_bar
    - clone_from
    - Self::set_address
    - Option::ok_or
    - u64::raw_value
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn allocate_bars(&mut self,_allocator: &Arc<Mutex<SystemAllocator>>,mmio32_allocator:
      &mut AddressAllocator,_mmio64_allocator: &mut AddressAllocator,resources: Option<Vec<Resource>>,)
      -> Result<Vec<PciBarConfiguration>, PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: drain
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:763,1
    - Dst: '&mut AddressAllocator::free'
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:764,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:764,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:764,1
    - Dst: result::Result::size
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:764,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - _allocator
    - mmio32_allocator
    - _mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 767
      start: 757
    functionDepth: 9
    functionLinenumber: 757
    functionLinenumberEnd: 767
    functionName: PvmemcontrolPciDevice::free_bars
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - result::Result::size
    - vm_memory::GuestAddress
    - drain
    - result::Result::addr
    - '&mut AddressAllocator::free'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn free_bars(&mut self,_allocator: &mut SystemAllocator,mmio32_allocator:
      &mut AddressAllocator,_mmio64_allocator: &mut AddressAllocator,) -> Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:770,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:771,1
    - Dst: result::Result::set_address
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:772,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - old_base
    - new_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 776
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 776
    functionName: PvmemcontrolPciDevice::move_bar
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - result::Result::set_address
    - Ok
    - result::Result::addr
    - iter_mut
    linkageType: ''
    returnType: result::Result
    signature: 'fn move_bar(&mut self, old_base: u64, new_base: u64) -> result::Result<(),
      io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: PvmemcontrolPciDevice::pause
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 786
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 786
    functionName: PvmemcontrolPciDevice::resume
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:795,1
    - Dst: ApiResult::add_snapshot
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:798,1
    - Dst: id
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:798,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:798,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 9
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: PvmemcontrolPciDevice::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - ApiResult::add_snapshot
    - Snapshot::new_from_state
    - snapshot
    - id
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolBusDevice::handle_guest_read
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 810
      start: 808
    functionDepth: 9
    functionLinenumber: 808
    functionLinenumberEnd: 810
    functionName: PvmemcontrolBusDevice::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - PvmemcontrolBusDevice::handle_guest_read
    linkageType: ''
    returnType: void
    signature: 'fn read(&self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvmemcontrolBusDevice::handle_guest_write
      Src: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 9
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: PvmemcontrolBusDevice::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
    functionUses: 0
    functionsReached:
    - PvmemcontrolBusDevice::handle_guest_write
    linkageType: ''
    returnType: Option
    signature: 'fn write(&self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RedirectionTableEntry
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: vector
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn vector(entry: RedirectionTableEntry) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RedirectionTableEntry
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: delivery_mode
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn delivery_mode(entry: RedirectionTableEntry) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RedirectionTableEntry
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: destination_mode
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn destination_mode(entry: RedirectionTableEntry) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RedirectionTableEntry
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: remote_irr
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn remote_irr(entry: RedirectionTableEntry) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RedirectionTableEntry
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: trigger_mode
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn trigger_mode(entry: RedirectionTableEntry) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RedirectionTableEntry
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: interrupt_mask
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn interrupt_mask(entry: RedirectionTableEntry) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RedirectionTableEntry
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: destination_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn destination_field(entry: RedirectionTableEntry) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - entry
    - val
    argTypes:
    - '&mut RedirectionTableEntry'
    - u8
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: set_delivery_status
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached:
    - u64::from
    linkageType: ''
    returnType: void
    signature: 'fn set_delivery_status(entry: &mut RedirectionTableEntry, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - entry
    - val
    argTypes:
    - '&mut RedirectionTableEntry'
    - u8
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: set_remote_irr
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 2
    functionsReached:
    - u64::from
    linkageType: ''
    returnType: void
    signature: 'fn set_remote_irr(entry: &mut RedirectionTableEntry, val: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - selector
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: decode_irq_from_selector
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: (usize, bool)
    signature: 'fn decode_irq_from_selector(selector: u8) -> (usize, bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:150,1
    - Dst: std::mem::size_of::<u32>
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:150,1
    - Dst: Ioapic::ioapic_read
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:159,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 167
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 167
    functionName: Ioapic::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 0
    functionsReached:
    - String::len
    - Ioapic::ioapic_read
    - LittleEndian::write_u32
    - std::mem::size_of::<u32>
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:170,1
    - Dst: std::mem::size_of::<u32>
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:170,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:177,1
    - Dst: Ioapic::ioapic_write
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 9
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: Ioapic::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 0
    functionsReached:
    - String::len
    - Ioapic::ioapic_write
    - LittleEndian::read_u32
    - std::mem::size_of::<u32>
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>::create_group'
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:197,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:197,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:211,1
    - Dst: String::is_some
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:236,1
    - Dst: iter
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:237,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:237,1
    - Dst: update_entry
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:239,1
    - Dst: set_gsi
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:243,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:243,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 4
    argNames:
    - id
    - apic_address
    - interrupt_manager
    - state
    argTypes:
    - String
    - GuestAddress
    - '&dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>'
    - Option<&IoapicState>
    constantsTouched: []
    func_position:
      end: 250
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 250
    functionName: Ioapic::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached:
    - iter
    - String::is_some
    - vm_memory::GuestAddress
    - map_err
    - '&dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>::create_group'
    - set_gsi
    - Result::map_err
    - update_entry
    - enumerate
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,apic_address: GuestAddress,interrupt_manager:
      &dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>,state: Option<&IoapicState>,)
      -> Result<Ioapic>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_irq_from_selector
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:268,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:275,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:281,1
    - Dst: Ioapic::update_entry
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 1
    argNames:
    - val
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 296
      start: 252
    functionDepth: 8
    functionLinenumber: 252
    functionLinenumberEnd: 296
    functionName: Ioapic::ioapic_write
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached:
    - u64::from
    - Ioapic::update_entry
    - decode_irq_from_selector
    linkageType: ''
    returnType: void
    signature: 'fn ioapic_write(&mut self, val: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_irq_from_selector
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 324
    functionName: Ioapic::ioapic_read
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached:
    - decode_irq_from_selector
    linkageType: ''
    returnType: u32
    signature: fn ioapic_read(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: Ioapic::state
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: IoapicState
    signature: fn state(&self) -> IoapicState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: destination_mode
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:340,1
    - Dst: destination_field
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:341,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:350,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:351,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:352,1
    - Dst: trigger_mode
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:355,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:358,1
    - Dst: delivery_mode
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:362,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:372,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:376,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:377,1
    - Dst: remote_irr
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:377,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:378,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:379,1
    - Dst: vector
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:379,1
    - Dst: update
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:388,1
    - Dst: InterruptSourceConfig::MsiIrq
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:391,1
    - Dst: interrupt_mask
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:392,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:388,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:397,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 96
    argCount: 2
    argNames:
    - irq
    - set_gsi
    argTypes:
    - usize
    - bool
    constantsTouched: []
    func_position:
      end: 398
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 398
    functionName: Ioapic::update_entry
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 1
    functionsReached:
    - destination_mode
    - map_err
    - u32::from
    - update
    - interrupt_mask
    - Err
    - delivery_mode
    - destination_field
    - remote_irr
    - InterruptSourceConfig::MsiIrq
    - vector
    - trigger_mode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_entry(&self, irq: usize, set_gsi: bool) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:408,1
    - Dst: trigger_mode
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:408,1
    - Dst: set_remote_irr
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - vec
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 412
      start: 404
    functionDepth: 9
    functionLinenumber: 404
    functionLinenumberEnd: 412
    functionName: Ioapic::end_of_interrupt
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 0
    functionsReached:
    - set_remote_irr
    - vector
    - trigger_mode
    linkageType: ''
    returnType: void
    signature: 'fn end_of_interrupt(&mut self, vec: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:419,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:419,1
    - Dst: trigger_mode
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:426,1
    - Dst: set_remote_irr
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:427,1
    - Dst: set_delivery_status
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:430,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - irq
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 433
      start: 416
    functionDepth: 9
    functionLinenumber: 416
    functionLinenumberEnd: 433
    functionName: Ioapic::service_irq
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 0
    functionsReached:
    - trigger_mode
    - set_remote_irr
    - map_err
    - trigger
    - set_delivery_status
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn service_irq(&mut self, irq: usize) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notifier
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 437
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 437
    functionName: Ioapic::notifier
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 0
    functionsReached:
    - notifier
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, irq: usize) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: Ioapic::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:446,1
    - Dst: Ioapic::state
      Src: /src/cloud-hypervisor/devices/src/ioapic.rs:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 445
    functionDepth: 8
    functionLinenumber: 445
    functionLinenumberEnd: 447
    functionName: Ioapic::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/ioapic.rs
    functionUses: 0
    functionsReached:
    - Ioapic::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>::create_group
      Src: /src/cloud-hypervisor/devices/src/aia.rs:48,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/aia.rs:48,1
    - Dst: Aia::create_default_config
      Src: /src/cloud-hypervisor/devices/src/aia.rs:55,1
    - Dst: create_vaia
      Src: /src/cloud-hypervisor/devices/src/aia.rs:56,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/devices/src/aia.rs:56,1
    - Dst: vm::Result::enable
      Src: /src/cloud-hypervisor/devices/src/aia.rs:62,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/aia.rs:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - vcpu_count
    - interrupt_manager
    - vm
    argTypes:
    - u32
    - Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>
    - Arc<dyn hypervisor::Vm>
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 7
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: Aia::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/aia.rs
    functionUses: 0
    functionsReached:
    - Aia::create_default_config
    - create_vaia
    - Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>::create_group
    - vm::Result::enable
    - Result::map_err
    - vm::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(vcpu_count: u32,interrupt_manager: Arc<dyn InterruptManager<GroupConfig
      = MsiIrqGroupConfig>>,vm: Arc<dyn hypervisor::Vm>,) -> Result<Aia>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/aia.rs:72,1
    - Dst: lock
      Src: /src/cloud-hypervisor/devices/src/aia.rs:72,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/aia.rs:72,1
    - Dst: set_state
      Src: /src/cloud-hypervisor/devices/src/aia.rs:72,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/devices/src/aia.rs:76,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/aia.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - state
    - _saved_vcpu_states
    argTypes:
    - Option<AiaState>
    - '&[CpuState]'
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 13
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: Aia::restore_vaia
    functionSourceFile: /src/cloud-hypervisor/devices/src/aia.rs
    functionUses: 0
    functionsReached:
    - set_state
    - map_err
    - lock
    - String::unwrap
    - unwrap
    - clone
    linkageType: ''
    returnType: Result
    signature: 'pub fn restore_vaia(&mut self,state: Option<AiaState>,_saved_vcpu_states:
      &[CpuState],) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enable
      Src: /src/cloud-hypervisor/devices/src/aia.rs:82,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/aia.rs:82,1
    - Dst: update
      Src: /src/cloud-hypervisor/devices/src/aia.rs:94,1
    - Dst: InterruptSourceConfig::LegacyIrq
      Src: /src/cloud-hypervisor/devices/src/aia.rs:97,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/aia.rs:94,1
    - Dst: set_gsi
      Src: /src/cloud-hypervisor/devices/src/aia.rs:104,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/aia.rs:104,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/aia.rs:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 108
    functionName: Aia::enable
    functionSourceFile: /src/cloud-hypervisor/devices/src/aia.rs
    functionUses: 0
    functionsReached:
    - map_err
    - InterruptSourceConfig::LegacyIrq
    - update
    - enable
    - set_gsi
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn enable(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: raw_value
      Src: /src/cloud-hypervisor/devices/src/aia.rs:114,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/devices/src/aia.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vcpu_count
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: Aia::create_default_config
    functionSourceFile: /src/cloud-hypervisor/devices/src/aia.rs
    functionUses: 2
    functionsReached:
    - raw_value
    linkageType: ''
    returnType: VaiaConfig
    signature: 'pub fn create_default_config(vcpu_count: u64) -> VaiaConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/aia.rs:121,1
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/aia.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Aia::get_vaia
    functionSourceFile: /src/cloud-hypervisor/devices/src/aia.rs
    functionUses: 0
    functionsReached:
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_vaia(&mut self) -> Result<Arc<Mutex<dyn Vaia>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/devices/src/aia.rs:129,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/aia.rs:129,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/aia.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - irq
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Aia::service_irq
    functionSourceFile: /src/cloud-hypervisor/devices/src/aia.rs
    functionUses: 0
    functionsReached:
    - trigger
    - map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn service_irq(&mut self, irq: usize) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notifier
      Src: /src/cloud-hypervisor/devices/src/aia.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Aia::notifier
    functionSourceFile: /src/cloud-hypervisor/devices/src/aia.rs
    functionUses: 0
    functionsReached:
    - notifier
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, irq: usize) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: IvshmemSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:119,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:119,1
    - Dst: IvshmemError::RetrievePciConfigurationState
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:121,1
    - Dst: ApiResult::as_ref
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:126,1
    - Dst: map
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:126,1
    - Dst: FdtWriterResult::to_state
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:128,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:126,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:126,1
    - Dst: IvshmemError::RetrieveIvshmemDeviceStateState
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:131,1
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:136,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:156,1
    - Dst: AtomicU32::new
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:156,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:171,1
    - Dst: AtomicU32::new
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:171,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 5
    argNames:
    - id
    - region_size
    - backend_file
    - ivshmem_ops
    - snapshot
    argTypes:
    - String
    - u64
    - Option<PathBuf>
    - Arc<Mutex<dyn IvshmemOps>>
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 182
      start: 112
    functionDepth: 9
    functionLinenumber: 112
    functionLinenumberEnd: 182
    functionName: IvshmemDevice::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 1
    functionsReached:
    - IvshmemError::RetrieveIvshmemDeviceStateState
    - map
    - AtomicU32::new
    - transpose
    - FdtWriterResult::to_state
    - ApiResult::as_ref
    - map_err
    - PciConfiguration::new
    - Arc::new
    - vm_migration::state_from_id
    - IvshmemError::RetrievePciConfigurationState
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,region_size: u64,backend_file: Option<PathBuf>,ivshmem_ops:
      Arc<Mutex<dyn IvshmemOps>>,snapshot: Option<&Snapshot>,) -> Result<Self, IvshmemError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:185,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - region
    - userspace_mapping
    argTypes:
    - Arc<MmapRegion>
    - UserspaceMapping
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: IvshmemDevice::set_region
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_region(&mut self, region: Arc<MmapRegion>, userspace_mapping:
      UserspaceMapping)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_bar_addr
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 9
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: IvshmemDevice::config_bar_addr
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - get_bar_addr
    linkageType: ''
    returnType: u64
    signature: pub fn config_bar_addr(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_bar_addr
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 9
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: IvshmemDevice::data_bar_addr
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 1
    functionsReached:
    - get_bar_addr
    linkageType: ''
    returnType: u64
    signature: pub fn data_bar_addr(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: IvshmemDevice::state
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 1
    functionsReached:
    - load
    linkageType: ''
    returnType: IvshmemDeviceState
    signature: fn state(&self) -> IvshmemDeviceState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IvshmemDevice::read_bar
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: IvshmemDevice::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - IvshmemDevice::read_bar
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IvshmemDevice::write_bar
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: IvshmemDevice::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - IvshmemDevice::write_bar
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:225,1
    - Dst: Vec::is_some
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:229,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:235,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:235,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:239,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:239,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:250,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:250,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:251,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:256,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:256,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:258,1
    - Dst: PciBarConfiguration::default
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:261,1
    - Dst: Self::set_index
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:261,1
    - Dst: Self::set_address
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:261,1
    - Dst: None::raw_value
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:263,1
    - Dst: Self::set_size
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:261,1
    - Dst: Self::set_region_type
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:261,1
    - Dst: Self::set_prefetchable
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:261,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:272,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:272,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:274,1
    - Dst: PciBarConfiguration::default
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:277,1
    - Dst: Self::set_index
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:277,1
    - Dst: Self::set_address
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:277,1
    - Dst: None::raw_value
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:279,1
    - Dst: Self::set_size
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:277,1
    - Dst: Self::set_region_type
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:277,1
    - Dst: Self::set_prefetchable
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:277,1
    - Dst: add_pci_bar
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:285,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:285,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:287,1
    - Dst: None::raw_value
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:287,1
    - Dst: add_pci_bar
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:288,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:288,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:290,1
    - Dst: None::raw_value
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:290,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:293,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:294,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:295,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 110
    argCount: 4
    argNames:
    - _allocator
    - mmio32_allocator
    - mmio64_allocator
    - resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 298
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 298
    functionName: IvshmemDevice::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - Self::set_prefetchable
    - Self::set_index
    - map_err
    - Ok
    - Self::set_size
    - Vec::new
    - PciDeviceError::IoAllocationFailed
    - '&mut AddressAllocator::allocate'
    - PciBarConfiguration::default
    - PciDeviceError::IoRegistrationFailed
    - Result::push
    - Self::set_region_type
    - vm_memory::GuestAddress
    - Vec::is_some
    - None::raw_value
    - add_pci_bar
    - Err
    - Self::set_address
    - Result::clone
    - Option::ok_or
    - None::is_none
    - Some
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn allocate_bars(&mut self,_allocator: &Arc<Mutex<SystemAllocator>>,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,resources: Option<Vec<Resource>>,)
      -> std::result::Result<Vec<PciBarConfiguration>, PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _allocator
    - _mmio32_allocator
    - _mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 307
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 307
    functionName: IvshmemDevice::free_bars
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn free_bars(&mut self,_allocator: &mut SystemAllocator,_mmio32_allocator:
      &mut AddressAllocator,_mmio64_allocator: &mut AddressAllocator,) -> std::result::Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: IvshmemDevice::write_config_register
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - write_config_register
    linkageType: ''
    returnType: (Vec
    signature: 'fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_reg
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: IvshmemDevice::read_config_register
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - read_reg
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:330,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:330,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:331,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 347
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 347
    functionName: IvshmemDevice::read_bar
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 1
    functionsReached:
    - iter
    - enumerate
    - LittleEndian::write_u32
    - result::Result::addr
    linkageType: ''
    returnType: void
    signature: 'fn read_bar(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - offset
    - _data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: IvshmemDevice::write_bar
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn write_bar(&mut self, base: u64, offset: u64, _data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IvshmemDevice::data_bar_addr
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:356,1
    - Dst: take
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:357,1
    - Dst: lock
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:358,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:358,1
    - Dst: unmap_ram_region
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:358,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:358,1
    - Dst: lock
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:364,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:364,1
    - Dst: map_ram_region
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:364,1
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:371,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:364,1
    - Dst: IvshmemDevice::set_region
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:374,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:376,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:377,1
    - Dst: result::Result::set_address
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:378,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 2
    argNames:
    - old_base
    - new_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 383
      start: 355
    functionDepth: 12
    functionLinenumber: 355
    functionLinenumberEnd: 383
    functionName: IvshmemDevice::move_bar
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - IvshmemDevice::set_region
    - IvshmemDevice::data_bar_addr
    - map_err
    - unmap_ram_region
    - result::Result::addr
    - take
    - lock
    - result::Result::set_address
    - map_ram_region
    - unwrap
    - Ok
    - clone
    - iter_mut
    linkageType: ''
    returnType: result::Result
    signature: 'fn move_bar(&mut self, old_base: u64, new_base: u64) -> result::Result<(),
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: IvshmemDevice::as_any_mut
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: IvshmemDevice::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:404,1
    - Dst: IvshmemDevice::state
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:404,1
    - Dst: ApiResult::add_snapshot
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:407,1
    - Dst: id
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:407,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:407,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/ivshmem.rs:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 9
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: IvshmemDevice::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/ivshmem.rs
    functionUses: 0
    functionsReached:
    - ApiResult::add_snapshot
    - Snapshot::new_from_state
    - IvshmemDevice::state
    - snapshot
    - id
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/devices/src/lib.rs:5,1
    - Dst: zip
      Src: /src/cloud-hypervisor/devices/src/lib.rs:5,1
    - Dst: iter
      Src: /src/cloud-hypervisor/devices/src/lib.rs:5,1
    - Dst: impl Iterator::cloned
      Src: /src/cloud-hypervisor/devices/src/lib.rs:5,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: generate_read_fn
    functionSourceFile: /src/cloud-hypervisor/devices/src/lib.rs
    functionUses: 0
    functionsReached:
    - iter
    - zip
    - impl Iterator::cloned
    - iter_mut
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::iter_mut
      Src: /src/cloud-hypervisor/devices/src/lib.rs:3,1
    - Dst: IterMut::zip
      Src: /src/cloud-hypervisor/devices/src/lib.rs:3,1
    - Dst: iter
      Src: /src/cloud-hypervisor/devices/src/lib.rs:5,1
    - Dst: cloned
      Src: /src/cloud-hypervisor/devices/src/lib.rs:5,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: generate_write_fn
    functionSourceFile: /src/cloud-hypervisor/devices/src/lib.rs
    functionUses: 0
    functionsReached:
    - iter
    - IterMut::zip
    - cloned
    - Self::iter_mut
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - out
    argTypes:
    - String
    - Box<dyn io::Write + Send>
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: DebugConsole::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/debug_console.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: String, out: Box<dyn io::Write + Send>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _base
    - _offset
    - _data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: DebugConsole::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/debug_console.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, _offset: u64, _data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/cloud-hypervisor/devices/src/debug_console.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: DebugConsole::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/debug_console.rs
    functionUses: 0
    functionsReached:
    - write_all
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, _offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/debug_console.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: DebugConsole::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/debug_console.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/debug_console.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 8
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: DebugConsole::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/debug_console.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    linkageType: ''
    returnType: Result
    signature: fn snapshot(&mut self) -> Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: PvPanicSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:70,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:70,1
    - Dst: PvPanicError::RetrievePciConfigurationState
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:72,1
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:77,1
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:92,1
    - Dst: ApiResult::as_ref
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:98,1
    - Dst: map
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:98,1
    - Dst: FdtWriterResult::to_state
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:100,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:98,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:98,1
    - Dst: PvPanicError::CreatePvPanicDevice
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:103,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - id
    - snapshot
    argTypes:
    - String
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 121
      start: 69
    functionDepth: 9
    functionLinenumber: 69
    functionLinenumberEnd: 121
    functionName: PvPanicDevice::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 1
    functionsReached:
    - map
    - transpose
    - FdtWriterResult::to_state
    - PciConfiguration::new
    - ApiResult::as_ref
    - map_err
    - PvPanicError::RetrievePciConfigurationState
    - PvPanicError::CreatePvPanicDevice
    - vm_migration::state_from_id
    - Result::map_err
    - write_config_register
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String, snapshot: Option<&Snapshot>) -> Result<Self,
      PvPanicError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:125,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:127,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - event
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: PvPanicDevice::event_to_string
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 1
    functionsReached:
    - '&str::to_string'
    linkageType: ''
    returnType: String
    signature: 'pub fn event_to_string(&self, event: u8) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: PvPanicDevice::state
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PvPanicDeviceState
    signature: fn state(&self) -> PvPanicDeviceState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_bar_addr
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 9
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: PvPanicDevice::config_bar_addr
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - get_bar_addr
    linkageType: ''
    returnType: u64
    signature: pub fn config_bar_addr(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvPanicDevice::read_bar
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: PvPanicDevice::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - PvPanicDevice::read_bar
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PvPanicDevice::event_to_string
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:150,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 14
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: PvPanicDevice::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - PvPanicDevice::event_to_string
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, _offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: PvPanicDevice::write_config_register
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - write_config_register
    linkageType: ''
    returnType: (Vec
    signature: 'fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_reg
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: PvPanicDevice::read_config_register
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - read_reg
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:182,1
    - Dst: Vec::is_some
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:186,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:187,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:188,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:187,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:189,1
    - Dst: PciBarConfiguration::default
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:191,1
    - Dst: Self::set_index
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:191,1
    - Dst: Self::set_address
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:191,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:193,1
    - Dst: Self::set_size
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:191,1
    - Dst: Self::set_region_type
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:191,1
    - Dst: Self::set_prefetchable
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:191,1
    - Dst: add_pci_bar
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:200,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:200,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:202,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:202,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:205,1
    - Dst: clone_from
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:206,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 4
    argNames:
    - _allocator
    - mmio32_allocator
    - _mmio64_allocator
    - resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 209
      start: 175
    functionDepth: 9
    functionLinenumber: 175
    functionLinenumberEnd: 209
    functionName: PvPanicDevice::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - Self::set_prefetchable
    - Self::set_index
    - map_err
    - Ok
    - Self::set_size
    - Vec::new
    - PciDeviceError::IoAllocationFailed
    - '&mut AddressAllocator::allocate'
    - PciBarConfiguration::default
    - Result::push
    - PciDeviceError::IoRegistrationFailed
    - Self::set_region_type
    - Vec::is_some
    - add_pci_bar
    - clone_from
    - Self::set_address
    - Option::ok_or
    - u64::raw_value
    - Some
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn allocate_bars(&mut self,_allocator: &Arc<Mutex<SystemAllocator>>,mmio32_allocator:
      &mut AddressAllocator,_mmio64_allocator: &mut AddressAllocator,resources: Option<Vec<Resource>>,)
      -> std::result::Result<Vec<PciBarConfiguration>, PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: drain
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:217,1
    - Dst: '&mut AddressAllocator::free'
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:218,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:218,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:218,1
    - Dst: result::Result::size
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:218,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - _allocator
    - mmio32_allocator
    - _mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 9
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: PvPanicDevice::free_bars
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - result::Result::size
    - vm_memory::GuestAddress
    - drain
    - result::Result::addr
    - '&mut AddressAllocator::free'
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn free_bars(&mut self,_allocator: &mut SystemAllocator,mmio32_allocator:
      &mut AddressAllocator,_mmio64_allocator: &mut AddressAllocator,) -> std::result::Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:225,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:226,1
    - Dst: result::Result::set_address
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:227,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - old_base
    - new_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: PvPanicDevice::move_bar
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - result::Result::set_address
    - Ok
    - result::Result::addr
    - iter_mut
    linkageType: ''
    returnType: result::Result
    signature: 'fn move_bar(&mut self, old_base: u64, new_base: u64) -> result::Result<(),
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: PvPanicDevice::read_bar
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn read_bar(&mut self, _base: u64, _offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: PvPanicDevice::as_any_mut
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: PvPanicDevice::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:255,1
    - Dst: PvPanicDevice::state
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:255,1
    - Dst: ApiResult::add_snapshot
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:258,1
    - Dst: id
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:258,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:258,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/pvpanic.rs:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 9
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: PvPanicDevice::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/pvpanic.rs
    functionUses: 0
    functionsReached:
    - ApiResult::add_snapshot
    - Snapshot::new_from_state
    - PvPanicDevice::state
    - snapshot
    - id
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>::create_group
      Src: /src/cloud-hypervisor/devices/src/gic.rs:47,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:47,1
    - Dst: Gic::create_default_config
      Src: /src/cloud-hypervisor/devices/src/gic.rs:54,1
    - Dst: create_vgic
      Src: /src/cloud-hypervisor/devices/src/gic.rs:55,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:55,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/gic.rs:59,1
    - Dst: vm::Result::enable
      Src: /src/cloud-hypervisor/devices/src/gic.rs:61,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/gic.rs:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - vcpu_count
    - interrupt_manager
    - vm
    argTypes:
    - u32
    - Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>
    - Arc<dyn hypervisor::Vm>
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 7
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: Gic::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - create_vgic
    - Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>::create_group
    - Some
    - vm::Result::enable
    - Result::map_err
    - Gic::create_default_config
    - vm::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(vcpu_count: u32,interrupt_manager: Arc<dyn InterruptManager<GroupConfig
      = MsiIrqGroupConfig>>,vm: Arc<dyn hypervisor::Vm>,) -> Result<Gic>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Gic::set_gicr_typers
      Src: /src/cloud-hypervisor/devices/src/gic.rs:71,1
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/gic.rs:72,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:72,1
    - Dst: lock
      Src: /src/cloud-hypervisor/devices/src/gic.rs:72,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:72,1
    - Dst: set_state
      Src: /src/cloud-hypervisor/devices/src/gic.rs:72,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:77,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - state
    - saved_vcpu_states
    argTypes:
    - Option<GicState>
    - '&[CpuState]'
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 12
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: Gic::restore_vgic
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - set_state
    - map_err
    - Gic::set_gicr_typers
    - lock
    - String::unwrap
    - unwrap
    - clone
    linkageType: ''
    returnType: Result
    signature: 'pub fn restore_vgic(&mut self,state: Option<GicState>,saved_vcpu_states:
      &[CpuState],) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enable
      Src: /src/cloud-hypervisor/devices/src/gic.rs:83,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:83,1
    - Dst: update
      Src: /src/cloud-hypervisor/devices/src/gic.rs:95,1
    - Dst: InterruptSourceConfig::LegacyIrq
      Src: /src/cloud-hypervisor/devices/src/gic.rs:98,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:95,1
    - Dst: set_gsi
      Src: /src/cloud-hypervisor/devices/src/gic.rs:105,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:105,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/gic.rs:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 109
    functionName: Gic::enable
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - map_err
    - InterruptSourceConfig::LegacyIrq
    - update
    - enable
    - set_gsi
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn enable(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: raw_value
      Src: /src/cloud-hypervisor/devices/src/gic.rs:114,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/devices/src/gic.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - vcpu_count
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: Gic::create_default_config
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 4
    functionsReached:
    - raw_value
    linkageType: ''
    returnType: VgicConfig
    signature: 'pub fn create_default_config(vcpu_count: u64) -> VgicConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/gic.rs:128,1
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/gic.rs:128,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Gic::get_vgic
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - clone
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_vgic(&mut self) -> Result<Arc<Mutex<dyn Vgic>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/devices/src/gic.rs:132,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:132,1
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/gic.rs:132,1
    - Dst: vm::Result::lock
      Src: /src/cloud-hypervisor/devices/src/gic.rs:133,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:133,1
    - Dst: set_gicr_typers
      Src: /src/cloud-hypervisor/devices/src/gic.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - vcpu_states
    argTypes:
    - '&[CpuState]'
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 7
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: Gic::set_gicr_typers
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - vm::Result::lock
    - unwrap
    - set_gicr_typers
    - clone
    linkageType: ''
    returnType: void
    signature: 'pub fn set_gicr_typers(&mut self, vcpu_states: &[CpuState])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/devices/src/gic.rs:141,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:141,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/gic.rs:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - irq
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Gic::service_irq
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - trigger
    - map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn service_irq(&mut self, irq: usize) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notifier
      Src: /src/cloud-hypervisor/devices/src/gic.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Gic::notifier
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - notifier
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, irq: usize) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/devices/src/gic.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Gic::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/devices/src/gic.rs:159,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:159,1
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/gic.rs:159,1
    - Dst: vm::Result::lock
      Src: /src/cloud-hypervisor/devices/src/gic.rs:160,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:160,1
    - Dst: state
      Src: /src/cloud-hypervisor/devices/src/gic.rs:160,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:160,1
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/gic.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 7
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: Gic::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - as_ref
    - vm::Result::lock
    - state
    - unwrap
    - clone
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/devices/src/gic.rs:168,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:168,1
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/gic.rs:168,1
    - Dst: vm::Result::lock
      Src: /src/cloud-hypervisor/devices/src/gic.rs:169,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/gic.rs:169,1
    - Dst: save_data_tables
      Src: /src/cloud-hypervisor/devices/src/gic.rs:169,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/gic.rs:169,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/devices/src/gic.rs:170,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/gic.rs:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 9
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: Gic::pause
    functionSourceFile: /src/cloud-hypervisor/devices/src/gic.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - vm::Result::lock
    - save_data_tables
    - unwrap
    - MigratableError::Pause
    - clone
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - exit_evt
    - reset_evt
    - vcpus_kill_signalled
    argTypes:
    - EventFd
    - EventFd
    - Arc<AtomicBool>
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: AcpiShutdownDevice::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: AcpiShutdownDevice
    signature: 'pub fn new(exit_evt: EventFd,reset_evt: EventFd,vcpus_kill_signalled:
      Arc<AtomicBool>,) -> AcpiShutdownDevice'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::fill
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: AcpiShutdownDevice::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached:
    - String::fill
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, _offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:54,1
    - Dst: load
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:59,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:62,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:62,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:71,1
    - Dst: load
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:76,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:79,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 83
      start: 51
    functionDepth: 8
    functionLinenumber: 51
    functionLinenumberEnd: 83
    functionName: AcpiShutdownDevice::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached:
    - std::time::Duration::from_millis
    - thread::sleep
    - load
    - write
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, _offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - interrupt
    - ged_irq
    - address
    argTypes:
    - Arc<dyn InterruptSourceGroup>
    - u32
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: AcpiGedDevice::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: AcpiGedDevice
    signature: 'pub fn new(interrupt: Arc<dyn InterruptSourceGroup>,ged_irq: u32,address:
      GuestAddress,) -> AcpiGedDevice'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - notification_type
    argTypes:
    - AcpiNotificationFlags
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: AcpiGedDevice::notify
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached:
    - trigger
    linkageType: ''
    returnType: Result
    signature: 'pub fn notify(&mut self,notification_type: AcpiNotificationFlags,)
      -> Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: AcpiGedDevice::irq
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn irq(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: AcpiGedDevice::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached:
    - bits
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, _offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:132,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:133,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:132,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:194,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:195,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn AmlSink'
    constantsTouched: []
    func_position:
      end: 218
      start: 131
    functionDepth: 7
    functionLinenumber: 131
    functionLinenumberEnd: 218
    functionName: AcpiGedDevice::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Self::to_aml_bytes
    - aml::Device::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: AcpiPmTimerDevice::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 1
    functionsReached:
    - Instant::now
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: AcpiPmTimerDevice::default
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:241,1
    - Dst: std::mem::size_of::<u32>
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:241,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:245,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:246,1
    - Dst: as_nanos
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:247,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:255,1
    - Dst: u32::to_le_bytes
      Src: /src/cloud-hypervisor/devices/src/acpi.rs:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: AcpiPmTimerDevice::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/acpi.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - u32::to_le_bytes
    - as_nanos
    - duration_since
    - String::len
    - String::copy_from_slice
    - std::mem::size_of::<u32>
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, _offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - LocStateFields
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: get_crb_loc_state_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32, u32)
    signature: 'const fn get_crb_loc_state_field(f: LocStateFields) -> (u32, u32,
      u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - LocStsFields
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: get_crb_loc_sts_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32, u32)
    signature: 'const fn get_crb_loc_sts_field(f: LocStsFields) -> (u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - IntfIdFields
    constantsTouched: []
    func_position:
      end: 139
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 139
    functionName: get_crb_intf_id_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32, u32)
    signature: 'const fn get_crb_intf_id_field(f: IntfIdFields) -> (u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - IntfId2Fields
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: get_crb_intf_id2_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32, u32)
    signature: 'const fn get_crb_intf_id2_field(f: IntfId2Fields) -> (u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - CtrlStsFields
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: get_crb_ctrl_sts_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32, u32)
    signature: 'const fn get_crb_ctrl_sts_field(f: CtrlStsFields) -> (u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_crb_loc_state_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:196,1
    - Dst: get_crb_loc_sts_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:197,1
    - Dst: get_crb_intf_id_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:198,1
    - Dst: get_crb_intf_id2_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:199,1
    - Dst: get_crb_ctrl_sts_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - reg
    argTypes:
    - CrbRegister
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: get_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 2
    functionsReached:
    - get_crb_intf_id2_field
    - get_crb_ctrl_sts_field
    - get_crb_loc_sts_field
    - get_crb_intf_id_field
    - get_crb_loc_state_field
    linkageType: ''
    returnType: (u32, u32, u32)
    signature: 'const fn get_field(reg: CrbRegister) -> (u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - regs
    - reg
    - value
    argTypes:
    - '&mut [u32; TPM_CRB_R_MAX]'
    - CrbRegister
    - u32
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: set_reg_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 4
    functionsReached:
    - get_field
    linkageType: ''
    returnType: void
    signature: 'fn set_reg_field(regs: &mut [u32; TPM_CRB_R_MAX], reg: CrbRegister,
      value: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - regs
    - reg
    argTypes:
    - '&[u32; TPM_CRB_R_MAX]'
    - CrbRegister
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: get_reg_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached:
    - get_field
    linkageType: ''
    returnType: u32
    signature: 'const fn get_reg_field(regs: &[u32; TPM_CRB_R_MAX], reg: CrbRegister)
      -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: locality_from_addr
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn locality_from_addr(addr: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Emulator::new
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:232,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:232,1
    - Dst: Error::Init
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:233,1
    - Dst: reset
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:241,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 10
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: Tpm::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached:
    - reset
    - Emulator::new
    - Result::map_err
    - Error::Init
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(path: impl AsRef<Path>) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:246,1
    - Dst: CrbRegister::LocState
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:248,1
    - Dst: get_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:253,1
    - Dst: CrbRegister::LocState
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: Tpm::get_active_locality
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached:
    - get_reg_field
    - CrbRegister::LocState
    linkageType: ''
    returnType: u32
    signature: fn get_active_locality(&mut self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:262,1
    - Dst: CrbRegister::CtrlSts
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - success
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: Tpm::request_completed
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 1
    functionsReached:
    - set_reg_field
    - CrbRegister::CtrlSts
    linkageType: ''
    returnType: void
    signature: 'fn request_completed(&mut self, success: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer_size
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:271,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:273,1
    - Dst: CrbRegister::LocState
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:275,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:278,1
    - Dst: CrbRegister::CtrlSts
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:280,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:283,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:285,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:288,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:290,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:293,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:295,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:298,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:300,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:303,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:305,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:308,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:310,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:313,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:315,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:318,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:320,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:323,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:325,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:328,1
    - Dst: CrbRegister::IntfId2
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:330,1
    - Dst: cmp::min
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:339,1
    - Dst: startup_tpm
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:341,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:342,1
    - Dst: Error::Init
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:342,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 270
    functionDepth: 11
    functionLinenumber: 270
    functionLinenumberEnd: 347
    functionName: Tpm::reset
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 0
    functionsReached:
    - CrbRegister::CtrlSts
    - CrbRegister::LocState
    - CrbRegister::IntfId
    - Error::Init
    - Err
    - Ok
    - startup_tpm
    - get_buffer_size
    - CrbRegister::IntfId2
    - set_reg_field
    - cmp::min
    linkageType: ''
    returnType: Result
    signature: fn reset(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:353,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:356,1
    - Dst: clone_from_slice
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:361,1
    - Dst: get_established_flag
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:366,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:370,1
    - Dst: String::clone_from_slice
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:371,1
    - Dst: Result::to_ne_bytes
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:371,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 61
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 386
      start: 351
    functionDepth: 9
    functionLinenumber: 351
    functionLinenumberEnd: 386
    functionName: Tpm::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 0
    functionsReached:
    - clone_from_slice
    - as_ref
    - String::clone_from_slice
    - Result::to_ne_bytes
    - len
    - get_established_flag
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: locality_from_addr
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:399,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:400,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:403,1
    - Dst: fill
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:409,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:411,1
    - Dst: clone_from_slice
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:412,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:413,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:427,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:428,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:448,1
    - Dst: CrbRegister::CtrlSts
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:450,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:455,1
    - Dst: CrbRegister::CtrlSts
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:457,1
    - Dst: cancel_cmd
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:469,1
    - Dst: Tpm::get_active_locality
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:477,1
    - Dst: cmp::min
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:483,1
    - Dst: deliver_request
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:486,1
    - Dst: is_ok
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:486,1
    - Dst: Tpm::request_completed
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:488,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:496,1
    - Dst: CrbRegister::LocState
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:498,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:501,1
    - Dst: CrbRegister::LocSts
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:503,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:508,1
    - Dst: CrbRegister::LocSts
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:510,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:513,1
    - Dst: CrbRegister::LocSts
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:515,1
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:518,1
    - Dst: CrbRegister::LocState
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:520,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 186
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 539
      start: 388
    functionDepth: 9
    functionLinenumber: 388
    functionLinenumberEnd: 539
    functionName: Tpm::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 0
    functionsReached:
    - CrbRegister::CtrlSts
    - cancel_cmd
    - is_ok
    - Tpm::get_active_locality
    - clone_from_slice
    - Tpm::request_completed
    - locality_from_addr
    - CrbRegister::LocState
    - fill
    - deliver_request
    - copy_from_slice
    - u32::from_le_bytes
    - len
    - set_reg_field
    - String::len
    - CrbRegister::LocSts
    - cmp::min
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_reg_field
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:549,1
    - Dst: CrbRegister::IntfId
      Src: /src/cloud-hypervisor/devices/src/tpm.rs:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: unit_tests::test_set_get_reg_field
    functionSourceFile: /src/cloud-hypervisor/devices/src/tpm.rs
    functionUses: 0
    functionsReached:
    - set_reg_field
    - CrbRegister::IntfId
    linkageType: ''
    returnType: void
    signature: fn test_set_get_reg_field()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - reset_evt
    - vcpus_kill_signalled
    argTypes:
    - EventFd
    - Arc<AtomicBool>
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: I8042Device::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/i8042.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: I8042Device
    signature: 'pub fn new(reset_evt: EventFd, vcpus_kill_signalled: Arc<AtomicBool>)
      -> I8042Device'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/i8042.rs:36,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/i8042.rs:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: I8042Device::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/i8042.rs
    functionUses: 0
    functionsReached:
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/i8042.rs:46,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/i8042.rs:48,1
    - Dst: load
      Src: /src/cloud-hypervisor/devices/src/legacy/i8042.rs:53,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/devices/src/legacy/i8042.rs:56,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/devices/src/legacy/i8042.rs:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: I8042Device::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/i8042.rs
    functionUses: 0
    functionsReached:
    - load
    - std::time::Duration::from_millis
    - thread::sleep
    - String::len
    - write
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seek::seek
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:131,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:131,1
    - Dst: Read::read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:132,1
    - Dst: u64::get
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:134,1
    - Dst: FdtWriterResult::read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:135,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:136,1
    - Dst: u64::get
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:138,1
    - Dst: FdtWriterResult::read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:139,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:140,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:142,1
    - Dst: get
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:142,1
    - Dst: FdtWriterResult::read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:143,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 9
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: FwCfgContentAccess::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - Seek::seek
    - Err
    - FdtWriterResult::read
    - SeekFrom::Start
    - get
    - Read::read
    - u64::get
    linkageType: ''
    returnType: Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FwCfgContent::Slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: FwCfgContent::default
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - FwCfgContent::Slice
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::result::Result::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:159,1
    - Dst: Result::metadata
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:160,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:160,1
    - Dst: FdtWriterResult::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:161,1
    - Dst: size_of_val
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:162,1
    - Dst: u32::try_from
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:164,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:164,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: FwCfgContent::size
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::len
    - u32::try_from
    - size_of_val
    - std::result::Result::len
    - into
    - Result::map_err
    - len
    - Result::metadata
    linkageType: ''
    returnType: Result
    signature: fn size(&self) -> Result<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: FwCfgContent::access
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FwCfgContentAccess
    signature: 'fn access(&self, offset: u32) -> FwCfgContentAccess<''_>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:232,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:232,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:233,1
    - Dst: Result::as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: create_file_name
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 4
    functionsReached:
    - std::cmp::min
    - copy_from_slice
    - Result::len
    - Result::as_bytes
    linkageType: ''
    returnType: '[u8; FILE_NAME_SIZE]'
    signature: 'pub fn create_file_name(name: &str) -> [u8; FILE_NAME_SIZE]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:290,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - name
    - offset
    - size
    argTypes:
    - '&str'
    - usize
    - u8
    constantsTouched: []
    func_position:
      end: 296
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 296
    functionName: create_intra_pointer
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - create_file_name
    linkageType: ''
    returnType: AddPointer
    signature: 'fn create_intra_pointer(name: &str, offset: usize, size: u8) -> AddPointer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - offset
    - len
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 307
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 307
    functionName: create_acpi_table_checksum
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - create_file_name
    linkageType: ''
    returnType: AddChecksum
    signature: 'fn create_acpi_table_checksum(offset: usize, len: usize) -> AddChecksum'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: AcpiTable::pointers
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[usize]'
    signature: fn pointers(&self) -> &[usize]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: AcpiTable::checksums
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[(usize, usize)]'
    signature: fn checksums(&self) -> &[(usize, usize)]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: AcpiTable::take
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (Rsdp, Vec
    signature: fn take(self) -> (Rsdp, Vec<u8>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:347,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:350,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:355,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:355,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:359,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:364,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:364,1
    - Dst: Result::pointers
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:366,1
    - Dst: '&[usize]::iter'
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:366,1
    - Dst: create_intra_pointer
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:367,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:368,1
    - Dst: AddPointer::as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:368,1
    - Dst: Result::checksums
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:370,1
    - Dst: '&[(usize, usize)]::iter'
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:370,1
    - Dst: create_acpi_table_checksum
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:371,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:372,1
    - Dst: u8::as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:372,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:376,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:377,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:382,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:382,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:385,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:393,1
    - Dst: size_of::<Rsdp>
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:396,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:399,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:399,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:400,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:400,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:403,1
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:404,1
    - Dst: Result::take
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:406,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:408,1
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:409,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:409,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:409,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:412,1
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 94
    argCount: 1
    argNames:
    - acpi_table
    argTypes:
    - AcpiTable
    constantsTouched: []
    func_position:
      end: 416
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 416
    functionName: create_acpi_loader
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - create_intra_pointer
    - AddPointer::as_bytes
    - u8::as_bytes
    - Result::pointers
    - Vec::new
    - to_owned
    - '&[(usize, usize)]::iter'
    - Result::checksums
    - '&[usize]::iter'
    - create_file_name
    - Result::take
    - create_acpi_table_checksum
    - as_bytes
    - FwCfgContent::Bytes
    - size_of::<Rsdp>
    - Result::extend
    linkageType: ''
    returnType: '[FwCfgItem; 3]'
    signature: 'fn create_acpi_loader(acpi_table: AcpiTable) -> [FwCfgItem; 3]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FwCfgContent::Slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:422,1
    - Dst: FwCfgContent::Slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:423,1
    - Dst: Vec::from
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:424,1
    - Dst: as_mut_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:424,1
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - memory
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>
    constantsTouched: []
    func_position:
      end: 435
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 435
    functionName: FwCfg::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 5
    functionsReached:
    - Vec::from
    - FwCfgContent::Bytes
    - as_mut_bytes
    - FwCfgContent::Slice
    linkageType: ''
    returnType: FwCfg
    signature: 'pub fn new(memory: GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>)
      -> FwCfg'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FwCfg::add_e820
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:446,1
    - Dst: FwCfg::add_kernel_data
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:449,1
    - Dst: FwCfg::add_kernel_cmdline
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:452,1
    - Dst: FwCfg::add_initramfs_data
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:455,1
    - Dst: FwCfg::add_item
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:459,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - mem_size
    - kernel
    - initramfs
    - cmdline
    - fw_cfg_item_list
    argTypes:
    - Option<usize>
    - Option<File>
    - Option<File>
    - Option<std::ffi::CString>
    - Option<Vec<FwCfgItem>>
    constantsTouched: []
    func_position:
      end: 463
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 463
    functionName: FwCfg::populate_fw_cfg
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - FwCfg::add_e820
    - FwCfg::add_initramfs_data
    - FwCfg::add_kernel_cmdline
    - FwCfg::add_kernel_data
    - FwCfg::add_item
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn populate_fw_cfg(&mut self,mem_size: Option<usize>,kernel: Option<File>,initramfs:
      Option<File>,cmdline: Option<std::ffi::CString>,fw_cfg_item_list: Option<Vec<FwCfgItem>>,)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arch::aarch64::arch_memory_regions
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:482,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:484,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:490,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:495,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:502,1
    - Dst: '&[u8]::extend_from_slice'
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:513,1
    - Dst: super::Result::as_mut_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:513,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:516,1
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:517,1
    - Dst: FwCfg::add_item
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 1
    argNames:
    - mem_size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 520
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 520
    functionName: FwCfg::add_e820
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - FwCfg::add_item
    - FwCfgContent::Bytes
    - '&[u8]::extend_from_slice'
    - arch::aarch64::arch_memory_regions
    - Vec::push
    - Vec::iter
    - super::Result::as_mut_bytes
    - '&str::to_owned'
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_e820(&mut self, mem_size: usize) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: FwCfg::file_dir_mut
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: '&mut Vec'
    signature: fn file_dir_mut(&mut self) -> &mut Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:531,1
    - Dst: to_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:531,1
    - Dst: FwCfg::file_dir_mut
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:533,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:533,1
    - Dst: Result::as_mut_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 534
    functionName: FwCfg::update_count
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - FwCfg::file_dir_mut
    - to_be
    - copy_from_slice
    - len
    - Result::as_mut_bytes
    linkageType: ''
    returnType: void
    signature: fn update_count(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:537,1
    - Dst: create_file_name
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:538,1
    - Dst: size
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:539,1
    - Dst: usize::to_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:541,1
    - Dst: to_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:542,1
    - Dst: FwCfg::file_dir_mut
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:546,1
    - Dst: '&mut Vec::extend_from_slice'
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:546,1
    - Dst: as_mut_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:547,1
    - Dst: push
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:548,1
    - Dst: FwCfg::update_count
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:549,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - item
    argTypes:
    - FwCfgItem
    constantsTouched: []
    func_position:
      end: 551
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 551
    functionName: FwCfg::add_item
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 3
    functionsReached:
    - size
    - '&mut Vec::extend_from_slice'
    - as_mut_bytes
    - FwCfg::file_dir_mut
    - to_be
    - push
    - usize::to_be
    - create_file_name
    - len
    - FwCfg::update_count
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_item(&mut self, item: FwCfgItem) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::size
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:560,1
    - Dst: saturating_sub
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:560,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:561,1
    - Dst: Result::access
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:562,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:564,1
    - Dst: Self::as_mut_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:564,1
    - Dst: memory
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:565,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:565,1
    - Dst: Self::as_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:568,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:568,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:572,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:572,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 4
    argNames:
    - content
    - offset
    - len
    - address
    argTypes:
    - '&FwCfgContent'
    - u32
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 576
      start: 553
    functionDepth: 8
    functionLinenumber: 553
    functionLinenumberEnd: 576
    functionName: FwCfg::dma_read_content
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - Result::access
    - vm_memory::GuestAddress
    - std::cmp::min
    - Self::as_mut_bytes
    - Result::read_exact
    - Self::as_bytes
    - Err
    - into
    - Ok
    - Result::size
    - saturating_sub
    - memory
    - write
    linkageType: ''
    returnType: Result
    signature: 'fn dma_read_content(&self,content: &FwCfgContent,offset: u32,len:
      u32,address: u64,) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:579,1
    - Dst: FwCfg::dma_read_content
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:580,1
    - Dst: get
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:581,1
    - Dst: FwCfg::dma_read_content
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:582,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:585,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:585,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 3
    argNames:
    - selector
    - len
    - address
    argTypes:
    - u16
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 589
      start: 578
    functionDepth: 8
    functionLinenumber: 578
    functionLinenumberEnd: 589
    functionName: FwCfg::dma_read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - into
    - Err
    - FwCfg::dma_read_content
    - get
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn dma_read(&mut self, selector: u16, len: u32, address: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FwCfgDmaAccess::new_zeroed
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:593,1
    - Dst: memory
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:594,1
    - Dst: read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:594,1
    - Dst: Result::as_mut_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:597,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:597,1
    - Dst: AccessControl
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:605,1
    - Dst: u32::from_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:605,1
    - Dst: select
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:606,1
    - Dst: select
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:607,1
    - Dst: u32::from_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:609,1
    - Dst: u64::from_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:610,1
    - Dst: read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:611,1
    - Dst: FwCfg::dma_read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:612,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:613,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:614,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:614,1
    - Dst: skip
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:615,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:617,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:619,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:619,1
    - Dst: AccessControl
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:621,1
    - Dst: set_error
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:624,1
    - Dst: memory
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:626,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:626,1
    - Dst: to_be_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:627,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:628,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 591
    functionDepth: 8
    functionLinenumber: 591
    functionLinenumberEnd: 632
    functionName: FwCfg::do_dma
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - FwCfg::dma_read
    - vm_memory::GuestAddress
    - AccessControl
    - skip
    - set_error
    - u64::from_be
    - Err
    - into
    - u32::from_be
    - FwCfgDmaAccess::new_zeroed
    - Ok
    - to_be_bytes
    - read
    - Result::as_mut_bytes
    - select
    - memory
    - write
    linkageType: ''
    returnType: void
    signature: fn do_dma(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::read_exact_at
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:636,1
    - Dst: boot_params::from_mut_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:637,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:637,1
    - Dst: FwCfgContent::U32
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:652,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:652,1
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:653,1
    - Dst: FwCfgContent::U32
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:655,1
    - Dst: Vec::metadata
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:655,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:655,1
    - Dst: FwCfgContent::File
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:657,1
    - Dst: Vec::try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:657,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 71
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&File'
    constantsTouched: []
    func_position:
      end: 659
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 659
    functionName: FwCfg::add_kernel_data
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - Vec::try_clone
    - Vec::read_exact_at
    - boot_params::from_mut_slice
    - unwrap
    - len
    - Vec::metadata
    - FwCfgContent::File
    - FwCfgContent::Bytes
    - FwCfgContent::U32
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_kernel_data(&mut self, file: &File) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::into_bytes_with_nul
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:662,1
    - Dst: FwCfgContent::U32
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:663,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:663,1
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::ffi::CString
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: FwCfg::add_kernel_cmdline
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - '&[u8]::len'
    - FwCfgContent::Bytes
    - FdtWriterResult::into_bytes_with_nul
    - FwCfgContent::U32
    linkageType: ''
    returnType: void
    signature: 'pub fn add_kernel_cmdline(&mut self, s: std::ffi::CString)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_acpi_loader
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:680,1
    - Dst: FwCfg::add_item
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:681,1
    - Dst: FwCfg::add_item
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:682,1
    - Dst: FwCfg::add_item
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - rsdp
    - tables
    - table_checksums
    - table_pointers
    argTypes:
    - Rsdp
    - Vec<u8>
    - Vec<(usize, usize)>
    - Vec<usize>
    constantsTouched: []
    func_position:
      end: 684
      start: 667
    functionDepth: 6
    functionLinenumber: 667
    functionLinenumberEnd: 684
    functionName: FwCfg::add_acpi
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - FwCfg::add_item
    - create_acpi_loader
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_acpi(&mut self,rsdp: Rsdp,tables: Vec<u8>,table_checksums:
      Vec<(usize, usize)>,table_pointers: Vec<usize>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::metadata
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:687,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:687,1
    - Dst: FwCfgContent::U32
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:688,1
    - Dst: FwCfgContent::File
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:689,1
    - Dst: Vec::try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:689,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&File'
    constantsTouched: []
    func_position:
      end: 691
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 691
    functionName: FwCfg::add_initramfs_data
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - Vec::try_clone
    - Vec::metadata
    - len
    - FwCfgContent::File
    - FwCfgContent::U32
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_initramfs_data(&mut self, file: &File) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:698,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:699,1
    - Dst: FdtWriterResult::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:703,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:704,1
    - Dst: Result::read_exact_at
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:708,1
    - Dst: ok
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:708,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:711,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:712,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:715,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 4
    argNames:
    - content
    - offset
    - data
    - size
    argTypes:
    - '&FwCfgContent'
    - u32
    - '&mut [u8]'
    - u32
    constantsTouched: []
    func_position:
      end: 716
      start: 693
    functionDepth: 6
    functionLinenumber: 693
    functionLinenumberEnd: 716
    functionName: FwCfg::read_content
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - String::copy_from_slice
    - FdtWriterResult::len
    - to_le_bytes
    - ok
    - u64::len
    - Result::read_exact_at
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read_content(content: &FwCfgContent, offset: u32, data: &mut [u8],
      size: u32) -> Option<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:719,1
    - Dst: Self::read_content
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:720,1
    - Dst: get
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:721,1
    - Dst: Self::read_content
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - '&mut [u8]'
    - u32
    constantsTouched: []
    func_position:
      end: 733
      start: 718
    functionDepth: 8
    functionLinenumber: 718
    functionLinenumberEnd: 733
    functionName: FwCfg::read_data
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 1
    functionsReached:
    - Self::read_content
    - get
    linkageType: ''
    returnType: u8
    signature: 'fn read_data(&mut self, data: &mut [u8], size: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:739,1
    - Dst: FwCfg::read_data
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:744,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:748,1
    - Dst: u32::to_be_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:748,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:753,1
    - Dst: u32::to_be_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 761
      start: 737
    functionDepth: 9
    functionLinenumber: 737
    functionLinenumberEnd: 761
    functionName: FwCfg::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - String::len
    - String::copy_from_slice
    - FwCfg::read_data
    - u32::to_be_bytes
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::size
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:765,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:769,1
    - Dst: u16::from_le_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:771,1
    - Dst: u16::from_be_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:773,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:780,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:781,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:787,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:788,1
    - Dst: FwCfg::do_dma
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 798
      start: 763
    functionDepth: 9
    functionLinenumber: 763
    functionLinenumberEnd: 798
    functionName: FwCfg::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - u32::from_be_bytes
    - copy_from_slice
    - FwCfg::do_dma
    - String::size
    - u16::from_le_bytes
    - u16::from_be_bytes
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:825,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:826,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:826,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:826,1
    - Dst: FwCfg::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:829,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:833,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:834,1
    - Dst: next
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:836,1
    - Dst: read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 843
      start: 824
    functionDepth: 7
    functionLinenumber: 824
    functionLinenumberEnd: 843
    functionName: unit_tests::test_signature
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - GuestMemoryMmap::from_ranges
    - next
    - FwCfg::new
    - GuestMemoryAtomic::new
    - unwrap
    - into_iter
    - read
    - write
    linkageType: ''
    returnType: void
    signature: fn test_signature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:846,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:847,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:847,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:847,1
    - Dst: FwCfg::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:850,1
    - Dst: add_kernel_cmdline
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:854,1
    - Dst: CString::from_vec_with_nul
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:854,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:854,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:854,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:858,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:859,1
    - Dst: next
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:861,1
    - Dst: read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 845
    functionDepth: 7
    functionLinenumber: 845
    functionLinenumberEnd: 868
    functionName: unit_tests::test_kernel_cmdline
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - GuestMemoryMmap::from_ranges
    - next
    - FwCfg::new
    - GuestMemoryAtomic::new
    - add_kernel_cmdline
    - unwrap
    - into_iter
    - read
    - CString::from_vec_with_nul
    - to_vec
    - write
    linkageType: ''
    returnType: void
    signature: fn test_kernel_cmdline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:872,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:873,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:873,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:873,1
    - Dst: FwCfg::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:876,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:878,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:878,1
    - Dst: as_file
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:879,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:882,1
    - Dst: add_initramfs_data
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:884,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:888,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:889,1
    - Dst: next
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:891,1
    - Dst: read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 898
      start: 871
    functionDepth: 7
    functionLinenumber: 871
    functionLinenumberEnd: 898
    functionName: unit_tests::test_initram_fs
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - GuestMemoryMmap::from_ranges
    - TempFile::new
    - next
    - FwCfg::new
    - add_initramfs_data
    - GuestMemoryAtomic::new
    - unwrap
    - into_iter
    - read
    - Result::unwrap
    - write
    - as_file
    linkageType: ''
    returnType: void
    signature: fn test_initram_fs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FwCfgContent::Bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:906,1
    - Dst: bool::to_vec
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:906,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:909,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:911,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:911,1
    - Dst: AccessControl
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:915,1
    - Dst: set_read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:917,1
    - Dst: bool::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:919,1
    - Dst: to_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:919,1
    - Dst: to_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:922,1
    - Dst: to_be
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:924,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:929,1
    - Dst: to_be_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:930,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:931,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:931,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:932,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:932,1
    - Dst: GuestMemoryMmap::write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:935,1
    - Dst: Result::as_mut_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:935,1
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:936,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:936,1
    - Dst: FwCfg::new
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:937,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:939,1
    - Dst: add_item
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:942,1
    - Dst: GuestMemoryMmap::read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:946,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:946,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:949,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:950,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:951,1
    - Dst: GuestMemoryMmap::read
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:952,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 954
      start: 901
    functionDepth: 7
    functionLinenumber: 901
    functionLinenumberEnd: 954
    functionName: unit_tests::test_dma
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::from_ranges
    - FwCfg::new
    - '&str::to_string'
    - GuestMemoryAtomic::new
    - Result::as_mut_bytes
    - to_be_bytes
    - bool::len
    - try_into
    - GuestMemoryMmap::clone
    - GuestMemoryMmap::read
    - vm_memory::GuestAddress
    - GuestMemoryMmap::write
    - to_be
    - unwrap
    - add_item
    - FwCfgContent::Bytes
    - bool::to_vec
    - AccessControl
    - set_read
    - write
    linkageType: ''
    returnType: void
    signature: fn test_dma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:144,1
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 5
    argNames:
    - id
    - irq
    - out
    - timestamp
    - state
    argTypes:
    - String
    - Arc<dyn InterruptSourceGroup>
    - Option<Box<dyn io::Write + Send>>
    - Instant
    - Option<Pl011State>
    constantsTouched: []
    func_position:
      end: 193
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 193
    functionName: Pl011::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 2
    functionsReached:
    - VecDeque::new
    - into
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: String,irq: Arc<dyn InterruptSourceGroup>,out: Option<Box<dyn
      io::Write + Send>>,timestamp: Instant,state: Option<Pl011State>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - Option<Box<dyn io::Write + Send>>
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Pl011::set_out
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_out(&mut self, out: Option<Box<dyn io::Write + Send>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:209,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 217
    functionName: Pl011::state
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 1
    functionsReached:
    - clone
    - into
    linkageType: ''
    returnType: Pl011State
    signature: fn state(&self) -> Pl011State
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:221,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:222,1
    - Dst: Pl011::trigger_interrupt
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:231,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: Pl011::queue_input_bytes
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - len
    - Pl011::trigger_interrupt
    - extend
    - Ok
    linkageType: ''
    returnType: vmm_sys_util::errno::Result
    signature: 'pub fn queue_input_bytes(&mut self, c: &[u8]) -> vmm_sys_util::errno::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:238,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:239,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: Pl011::flush_output
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - Ok
    - Result::flush
    linkageType: ''
    returnType: result::Result
    signature: pub fn flush_output(&mut self) -> result::Result<(), io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: Pl011::pl011_get_baudrate
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn pl011_get_baudrate(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: Pl011::pl011_trace_baudrate_change
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn pl011_trace_baudrate_change(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: Pl011::pl011_set_read_trigger
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn pl011_set_read_trigger(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:271,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:272,1
    - Dst: Result::to_le_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:272,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:272,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:274,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:274,1
    - Dst: Pl011::pl011_trace_baudrate_change
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:286,1
    - Dst: Pl011::pl011_trace_baudrate_change
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:290,1
    - Dst: Pl011::pl011_set_read_trigger
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:298,1
    - Dst: Pl011::pl011_set_read_trigger
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:305,1
    - Dst: Pl011::trigger_interrupt
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:309,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:309,1
    - Dst: Pl011::trigger_interrupt
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:313,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:313,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:318,1
    - Dst: Pl011::handle_debug
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:323,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:327,1
    - Dst: Error::BadWriteOffset
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:327,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 113
    argCount: 2
    argNames:
    - offset
    - val
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 331
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 331
    functionName: Pl011::handle_write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 1
    functionsReached:
    - Pl011::pl011_trace_baudrate_change
    - Result::write_all
    - map_err
    - Pl011::pl011_set_read_trigger
    - as_mut
    - IoResult::map_err
    - Pl011::handle_debug
    - Pl011::trigger_interrupt
    - Result::to_le_bytes
    - Err
    - Error::BadWriteOffset
    - Ok
    - result::Result::map_err
    - Result::flush
    linkageType: ''
    returnType: Result
    signature: 'fn handle_write(&mut self, offset: u64, val: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elapsed
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 363
    functionName: Pl011::handle_debug
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 1
    functionsReached:
    - elapsed
    linkageType: ''
    returnType: void
    signature: fn handle_debug(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: Pl011::trigger_interrupt
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 2
    functionsReached:
    - trigger
    linkageType: ''
    returnType: result::Result
    signature: fn trigger_interrupt(&mut self) -> result::Result<(), io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:373,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:375,1
    - Dst: pop_front
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:380,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:380,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:380,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:413,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 80
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 422
      start: 371
    functionDepth: 7
    functionLinenumber: 371
    functionLinenumberEnd: 422
    functionName: Pl011::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_default
    - write_le_u32
    - pop_front
    - u32::from
    - into
    - contains
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:425,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:426,1
    - Dst: Pl011::handle_write
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Pl011::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - Pl011::handle_write
    - String::len
    - read_le_u32
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: Pl011::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:447,1
    - Dst: Pl011::state
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 8
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: Pl011::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - Pl011::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:521,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:521,1
    - Dst: SharedBuffer::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:522,1
    - Dst: Pl011::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:523,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:524,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:525,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:525,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:525,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:525,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:526,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:526,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:526,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:527,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:531,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:532,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:533,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 520
    functionDepth: 5
    functionLinenumber: 520
    functionLinenumberEnd: 536
    functionName: unit_tests::pl011_output
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - Instant::now
    - Some
    - EventFd::new
    - Arc::new
    - try_clone
    - Self::write
    - Box::new
    - unwrap
    - Pl011::new
    - Result::clone
    - Result::unwrap
    - String::from
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn pl011_output()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:540,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:540,1
    - Dst: SharedBuffer::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:541,1
    - Dst: Pl011::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:542,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:543,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:544,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:544,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:544,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:544,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:545,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:545,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:546,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:552,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:552,1
    - Dst: Self::queue_input_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:553,1
    - Dst: vmm_sys_util::errno::Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:553,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:558,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:560,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 539
    functionDepth: 5
    functionLinenumber: 539
    functionLinenumberEnd: 564
    functionName: unit_tests::pl011_input
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - Instant::now
    - Self::queue_input_bytes
    - Some
    - EventFd::new
    - Arc::new
    - try_clone
    - Self::read
    - Box::new
    - unwrap
    - Pl011::new
    - vmm_sys_util::errno::Result::unwrap
    - Result::unwrap
    - write
    - String::from
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn pl011_input()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:115,1
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - id
    - interrupt
    - out
    - state
    argTypes:
    - String
    - Arc<dyn InterruptSourceGroup>
    - Option<Box<dyn io::Write + Send>>
    - Option<SerialState>
    constantsTouched: []
    func_position:
      end: 145
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 145
    functionName: Serial::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached:
    - VecDeque::new
    - into
    linkageType: ''
    returnType: Serial
    signature: 'pub fn new(id: String,interrupt: Arc<dyn InterruptSourceGroup>,out:
      Option<Box<dyn io::Write + Send>>,state: Option<SerialState>,) -> Serial'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:154,1
    - Dst: Some
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - id
    - interrupt
    - out
    - state
    argTypes:
    - String
    - Arc<dyn InterruptSourceGroup>
    - Box<dyn io::Write + Send>
    - Option<SerialState>
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: Serial::new_out
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 2
    functionsReached:
    - Some
    - Self::new
    linkageType: ''
    returnType: Serial
    signature: 'pub fn new_out(id: String,interrupt: Arc<dyn InterruptSourceGroup>,out:
      Box<dyn io::Write + Send>,state: Option<SerialState>,) -> Serial'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - id
    - interrupt
    - state
    argTypes:
    - String
    - Arc<dyn InterruptSourceGroup>
    - Option<SerialState>
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: Serial::new_sink
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 4
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Serial
    signature: 'pub fn new_sink(id: String,interrupt: Arc<dyn InterruptSourceGroup>,state:
      Option<SerialState>,) -> Serial'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - Option<Box<dyn io::Write + Send>>
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Serial::set_out
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_out(&mut self, out: Option<Box<dyn io::Write + Send>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Serial::is_loop
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:173,1
    - Dst: extend
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:174,1
    - Dst: Serial::recv_data
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:175,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: Serial::queue_input_bytes
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - Serial::recv_data
    - Serial::is_loop
    - extend
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn queue_input_bytes(&mut self, c: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:181,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:182,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: Serial::flush_output
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - Ok
    - Result::flush
    linkageType: ''
    returnType: result::Result
    signature: pub fn flush_output(&mut self) -> result::Result<(), io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Serial::is_dlab_set
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_dlab_set(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Serial::is_recv_intr_enabled
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_recv_intr_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Serial::is_thr_intr_enabled
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_thr_intr_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Serial::is_loop
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_loop(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bit
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: Serial::add_intr_bit
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn add_intr_bit(&mut self, bit: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bit
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: Serial::del_intr_bit
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn del_intr_bit(&mut self, bit: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Serial::is_thr_intr_enabled
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:216,1
    - Dst: Serial::add_intr_bit
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:217,1
    - Dst: Serial::trigger_interrupt
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:218,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: Serial::thr_empty
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached:
    - Serial::is_thr_intr_enabled
    - Serial::add_intr_bit
    - Serial::trigger_interrupt
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn thr_empty(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Serial::is_recv_intr_enabled
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:224,1
    - Dst: Serial::add_intr_bit
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:225,1
    - Dst: Serial::trigger_interrupt
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:226,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: Serial::recv_data
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 2
    functionsReached:
    - Serial::add_intr_bit
    - Serial::is_recv_intr_enabled
    - Serial::trigger_interrupt
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn recv_data(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: Serial::trigger_interrupt
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 2
    functionsReached:
    - trigger
    linkageType: ''
    returnType: result::Result
    signature: fn trigger_interrupt(&mut self) -> result::Result<(), io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: Serial::iir_reset
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn iir_reset(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Serial::is_dlab_set
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:242,1
    - Dst: u16::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:243,1
    - Dst: Serial::is_dlab_set
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:245,1
    - Dst: u16::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:246,1
    - Dst: Serial::is_loop
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:249,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:250,1
    - Dst: push_back
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:251,1
    - Dst: Serial::recv_data
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:252,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:255,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:256,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:257,1
    - Dst: Serial::thr_empty
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:259,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 73
    argCount: 2
    argNames:
    - offset
    - v
    argTypes:
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 269
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 269
    functionName: Serial::handle_write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached:
    - Serial::is_loop
    - Result::write_all
    - Serial::thr_empty
    - as_mut
    - Serial::is_dlab_set
    - push_back
    - Ok
    - len
    - Serial::recv_data
    - u16::from
    - Result::flush
    linkageType: ''
    returnType: Result
    signature: 'fn handle_write(&mut self, offset: u8, v: u8) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:281,1
    - Dst: into
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 7
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: Serial::state
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached:
    - clone
    - into
    linkageType: ''
    returnType: SerialState
    signature: fn state(&self) -> SerialState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:288,1
    - Dst: Serial::is_dlab_set
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:293,1
    - Dst: Serial::is_dlab_set
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:294,1
    - Dst: Serial::del_intr_bit
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:296,1
    - Dst: len
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:297,1
    - Dst: pop_front
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:300,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:300,1
    - Dst: Serial::iir_reset
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 315
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 315
    functionName: Serial::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_default
    - Serial::del_intr_bit
    - pop_front
    - Serial::is_dlab_set
    - len
    - Serial::iir_reset
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:318,1
    - Dst: Serial::handle_write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:322,1
    - Dst: Result::ok
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 325
    functionName: Serial::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 1
    functionsReached:
    - String::len
    - Serial::handle_write
    - Result::ok
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: Serial::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:334,1
    - Dst: Serial::state
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 8
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: Serial::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - Serial::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:408,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:408,1
    - Dst: SharedBuffer::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:409,1
    - Dst: Serial::new_out
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:410,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:411,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:412,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:412,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:412,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:412,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:413,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:413,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:417,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:418,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:419,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 407
    functionDepth: 8
    functionLinenumber: 407
    functionLinenumberEnd: 422
    functionName: unit_tests::serial_output
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - Serial::new_out
    - EventFd::new
    - Arc::new
    - try_clone
    - Vec::write
    - Box::new
    - unwrap
    - Result::clone
    - Result::unwrap
    - String::from
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn serial_output()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:426,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:426,1
    - Dst: SharedBuffer::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:427,1
    - Dst: Serial::new_out
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:428,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:429,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:430,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:430,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:430,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:430,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:431,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:437,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:437,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:438,1
    - Dst: Vec::queue_input_bytes
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:439,1
    - Dst: vmm_sys_util::errno::Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:439,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:445,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:449,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:451,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:453,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:455,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 425
    functionDepth: 7
    functionLinenumber: 425
    functionLinenumberEnd: 461
    functionName: unit_tests::serial_input
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - Serial::new_out
    - EventFd::new
    - Arc::new
    - try_clone
    - Vec::write
    - Box::new
    - unwrap
    - Vec::queue_input_bytes
    - vmm_sys_util::errno::Result::unwrap
    - Result::unwrap
    - write
    - String::from
    - Vec::read
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn serial_input()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:465,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:465,1
    - Dst: Serial::new_sink
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:466,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:467,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:468,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:468,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:468,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:468,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:474,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:474,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:475,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:476,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:480,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 464
    functionDepth: 7
    functionLinenumber: 464
    functionLinenumberEnd: 484
    functionName: unit_tests::serial_thr
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - EventFd::new
    - Arc::new
    - try_clone
    - Vec::write
    - unwrap
    - Result::unwrap
    - write
    - String::from
    - Vec::read
    - Serial::new_sink
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn serial_thr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:488,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:488,1
    - Dst: Serial::new_sink
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:489,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:490,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:491,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:491,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:491,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:491,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:495,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:496,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:497,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:500,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:502,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 8
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: unit_tests::serial_dlab
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - EventFd::new
    - Arc::new
    - try_clone
    - Vec::write
    - unwrap
    - Result::unwrap
    - String::from
    - Vec::read
    - Serial::new_sink
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn serial_dlab()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:510,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:510,1
    - Dst: Serial::new_sink
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:511,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:512,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:513,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:513,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:513,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:513,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:517,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:518,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:519,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:520,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:523,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:525,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:527,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:529,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 509
    functionDepth: 8
    functionLinenumber: 509
    functionLinenumberEnd: 533
    functionName: unit_tests::serial_modem
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - EventFd::new
    - Arc::new
    - try_clone
    - Vec::write
    - unwrap
    - Result::unwrap
    - String::from
    - Vec::read
    - Serial::new_sink
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn serial_modem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:537,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:537,1
    - Dst: Serial::new_sink
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:538,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:539,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:540,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:540,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:540,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:540,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:544,1
    - Dst: Vec::read
      Src: /src/cloud-hypervisor/devices/src/legacy/serial.rs:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 536
    functionDepth: 8
    functionLinenumber: 536
    functionLinenumberEnd: 549
    functionName: unit_tests::serial_scratch
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/serial.rs
    functionUses: 0
    functionsReached:
    - EventFd::new
    - Arc::new
    - try_clone
    - Vec::write
    - unwrap
    - Result::unwrap
    - String::from
    - Vec::read
    - Serial::new_sink
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn serial_scratch()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - id
    - interrupt
    - state
    argTypes:
    - String
    - Arc<dyn InterruptSourceGroup>
    - Option<GpioState>
    constantsTouched: []
    func_position:
      end: 131
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 131
    functionName: Gpio::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: String,interrupt: Arc<dyn InterruptSourceGroup>,state:
      Option<GpioState>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: Gpio::state
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GpioState
    signature: fn state(&self) -> GpioState
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 178
    functionName: Gpio::pl061_internal_update
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn pl061_internal_update(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:217,1
    - Dst: Error::BadWriteOffset
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:217,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 2
    argNames:
    - offset
    - val
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 222
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 222
    functionName: Gpio::handle_write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 1
    functionsReached:
    - Error::BadWriteOffset
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn handle_write(&mut self, offset: u64, val: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Gpio::pl061_internal_update
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:231,1
    - Dst: Gpio::trigger_gpio_interrupt
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:233,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:234,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:235,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:239,1
    - Dst: Error::GpioTriggerKeyFailure
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - key
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: Gpio::trigger_key
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 0
    functionsReached:
    - Err
    - Error::GpioTriggerKeyFailure
    - Gpio::pl061_internal_update
    - Gpio::trigger_gpio_interrupt
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn trigger_key(&mut self, key: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:247,1
    - Dst: trigger
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:249,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:249,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: Gpio::trigger_gpio_interrupt
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 1
    functionsReached:
    - trigger
    - Ok
    - map_err
    - Err
    linkageType: ''
    returnType: Result
    signature: fn trigger_gpio_interrupt(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:261,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:263,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:283,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 292
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 292
    functionName: Gpio::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 0
    functionsReached:
    - write_le_u32
    - String::len
    - u32::from
    - contains
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:295,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:296,1
    - Dst: Gpio::handle_write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: Gpio::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 0
    functionsReached:
    - String::len
    - Gpio::handle_write
    - read_le_u32
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Gpio::id
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:318,1
    - Dst: Gpio::state
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 8
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: Gpio::snapshot
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - Gpio::state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:372,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:372,1
    - Dst: Gpio::new
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:373,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:374,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:375,1
    - Dst: TestInterrupt::new
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:375,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:375,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:375,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:382,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:383,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:384,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:385,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:389,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:392,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:393,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:394,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:399,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:400,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:401,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:402,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:407,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:408,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:409,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:410,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:415,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:416,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:417,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:418,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:424,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:425,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:426,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:427,1
    - Dst: Self::pl061_internal_update
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:433,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:436,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:437,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:442,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:443,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:444,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:445,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:449,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:450,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 141
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 371
    functionDepth: 8
    functionLinenumber: 371
    functionLinenumberEnd: 456
    functionName: unit_tests::test_gpio_read_write_and_event
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
    functionUses: 0
    functionsReached:
    - read_le_u32
    - write_le_u32
    - EventFd::new
    - Gpio::new
    - Arc::new
    - try_clone
    - Self::write
    - Self::read
    - Self::pl061_internal_update
    - unwrap
    - Result::unwrap
    - String::from
    - TestInterrupt::new
    linkageType: ''
    returnType: void
    signature: fn test_gpio_read_write_and_event()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: FwDebugDevice::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fwdebug.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fwdebug.rs:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: FwDebugDevice::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fwdebug.rs
    functionUses: 0
    functionsReached:
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, _offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/fwdebug.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: FwDebugDevice::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/fwdebug.rs
    functionUses: 0
    functionsReached:
    - String::len
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, _offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: DebugIoPortRange::from_u8
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/debug_port.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DebugIoPortRange
    signature: 'fn from_u8(value: u8) -> DebugIoPortRange'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: DebugIoPortRange::fmt
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/debug_port.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - Instant
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: DebugPort::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/debug_port.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(timestamp: Instant) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _base
    - _offset
    - _data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: DebugPort::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/debug_port.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, _offset: u64, _data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elapsed
      Src: /src/cloud-hypervisor/devices/src/legacy/debug_port.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _base
    - _offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: DebugPort::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/debug_port.rs
    functionUses: 0
    functionsReached:
    - elapsed
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self,_base: u64,_offset: u64,data: &[u8],) -> Option<std::sync::Arc<std::sync::Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ct
    argTypes:
    - ClockType
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: libc::clockid_t::from
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: libc::clockid_t
    signature: 'fn from(ct: ClockType) -> libc::clockid_t'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::clock_gettime
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:89,1
    - Dst: ClockType::into
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:89,1
    - Dst: seconds_to_nanoseconds
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:90,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - clock_type
    argTypes:
    - ClockType
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 7
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: get_time
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 3
    functionsReached:
    - seconds_to_nanoseconds
    - Option::unwrap
    - ClockType::into
    - libc::clock_gettime
    linkageType: ''
    returnType: u64
    signature: 'pub fn get_time(clock_type: ClockType) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::checked_mul
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: seconds_to_nanoseconds
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 2
    functionsReached:
    - Result::checked_mul
    linkageType: ''
    returnType: Option
    signature: 'pub fn seconds_to_nanoseconds(value: i64) -> Option<i64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:118,1
    - Dst: get_time
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 8
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: Rtc::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 2
    functionsReached:
    - Instant::now
    - get_time
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:127,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:127,1
    - Dst: as_nanos
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Rtc::get_time
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 1
    functionsReached:
    - as_nanos
    - Instant::now
    - duration_since
    linkageType: ''
    returnType: u32
    signature: fn get_time(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:143,1
    - Dst: seconds_to_nanoseconds
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:146,1
    - Dst: i64::from
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:146,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:146,1
    - Dst: Err
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:152,1
    - Dst: Error::BadWriteOffset
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:152,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - offset
    - val
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 156
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 156
    functionName: Rtc::handle_write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 1
    functionsReached:
    - Instant::now
    - Option::unwrap
    - Err
    - seconds_to_nanoseconds
    - Error::BadWriteOffset
    - i64::from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn handle_write(&mut self, offset: u64, val: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: Rtc::default
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:169,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:171,1
    - Dst: Rtc::get_time
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:174,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:190,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 199
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 199
    functionName: Rtc::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached:
    - Rtc::get_time
    - write_le_u32
    - u32::from
    - contains
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:202,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:203,1
    - Dst: Rtc::handle_write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: Rtc::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached:
    - String::len
    - Rtc::handle_write
    - read_le_u32
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 307
    functionName: unit_tests::test_get_time
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_get_time()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LocalTime::now
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 341
    functionName: unit_tests::test_local_time_display
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached:
    - LocalTime::now
    linkageType: ''
    returnType: void
    signature: fn test_local_time_display()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: unit_tests::test_seconds_to_nanoseconds
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_seconds_to_nanoseconds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rtc::new
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:355,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:359,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:360,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:361,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:362,1
    - Dst: get_time
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:366,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:367,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:369,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:373,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:374,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:380,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:381,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:382,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:383,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:387,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:388,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:389,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:390,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:394,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:395,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:396,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:398,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:399,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:404,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:405,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:406,1
    - Dst: read_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:407,1
    - Dst: write_le_u32
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:412,1
    - Dst: Self::write
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:413,1
    - Dst: Self::read
      Src: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 354
    functionDepth: 9
    functionLinenumber: 354
    functionLinenumberEnd: 420
    functionName: unit_tests::test_rtc_read_write_and_event
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
    functionUses: 0
    functionsReached:
    - write_le_u32
    - Self::read
    - Self::write
    - Rtc::new
    - get_time
    - read_le_u32
    linkageType: ''
    returnType: void
    signature: fn test_rtc_read_write_and_event()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:46,1
    - Dst: u64::saturating_sub
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:48,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 4
    argNames:
    - mem_below_4g
    - mem_above_4g
    - reset_evt
    - vcpus_kill_signalled
    argTypes:
    - u64
    - u64
    - EventFd
    - Option<Arc<AtomicBool>>
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: Cmos::new
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/cmos.rs
    functionUses: 0
    functionsReached:
    - std::cmp::min
    - u64::saturating_sub
    linkageType: ''
    returnType: Cmos
    signature: 'pub fn new(mem_below_4g: u64,mem_above_4g: u64,reset_evt: EventFd,vcpus_kill_signalled:
      Option<Arc<AtomicBool>>,) -> Cmos'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:70,1
    - Dst: write
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:80,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:80,1
    - Dst: take
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:81,1
    - Dst: '&Arc::load'
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:84,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:87,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 8
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: Cmos::write
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/cmos.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - std::time::Duration::from_millis
    - take
    - '&Arc::load'
    - unwrap
    - String::len
    - write
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: C::m::o::s::::::::r::e::a::d::to_bcd
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/cmos.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn to_bcd(v: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:105,1
    - Dst: mem::zeroed
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:124,1
    - Dst: libc::clock_gettime
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:125,1
    - Dst: mem::zeroed
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:130,1
    - Dst: libc::gmtime_r
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:131,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:148,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:149,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:150,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:151,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:152,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:153,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:154,1
    - Dst: to_bcd
      Src: /src/cloud-hypervisor/devices/src/legacy/cmos.rs:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 101
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 172
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 172
    functionName: Cmos::read
    functionSourceFile: /src/cloud-hypervisor/devices/src/legacy/cmos.rs
    functionUses: 0
    functionsReached:
    - to_bcd
    - mem::zeroed
    - libc::gmtime_r
    - libc::clock_gettime
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - overrides
    argTypes:
    - '&PerformanceTestOverrides'
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: init_tests
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn init_tests(overrides: &PerformanceTestOverrides)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::remove_file
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:72,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:72,1
    - Dst: fs::remove_file
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:74,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:74,1
    - Dst: fs::remove_file
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:76,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: cleanup_tests
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - fs::remove_file
    linkageType: ''
    returnType: void
    signature: pub fn cleanup_tests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Guest::new_from_ip_range
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - disk_config
    argTypes:
    - Box<dyn DiskConfig>
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 14
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: performance_test_new_guest
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 6
    functionsReached:
    - Guest::new_from_ip_range
    linkageType: ''
    returnType: Guest
    signature: 'fn performance_test_new_guest(disk_config: Box<dyn DiskConfig>) ->
      Guest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:130,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:132,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:132,1
    - Dst: performance_test_new_guest
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:133,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:133,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:135,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:136,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:145,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:145,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:145,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:148,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: '&mut Self::verbosity'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: '&mut Self::set_print_cmd'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:142,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:155,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:156,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:156,1
    - Dst: measure_virtio_net_throughput
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:157,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:157,1
    - Dst: kill
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:160,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:161,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:161,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:166,1
    - Dst: Err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 77
    argCount: 1
    argNames:
    - control
    argTypes:
    - '&PerformanceTestControl'
    constantsTouched: []
    func_position:
      end: 170
      start: 128
    functionDepth: 12
    functionLinenumber: 128
    functionLinenumberEnd: 170
    functionName: performance_net_throughput
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - measure_virtio_net_throughput
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - '&mut Self::verbosity'
    - Vec::args
    - performance_test_new_guest
    - wait_with_output
    - as_str
    - '&mut Self::set_print_cmd'
    - Err
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: f64
    signature: 'pub fn performance_net_throughput(control: &PerformanceTestControl)
      -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:173,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:173,1
    - Dst: performance_test_new_guest
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:174,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:174,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:176,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:177,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:186,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:186,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:186,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:189,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: '&mut Self::verbosity'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: '&mut Self::set_print_cmd'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:183,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:196,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:197,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:197,1
    - Dst: measure_virtio_net_latency
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:200,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:200,1
    - Dst: mean
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:201,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:201,1
    - Dst: kill
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:204,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:205,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:205,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:210,1
    - Dst: Err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 77
    argCount: 1
    argNames:
    - control
    argTypes:
    - '&PerformanceTestControl'
    constantsTouched: []
    func_position:
      end: 214
      start: 172
    functionDepth: 12
    functionLinenumber: 172
    functionLinenumberEnd: 214
    functionName: performance_net_latency
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - to_string
    - Result::unwrap
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - handle_child_output
    - measure_virtio_net_latency
    - '&mut Self::verbosity'
    - Vec::args
    - performance_test_new_guest
    - wait_with_output
    - as_str
    - '&mut Self::set_print_cmd'
    - mean
    - Err
    - Box::new
    - unwrap
    - wait_vm_boot
    - GuestCommand::new
    - Option::unwrap
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - Vec::default_disks
    - std::panic::catch_unwind
    - kill
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: f64
    signature: 'pub fn performance_net_latency(control: &PerformanceTestControl) ->
      f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:217,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:218,1
    - Dst: lines
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:218,1
    - Dst: filter
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:218,1
    - Dst: Result::contains
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:220,1
    - Dst: map
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:218,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:221,1
    - Dst: collect
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:218,1
    - Dst: split
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:231,1
    - Dst: split("--").collect::<Vec<&str>>
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:231,1
    - Dst: split_whitespace
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:243,1
    - Dst: split_whitespace().collect::<Vec<&str>>
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:243,1
    - Dst: parse::<f64>
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:254,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:254,1
    - Dst: split
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:258,1
    - Dst: split("--").collect::<Vec<&str>>
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:258,1
    - Dst: split_whitespace
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:270,1
    - Dst: split_whitespace().collect::<Vec<&str>>
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:270,1
    - Dst: parse::<f64>
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:281,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:281,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 1
    argNames:
    - output
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 293
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 293
    functionName: parse_boot_time_output
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 1
    functionsReached:
    - filter
    - map
    - parse::<f64>
    - Result::contains
    - map_err
    - lines
    - split_whitespace
    - std::panic::catch_unwind
    - String::from_utf8_lossy
    - Result::to_string
    - unwrap
    - split_whitespace().collect::<Vec<&str>>
    - split
    - split("--").collect::<Vec<&str>>
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn parse_boot_time_output(output: &[u8]) -> Result<f64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:296,1
    - Dst: '&mut Self::verbosity'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:296,1
    - Dst: '&mut Self::set_print_cmd'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:296,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:296,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:296,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:303,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:303,1
    - Dst: kill
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:304,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:305,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:305,1
    - Dst: parse_boot_time_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:307,1
    - Dst: Result::inspect_err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - cmd
    - test_timeout
    argTypes:
    - '&mut GuestCommand'
    - u32
    constantsTouched: []
    func_position:
      end: 317
      start: 295
    functionDepth: 9
    functionLinenumber: 295
    functionLinenumberEnd: 317
    functionName: measure_boot_time
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 2
    functionsReached:
    - wait_with_output
    - '&mut Self::verbosity'
    - thread::sleep
    - '&mut Self::set_print_cmd'
    - '&mut Self::spawn'
    - Duration::new
    - kill
    - parse_boot_time_output
    - unwrap
    - io::Result::unwrap
    - Result::inspect_err
    - '&mut Self::capture_output'
    linkageType: ''
    returnType: Result
    signature: 'fn measure_boot_time(cmd: &mut GuestCommand, test_timeout: u32) ->
      Result<f64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:320,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:321,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:321,1
    - Dst: performance_test_new_guest
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:322,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:322,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:323,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:325,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:325,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:325,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:331,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:331,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:331,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:325,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:325,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:325,1
    - Dst: measure_boot_time
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:336,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - control
    argTypes:
    - '&PerformanceTestControl'
    constantsTouched: []
    func_position:
      end: 345
      start: 319
    functionDepth: 12
    functionLinenumber: 319
    functionLinenumberEnd: 345
    functionName: performance_boot_time
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - performance_test_new_guest
    - GuestCommand::new
    - '&mut Self::args'
    - direct_kernel_boot_path
    - Vec::default_disks
    - std::panic::catch_unwind
    - Vec::args
    - Box::new
    - unwrap
    - to_string
    - measure_boot_time
    - PathBuf::to_str
    - Result::unwrap
    linkageType: ''
    returnType: f64
    signature: 'pub fn performance_boot_time(control: &PerformanceTestControl) ->
      f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:348,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:349,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:349,1
    - Dst: performance_test_new_guest
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:350,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:350,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:351,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:352,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:352,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:352,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:358,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:358,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:358,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:352,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:352,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:352,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:363,1
    - Dst: measure_boot_time
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:370,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - control
    argTypes:
    - '&PerformanceTestControl'
    constantsTouched: []
    func_position:
      end: 379
      start: 347
    functionDepth: 12
    functionLinenumber: 347
    functionLinenumberEnd: 379
    functionName: performance_boot_time_pmem
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - UbuntuDiskConfig::new
    - performance_test_new_guest
    - GuestCommand::new
    - '&mut Self::args'
    - as_str
    - direct_kernel_boot_path
    - std::panic::catch_unwind
    - Vec::args
    - Box::new
    - unwrap
    - to_string
    - measure_boot_time
    - PathBuf::to_str
    - Result::unwrap
    linkageType: ''
    returnType: f64
    signature: 'pub fn performance_boot_time_pmem(control: &PerformanceTestControl)
      -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:383,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:384,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:385,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:385,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:390,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:390,1
    - Dst: performance_test_new_guest
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:391,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:391,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:392,1
    - Dst: join
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:392,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:392,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:392,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:392,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:403,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:403,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:403,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:407,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:412,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:417,1
    - Dst: Vec::default_net
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: Vec::capture_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: '&mut Self::verbosity'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: '&mut Self::set_print_cmd'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:400,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:427,1
    - Dst: wait_vm_boot
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:428,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:428,1
    - Dst: ssh_command
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:435,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:435,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:435,1
    - Dst: parse_fio_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:442,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:442,1
    - Dst: parse_fio_output_iops
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:444,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:444,1
    - Dst: kill
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:448,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:449,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:449,1
    - Dst: handle_child_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:454,1
    - Dst: Err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 114
    argCount: 1
    argNames:
    - control
    argTypes:
    - '&PerformanceTestControl'
    constantsTouched: []
    func_position:
      end: 458
      start: 381
    functionDepth: 12
    functionLinenumber: 381
    functionLinenumberEnd: 458
    functionName: performance_block_io
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - '&mut Self::args'
    - to_string
    - to_str
    - Result::unwrap
    - Vec::default_net
    - PathBuf::to_str
    - UbuntuDiskConfig::new
    - ssh_command
    - handle_child_output
    - '&mut Self::verbosity'
    - Vec::args
    - performance_test_new_guest
    - wait_with_output
    - as_str
    - parse_fio_output_iops
    - '&mut Self::set_print_cmd'
    - Err
    - Box::new
    - unwrap
    - join
    - wait_vm_boot
    - parse_fio_output
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - kill
    - Result::map_err
    - as_path
    - Vec::capture_output
    - io::Result::unwrap
    linkageType: ''
    returnType: f64
    signature: 'pub fn performance_block_io(control: &PerformanceTestControl) -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::iter
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:476,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:477,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:477,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:478,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:478,1
    - Dst: as_u64
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:479,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:479,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:480,1
    - Dst: Err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - events
    argTypes:
    - '&[serde_json::Value]'
    constantsTouched: []
    func_position:
      end: 484
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 484
    functionName: parse_restore_time_output
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 1
    functionsReached:
    - as_str
    - Err
    - unwrap
    - as_u64
    - bool::iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn parse_restore_time_output(events: &[serde_json::Value]) -> Result<f64,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Self::capture_output'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:491,1
    - Dst: '&mut Self::verbosity'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:491,1
    - Dst: '&mut Self::set_print_cmd'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:491,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:491,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:491,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:498,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:498,1
    - Dst: kill
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:499,1
    - Dst: wait_with_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:500,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:500,1
    - Dst: parse_event_file
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:502,1
    - Dst: parse_restore_time_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:504,1
    - Dst: Result::inspect_err
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 3
    argNames:
    - cmd
    - event_file
    - test_timeout
    argTypes:
    - '&mut GuestCommand'
    - '&str'
    - u32
    constantsTouched: []
    func_position:
      end: 512
      start: 486
    functionDepth: 9
    functionLinenumber: 486
    functionLinenumberEnd: 512
    functionName: measure_restore_time
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 1
    functionsReached:
    - parse_event_file
    - wait_with_output
    - '&mut Self::verbosity'
    - thread::sleep
    - '&mut Self::set_print_cmd'
    - '&mut Self::spawn'
    - Duration::new
    - kill
    - parse_restore_time_output
    - unwrap
    - io::Result::unwrap
    - Result::inspect_err
    - '&mut Self::capture_output'
    linkageType: ''
    returnType: Result
    signature: 'fn measure_restore_time(cmd: &mut GuestCommand,event_file: &str,test_timeout:
      u32,) -> Result<f64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:515,1
    - Dst: UbuntuDiskConfig::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:516,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:516,1
    - Dst: performance_test_new_guest
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:517,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:517,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:518,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:519,1
    - Dst: join
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:519,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:519,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:519,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: direct_kernel_boot_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:534,1
    - Dst: PathBuf::to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:534,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:534,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: Vec::default_disks
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: '&mut Self::set_print_cmd'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: '&mut Self::spawn'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:527,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:542,1
    - Dst: Duration::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:542,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:543,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:543,1
    - Dst: join
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:543,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:543,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:543,1
    - Dst: std::fs::create_dir
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:544,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:544,1
    - Dst: kill
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:552,1
    - Dst: wait
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:553,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:553,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:555,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:555,1
    - Dst: join
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:555,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:555,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:555,1
    - Dst: GuestCommand::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:556,1
    - Dst: '&mut Self::args'
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:557,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:560,1
    - Dst: Vec::args
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:557,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:562,1
    - Dst: measure_restore_time
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:564,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:564,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 114
    argCount: 1
    argNames:
    - control
    argTypes:
    - '&PerformanceTestControl'
    constantsTouched: []
    func_position:
      end: 573
      start: 514
    functionDepth: 12
    functionLinenumber: 514
    functionLinenumberEnd: 573
    functionName: performance_restore_latency
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::args'
    - Self::as_str
    - measure_restore_time
    - to_string
    - to_str
    - Result::unwrap
    - PathBuf::to_str
    - String::from
    - UbuntuDiskConfig::new
    - thread::sleep
    - Duration::new
    - Vec::args
    - performance_test_new_guest
    - std::fs::create_dir
    - as_str
    - '&mut Self::set_print_cmd'
    - Box::new
    - unwrap
    - join
    - wait
    - GuestCommand::new
    - '&mut Self::spawn'
    - direct_kernel_boot_path
    - Self::args
    - std::panic::catch_unwind
    - Vec::default_disks
    - kill
    - as_path
    - io::Result::unwrap
    linkageType: ''
    returnType: f64
    signature: 'pub fn performance_restore_latency(control: &PerformanceTestControl)
      -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 641
    functionName: unit_tests::test_parse_iperf3_output
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_parse_iperf3_output()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_ethr_latency_output
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:651,1
    - Dst: (bool, Vec::as_bytes
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:651,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 654
      start: 644
    functionDepth: 6
    functionLinenumber: 644
    functionLinenumberEnd: 654
    functionName: unit_tests::test_parse_ethr_latency_output
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - parse_ethr_latency_output
    - (bool, Vec::as_bytes
    linkageType: ''
    returnType: void
    signature: fn test_parse_ethr_latency_output()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 664
    functionName: unit_tests::test_parse_boot_time_output
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_parse_boot_time_output()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:690,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:691,1
    - Dst: Self::trim
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:691,1
    - Dst: split
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:691,1
    - Dst: "trim()\n            .split(\"\\n\\n\")\n            .collect::<Vec<&str>>"
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:691,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:696,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:696,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 666
    functionDepth: 5
    functionLinenumber: 666
    functionLinenumberEnd: 700
    functionName: unit_tests::test_parse_restore_time_output
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached:
    - Result::push
    - Vec::new
    - Self::trim
    - std::result::Result::unwrap
    - serde_json::from_str
    - String::from
    - "trim()\n            .split(\"\\n\\n\")\n            .collect::<Vec<&str>>"
    - split
    linkageType: ''
    returnType: void
    signature: fn test_parse_restore_time_output()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 769
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 769
    functionName: unit_tests::test_parse_fio_output
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_parse_fio_output()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:49,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:50,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:50,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:50,1
    - Dst: success
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:51,1
    - Dst: String::from_utf8
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:52,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:52,1
    - Dst: trim
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:52,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:52,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:64,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:65,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:65,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:65,1
    - Dst: success
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:66,1
    - Dst: String::from_utf8
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:67,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:67,1
    - Dst: trim
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:67,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:67,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:79,1
    - Dst: Command::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:80,1
    - Dst: Self::args
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:80,1
    - Dst: Vec::output
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:80,1
    - Dst: success
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:84,1
    - Dst: String::from_utf8
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:85,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:85,1
    - Dst: trim
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:85,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:85,1
    - Dst: date
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:101,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 104
    functionName: MetricsReport::default
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - trim
    - date
    - success
    - String::new
    - Self::args
    - Command::new
    - String::from_utf8
    - unwrap
    - Vec::output
    - to_string
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:121,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:122,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:123,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:124,1
    - Dst: Err
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: ImageFormat::from_str
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_str(s: &str) -> Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: ImageFormat::fmt
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: PerformanceTestOverrides::fmt
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 207
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 207
    functionName: PerformanceTestControl::fmt
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: PerformanceTestControl::default
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: const fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:236,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:237,1
    - Dst: clone
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:243,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:245,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:247,1
    - Dst: mean
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:251,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:251,1
    - Dst: std_deviation
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:252,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:252,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:253,1
    - Dst: Self::into_iter
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:253,1
    - Dst: reduce
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:253,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:253,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:254,1
    - Dst: Self::into_iter
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:254,1
    - Dst: reduce
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:254,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:254,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 73
    argCount: 1
    argNames:
    - overrides
    argTypes:
    - '&PerformanceTestOverrides'
    constantsTouched: []
    func_position:
      end: 263
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 263
    functionName: PerformanceTest::run
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Self::into_iter
    - Option::unwrap
    - mean
    - clone
    - to_string
    - unwrap
    - Result::clone
    - Result::push
    - reduce
    - std_deviation
    - unwrap_or
    linkageType: ''
    returnType: PerformanceTestResult
    signature: 'pub fn run(&self, overrides: &PerformanceTestOverrides) -> PerformanceTestResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Option<u32>::unwrap_or'
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:268,1
    - Dst: '&Option<u32>::unwrap_or'
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - test_iterations
    - test_timeout
    argTypes:
    - '&Option<u32>'
    - '&Option<u32>'
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: PerformanceTest::calc_timeout
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached:
    - '&Option<u32>::unwrap_or'
    linkageType: ''
    returnType: u64
    signature: 'pub fn calc_timeout(&self, test_iterations: &Option<u32>, test_timeout:
      &Option<u32>) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:274,1
    - Dst: Some
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:277,1
    - Dst: String::iter
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:277,1
    - Dst: iter().sum::<f64>
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[f64]'
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: mean
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 3
    functionsReached:
    - String::len
    - iter().sum::<f64>
    - String::iter
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn mean(data: &[f64]) -> Option<f64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:284,1
    - Dst: mean
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:287,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:287,1
    - Dst: String::iter
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:288,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:288,1
    - Dst: "iter()\n            .map(|value| {\n                let diff = mean -\
        \ *value;\n                diff * diff\n            })\n            .sum::<f64>"
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:288,1
    - Dst: Some
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:297,1
    - Dst: sqrt
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[f64]'
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: std_deviation
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 1
    functionsReached:
    - impl Iterator::map
    - Option::unwrap
    - sqrt
    - mean
    - "iter()\n            .map(|value| {\n                let diff = mean - *value;\n\
      \                diff * diff\n            })\n            .sum::<f64>"
    - String::iter
    - String::len
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn std_deviation(data: &[f64]) -> Option<f64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - v
    argTypes:
    - f64
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: adjuster::identity
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f64
    signature: 'pub fn identity(v: f64) -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - f64
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: adjuster::s_to_ms
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f64
    signature: 'pub fn s_to_ms(v: f64) -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - f64
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: adjuster::bps_to_gbps
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f64
    signature: 'pub fn bps_to_gbps(v: f64) -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - f64
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: adjuster::Bps_to_MiBps
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f64
    signature: 'pub fn Bps_to_MiBps(v: f64) -> f64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: channel::<Result<PerformanceTestResult, Error>>
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:749,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:752,1
    - Dst: thread::spawn
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:753,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:759,1
    - Dst: bool::run
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:759,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:765,1
    - Dst: Err
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:767,1
    - Dst: Sender::send
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:770,1
    - Dst: bool::calc_timeout
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:774,1
    - Dst: recv_timeout
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:775,1
    - Dst: Duration::from_secs
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:776,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 2
    argNames:
    - test
    - overrides
    argTypes:
    - '&''static PerformanceTest'
    - '&Arc<PerformanceTestOverrides>'
    constantsTouched: []
    func_position:
      end: 784
      start: 745
    functionDepth: 10
    functionLinenumber: 745
    functionLinenumberEnd: 784
    functionName: run_test_with_timeout
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 0
    functionsReached:
    - recv_timeout
    - channel::<Result<PerformanceTestResult, Error>>
    - map_err
    - bool::calc_timeout
    - Duration::from_secs
    - Err
    - std::panic::catch_unwind
    - Ok
    - Self::clone
    - Sender::send
    - thread::spawn
    - bool::run
    linkageType: ''
    returnType: Result
    signature: 'fn run_test_with_timeout(test: &''static PerformanceTest,overrides:
      &Arc<PerformanceTestOverrides>,) -> Result<PerformanceTestResult, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_infra::exec_host_command_output
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:787,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:788,1
    - Dst: trim
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:788,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/performance-metrics/src/main.rs:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 786
    functionDepth: 7
    functionLinenumber: 786
    functionLinenumberEnd: 789
    functionName: date
    functionSourceFile: /src/cloud-hypervisor/performance-metrics/src/main.rs
    functionUses: 34
    functionsReached:
    - String::from_utf8_lossy
    - trim
    - test_infra::exec_host_command_output
    - to_string
    linkageType: ''
    returnType: String
    signature: fn date() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: VirtioDeviceType::from
    functionSourceFile: /src/cloud-hypervisor/vm-virtio/src/lib.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(t: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: VirtioDeviceType::fmt
    functionSourceFile: /src/cloud-hypervisor/vm-virtio/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:110,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - access_platform
    - len
    argTypes:
    - Option<&dyn AccessPlatform>
    - usize
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: GuestAddress::translate_gva
    functionSourceFile: /src/cloud-hypervisor/vm-virtio/src/lib.rs
    functionUses: 0
    functionsReached:
    - translate_gva
    - vm_memory::GuestAddress
    linkageType: ''
    returnType: Self
    signature: 'fn translate_gva(&self, access_platform: Option<&dyn AccessPlatform>,
      len: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:113,1
    - Dst: translate_gpa
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - access_platform
    - len
    argTypes:
    - Option<&dyn AccessPlatform>
    - usize
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: GuestAddress::translate_gpa
    functionSourceFile: /src/cloud-hypervisor/vm-virtio/src/lib.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - translate_gpa
    linkageType: ''
    returnType: Self
    signature: 'fn translate_gpa(&self, access_platform: Option<&dyn AccessPlatform>,
      len: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:120,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - access_platform
    - len
    argTypes:
    - Option<&dyn AccessPlatform>
    - usize
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 8
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: u64::translate_gva
    functionSourceFile: /src/cloud-hypervisor/vm-virtio/src/lib.rs
    functionUses: 2
    functionsReached:
    - translate_gva
    - cpu::Result::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn translate_gva(&self, access_platform: Option<&dyn AccessPlatform>,
      len: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translate_gpa
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:127,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - access_platform
    - len
    argTypes:
    - Option<&dyn AccessPlatform>
    - usize
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: u64::translate_gpa
    functionSourceFile: /src/cloud-hypervisor/vm-virtio/src/lib.rs
    functionUses: 0
    functionsReached:
    - translate_gpa
    - Self::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn translate_gpa(&self, access_platform: Option<&dyn AccessPlatform>,
      len: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Queue::new
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:136,1
    - Dst: bool::max_size
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:136,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:136,1
    - Dst: u32::set_next_avail
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:138,1
    - Dst: bool::next_avail
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:138,1
    - Dst: u32::set_next_used
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:139,1
    - Dst: bool::next_used
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:139,1
    - Dst: u32::set_event_idx
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:140,1
    - Dst: bool::event_idx_enabled
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:140,1
    - Dst: u32::set_size
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:141,1
    - Dst: bool::size
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:141,1
    - Dst: u32::set_ready
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:142,1
    - Dst: bool::ready
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:142,1
    - Dst: u32::try_set_desc_table_address
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:143,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:143,1
    - Dst: bool::desc_table
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:143,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:143,1
    - Dst: u32::try_set_avail_ring_address
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:145,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:145,1
    - Dst: bool::avail_ring
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:145,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:145,1
    - Dst: u32::try_set_used_ring_address
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:147,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:147,1
    - Dst: bool::used_ring
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:147,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vm-virtio/src/lib.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 1
    argNames:
    - queue
    argTypes:
    - '&Queue'
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: clone_queue
    functionSourceFile: /src/cloud-hypervisor/vm-virtio/src/lib.rs
    functionUses: 3
    functionsReached:
    - u32::try_set_desc_table_address
    - bool::used_ring
    - u32::set_size
    - bool::desc_table
    - u32::set_next_used
    - bool::avail_ring
    - u32::set_ready
    - bool::event_idx_enabled
    - bool::next_used
    - Queue::new
    - bool::ready
    - vm_memory::GuestAddress
    - bool::next_avail
    - u32::try_set_avail_ring_address
    - unwrap
    - u32::set_event_idx
    - Self::unwrap
    - u32::try_set_used_ring_address
    - bool::max_size
    - u32::set_next_avail
    - bool::size
    linkageType: ''
    returnType: Queue
    signature: 'pub fn clone_queue(queue: &Queue) -> Queue'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: RawFileDiskAio::new
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(file: File) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:33,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:34,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: RawFileDiskAio::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::End
    - seek
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn logical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:39,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:39,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:41,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: RawFileDiskAio::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - metadata
    - map
    - super::Result::len
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn physical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:46,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:46,1
    - Dst: RawFileAsyncAio::new
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:47,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:47,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ring_depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: RawFileDiskAio::new_async_io
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::map_err
    - RawFileAsyncAio::new
    - Box::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn new_async_io(&self, ring_depth: u32) -> DiskFileResult<Box<dyn
      AsyncIo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskTopology::probe
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:53,1
    - Dst: DiskTopology::default
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: RawFileDiskAio::topology
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - DiskTopology::default
    - DiskTopology::probe
    linkageType: ''
    returnType: DiskTopology
    signature: fn topology(&mut self) -> DiskTopology
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BorrowedDiskFd::new
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:62,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: RawFileDiskAio::fd
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - BorrowedDiskFd::new
    linkageType: ''
    returnType: BorrowedDiskFd
    signature: fn fd(&mut self) -> BorrowedDiskFd<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:74,1
    - Dst: aio::IoContext::new
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:75,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - queue_depth
    argTypes:
    - RawFd
    - u32
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: RawFileAsyncAio::new
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 1
    functionsReached:
    - EventFd::new
    - Ok
    - aio::IoContext::new
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(fd: RawFd, queue_depth: u32) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: RawFileAsyncAio::notifier
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&EventFd'
    signature: fn notifier(&self) -> &EventFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:93,1
    - Dst: '&[libc::iovec]::as_ptr'
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:95,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:96,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:100,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:101,1
    - Dst: submit
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:103,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:103,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 109
      start: 86
    functionDepth: 13
    functionLinenumber: 86
    functionLinenumberEnd: 109
    functionName: RawFileAsyncAio::read_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - submit
    - Default::default
    - map_err
    - '&[libc::iovec]::as_ptr'
    - '&[libc::iovec]::len'
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:118,1
    - Dst: '&[libc::iovec]::as_ptr'
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:120,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:121,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:125,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:126,1
    - Dst: submit
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:128,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:128,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 134
      start: 111
    functionDepth: 13
    functionLinenumber: 111
    functionLinenumberEnd: 134
    functionName: RawFileAsyncAio::write_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - submit
    - Default::default
    - map_err
    - '&[libc::iovec]::as_ptr'
    - '&[libc::iovec]::len'
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:139,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:143,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:144,1
    - Dst: submit
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:146,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:146,1
    - Dst: libc::fsync
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:149,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 13
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: RawFileAsyncAio::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - map_err
    - submit
    - Default::default
    - Ok
    - as_raw_fd
    - libc::fsync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aio::IoEvent::default
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:156,1
    - Dst: get_events
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:157,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:157,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/raw_async_aio.rs:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: RawFileAsyncAio::next_completed_request
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async_aio.rs
    functionUses: 0
    functionsReached:
    - Some
    - get_events
    - aio::IoEvent::default
    - unwrap
    linkageType: ''
    returnType: Option
    signature: fn next_completed_request(&mut self) -> Option<(u64, i32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskTopology::probe
      Src: /src/cloud-hypervisor/block/src/vhd.rs:31,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/vhd.rs:34,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/vhd.rs:34,1
    - Dst: read_aligned_block_size
      Src: /src/cloud-hypervisor/block/src/vhd.rs:36,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhd.rs:42,1
    - Dst: u64::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:43,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:43,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:43,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:44,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:44,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:44,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:45,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:45,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:45,1
    - Dst: u64::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:46,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:46,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:46,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:47,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:47,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:47,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:48,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:48,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:48,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:49,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:49,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:49,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:50,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:50,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:50,1
    - Dst: u64::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:51,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:51,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:51,1
    - Dst: u64::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:52,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:52,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:52,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:53,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:53,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:53,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:54,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:54,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:54,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:55,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:55,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:55,1
    - Dst: u128::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:56,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:56,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:56,1
    - Dst: u8::from_be_bytes
      Src: /src/cloud-hypervisor/block/src/vhd.rs:57,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhd.rs:57,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 125
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 7
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: VhdFooter::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 3
    functionsReached:
    - u32::from_be_bytes
    - try_into
    - SeekFrom::End
    - read_aligned_block_size
    - u64::from_be_bytes
    - DiskTopology::probe
    - Vec::seek
    - unwrap
    - u8::from_be_bytes
    - u128::from_be_bytes
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(file: &mut File) -> std::io::Result<VhdFooter>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: VhdFooter::cookie
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn cookie(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: VhdFooter::features
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn features(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: VhdFooter::file_format_version
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn file_format_version(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: VhdFooter::data_offset
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn data_offset(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: VhdFooter::time_stamp
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn time_stamp(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: VhdFooter::creator_application
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn creator_application(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: VhdFooter::creator_version
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn creator_version(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: VhdFooter::creator_host_os
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn creator_host_os(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: VhdFooter::original_size
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn original_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: VhdFooter::current_size
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn current_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: VhdFooter::disk_geometry
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn disk_geometry(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: VhdFooter::disk_type
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn disk_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: VhdFooter::checksum
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn checksum(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: VhdFooter::unique_id
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u128
    signature: pub fn unique_id(&self) -> u128
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: VhdFooter::saved_state
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn saved_state(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhdFooter::new
      Src: /src/cloud-hypervisor/block/src/vhd.rs:110,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhd.rs:113,1
    - Dst: Vec::cookie
      Src: /src/cloud-hypervisor/block/src/vhd.rs:113,1
    - Dst: Vec::file_format_version
      Src: /src/cloud-hypervisor/block/src/vhd.rs:114,1
    - Dst: Vec::data_offset
      Src: /src/cloud-hypervisor/block/src/vhd.rs:115,1
    - Dst: Vec::disk_type
      Src: /src/cloud-hypervisor/block/src/vhd.rs:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: is_fixed_vhd
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached:
    - Vec::disk_type
    - Vec::cookie
    - Vec::file_format_version
    - VhdFooter::new
    - Vec::data_offset
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn is_fixed_vhd(f: &mut File) -> std::io::Result<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: unit_tests::valid_fixed_vhd_footer
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn valid_fixed_vhd_footer() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: unit_tests::valid_dynamic_vhd_footer
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn valid_dynamic_vhd_footer() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/vhd.rs:174,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:174,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/vhd.rs:174,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/block/src/vhd.rs:175,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:175,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/vhd.rs:176,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhd.rs:176,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:176,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/block/src/vhd.rs:177,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhd.rs:177,1
    - Dst: testfn
      Src: /src/cloud-hypervisor/block/src/vhd.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - footer
    - testfn
    argTypes:
    - '&[u8]'
    - F
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: unit_tests::with_file
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - testfn
    - seek
    - into_file
    - SeekFrom::Start
    - unwrap
    - set_len
    - Result::unwrap
    - write_all
    linkageType: ''
    returnType: void
    signature: 'fn with_file<F>(footer: &[u8], mut testfn: F)whereF: FnMut(File),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_file
      Src: /src/cloud-hypervisor/block/src/vhd.rs:184,1
    - Dst: valid_fixed_vhd_footer
      Src: /src/cloud-hypervisor/block/src/vhd.rs:184,1
    - Dst: VhdFooter::new
      Src: /src/cloud-hypervisor/block/src/vhd.rs:185,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/vhd.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 205
    functionName: unit_tests::test_check_vhd_footer
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached:
    - valid_fixed_vhd_footer
    - std::io::Result::expect
    - VhdFooter::new
    - with_file
    linkageType: ''
    returnType: void
    signature: fn test_check_vhd_footer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_file
      Src: /src/cloud-hypervisor/block/src/vhd.rs:209,1
    - Dst: valid_fixed_vhd_footer
      Src: /src/cloud-hypervisor/block/src/vhd.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: unit_tests::test_is_fixed_vhd
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached:
    - valid_fixed_vhd_footer
    - with_file
    linkageType: ''
    returnType: void
    signature: fn test_is_fixed_vhd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_file
      Src: /src/cloud-hypervisor/block/src/vhd.rs:216,1
    - Dst: valid_dynamic_vhd_footer
      Src: /src/cloud-hypervisor/block/src/vhd.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: unit_tests::test_is_not_fixed_vhd
    functionSourceFile: /src/cloud-hypervisor/block/src/vhd.rs
    functionUses: 0
    functionsReached:
    - valid_dynamic_vhd_footer
    - with_file
    linkageType: ''
    returnType: void
    signature: fn test_is_not_fixed_vhd()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: RawFileDisk::new
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(file: File) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:30,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:31,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: RawFileDisk::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::End
    - seek
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn logical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:36,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:36,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:38,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: RawFileDisk::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - metadata
    - map
    - super::Result::len
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn physical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:43,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:43,1
    - Dst: RawFileAsync::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:44,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:44,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ring_depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: RawFileDisk::new_async_io
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - RawFileAsync::new
    - std::io::Result::map_err
    - Box::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn new_async_io(&self, ring_depth: u32) -> DiskFileResult<Box<dyn
      AsyncIo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskTopology::probe
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:50,1
    - Dst: DiskTopology::default
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: RawFileDisk::topology
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - DiskTopology::default
    - DiskTopology::probe
    linkageType: ''
    returnType: DiskTopology
    signature: fn topology(&mut self) -> DiskTopology
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_len
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:59,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: RawFileDisk::resize
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - map_err
    - set_len
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn resize(&mut self, size: u64) -> DiskFileResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BorrowedDiskFd::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:63,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: RawFileDisk::fd
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - BorrowedDiskFd::new
    linkageType: ''
    returnType: BorrowedDiskFd
    signature: fn fd(&mut self) -> BorrowedDiskFd<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IoUring::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:75,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:76,1
    - Dst: submitter
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:80,1
    - Dst: register_eventfd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:80,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:80,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - ring_depth
    argTypes:
    - RawFd
    - u32
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: RawFileAsync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 2
    functionsReached:
    - IoUring::new
    - EventFd::new
    - register_eventfd
    - submitter
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(fd: RawFd, ring_depth: u32) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: RawFileAsync::notifier
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&EventFd'
    signature: fn notifier(&self) -> &EventFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:101,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:106,1
    - Dst: opcode::Readv::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:107,1
    - Dst: types::Fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:107,1
    - Dst: '&[libc::iovec]::as_ptr'
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:107,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:107,1
    - Dst: Result::offset
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:107,1
    - Dst: Result::try_into
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:108,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:108,1
    - Dst: Result::build
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:107,1
    - Dst: user_data
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:107,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:106,1
    - Dst: AsyncIoError::ReadVectored
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:112,1
    - Dst: Error::other
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:112,1
    - Dst: sync
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:117,1
    - Dst: submit
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:118,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:118,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 121
      start: 95
    functionDepth: 11
    functionLinenumber: 95
    functionLinenumberEnd: 121
    functionName: RawFileAsync::read_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - Result::build
    - map_err
    - submit
    - push
    - Error::other
    - std::result::Result::unwrap
    - user_data
    - '&[libc::iovec]::as_ptr'
    - types::Fd
    - '&[libc::iovec]::len'
    - Ok
    - Result::offset
    - Result::try_into
    - AsyncIoError::ReadVectored
    - split
    - opcode::Readv::new
    - sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:129,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:134,1
    - Dst: opcode::Writev::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:135,1
    - Dst: types::Fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:135,1
    - Dst: '&[libc::iovec]::as_ptr'
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:135,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:135,1
    - Dst: Result::offset
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:135,1
    - Dst: Result::try_into
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:136,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:136,1
    - Dst: Result::build
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:135,1
    - Dst: user_data
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:135,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:134,1
    - Dst: AsyncIoError::WriteVectored
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:140,1
    - Dst: Error::other
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:140,1
    - Dst: sync
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:145,1
    - Dst: submit
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:146,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:146,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 149
      start: 123
    functionDepth: 11
    functionLinenumber: 123
    functionLinenumberEnd: 149
    functionName: RawFileAsync::write_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - AsyncIoError::WriteVectored
    - Result::build
    - map_err
    - submit
    - push
    - Error::other
    - std::result::Result::unwrap
    - opcode::Writev::new
    - user_data
    - '&[libc::iovec]::as_ptr'
    - types::Fd
    - '&[libc::iovec]::len'
    - Ok
    - Result::offset
    - Result::try_into
    - split
    - sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:153,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:157,1
    - Dst: opcode::Fsync::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:158,1
    - Dst: types::Fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:158,1
    - Dst: Result::build
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:158,1
    - Dst: user_data
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:158,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:157,1
    - Dst: AsyncIoError::Fsync
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:162,1
    - Dst: Error::other
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:162,1
    - Dst: sync
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:167,1
    - Dst: submit
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:168,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:168,1
    - Dst: libc::fsync
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:171,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 14
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: RawFileAsync::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - Result::build
    - libc::fsync
    - map_err
    - submit
    - push
    - opcode::Fsync::new
    - AsyncIoError::Fsync
    - Error::other
    - user_data
    - types::Fd
    - Ok
    - split
    - sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: completion
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:178,1
    - Dst: next
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:178,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:178,1
    - Dst: super::Result::user_data
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:181,1
    - Dst: super::Result::result
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: RawFileAsync::next_completed_request
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    - completion
    - super::Result::result
    - super::Result::user_data
    linkageType: ''
    returnType: Option
    signature: fn next_completed_request(&mut self) -> Option<(u64, i32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: RawFileAsync::batch_requests_enabled
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn batch_requests_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawFileAsync::batch_requests_enabled
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:189,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:190,1
    - Dst: split
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:193,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:202,1
    - Dst: opcode::Readv::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:203,1
    - Dst: types::Fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:204,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:205,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:206,1
    - Dst: Result::offset
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:203,1
    - Dst: Result::build
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:203,1
    - Dst: user_data
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:203,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:202,1
    - Dst: AsyncIoError::ReadVectored
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:213,1
    - Dst: Error::other
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:213,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:222,1
    - Dst: opcode::Writev::new
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:223,1
    - Dst: types::Fd
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:224,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:225,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:226,1
    - Dst: Result::offset
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:223,1
    - Dst: Result::build
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:223,1
    - Dst: user_data
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:223,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:222,1
    - Dst: AsyncIoError::WriteVectored
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:233,1
    - Dst: Error::other
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:233,1
    - Dst: sync
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:248,1
    - Dst: submit
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:249,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:249,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_async.rs:254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 94
    argCount: 1
    argNames:
    - batch_request
    argTypes:
    - '&[BatchRequest]'
    constantsTouched: []
    func_position:
      end: 255
      start: 188
    functionDepth: 11
    functionLinenumber: 188
    functionLinenumberEnd: 255
    functionName: RawFileAsync::submit_batch_requests
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_async.rs
    functionUses: 0
    functionsReached:
    - AsyncIoError::WriteVectored
    - Result::build
    - as_ptr
    - map_err
    - submit
    - sync
    - push
    - Error::other
    - opcode::Writev::new
    - RawFileAsync::batch_requests_enabled
    - types::Fd
    - user_data
    - len
    - Result::offset
    - AsyncIoError::ReadVectored
    - split
    - opcode::Readv::new
    - Ok
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn submit_batch_requests(&mut self, batch_request: &[BatchRequest])
      -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhdFooter::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:21,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:23,1
    - Dst: Vec::current_size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 8
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: FixedVhd::new
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 2
    functionsReached:
    - Vec::current_size
    - VhdFooter::new
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(mut file: File) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: FixedVhd::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:39,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:41,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:41,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:41,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:41,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:42,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 8
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: FixedVhd::read
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::unwrap
    - Err
    - unwrap
    - u64::try_into
    - read
    - checked_add
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:51,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:53,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:53,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:53,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:53,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:54,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: FixedVhd::write
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::unwrap
    - Err
    - Ok
    - unwrap
    - u64::try_into
    - checked_add
    - write
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sync_all
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: FixedVhd::flush
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - sync_all
    linkageType: ''
    returnType: std::io::Result
    signature: fn flush(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:67,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:70,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - newpos
    argTypes:
    - SeekFrom
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: FixedVhd::seek
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - seek
    - Err
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek(&mut self, newpos: SeekFrom) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: FixedVhd::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn logical_size(&self) -> Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:84,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:84,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:86,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: FixedVhd::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - metadata
    - map
    - super::Result::len
    - map_err
    linkageType: ''
    returnType: Result
    signature: fn physical_size(&self) -> Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:94,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/fixed_vhd.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: FixedVhd::clone
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd.rs
    functionUses: 0
    functionsReached:
    - expect
    - try_clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Path::metadata'
      Src: /src/cloud-hypervisor/block/src/lib.rs:98,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:99,1
    - Dst: Error::GetFileMetadata
      Src: /src/cloud-hypervisor/block/src/lib.rs:99,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - disk_path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: build_device_id
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 1
    functionsReached:
    - Error::GetFileMetadata
    - Ok
    - '&Path::metadata'
    - Err
    linkageType: ''
    returnType: result::Result
    signature: 'fn build_device_id(disk_path: &Path) -> result::Result<String, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_device_id
      Src: /src/cloud-hypervisor/block/src/lib.rs:114,1
    - Dst: super::Result::as_bytes
      Src: /src/cloud-hypervisor/block/src/lib.rs:121,1
    - Dst: cmp::min
      Src: /src/cloud-hypervisor/block/src/lib.rs:122,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/block/src/lib.rs:122,1
    - Dst: clone_from_slice
      Src: /src/cloud-hypervisor/block/src/lib.rs:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - disk_path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: build_serial
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 2
    functionsReached:
    - build_device_id
    - clone_from_slice
    - '&[u8]::len'
    - super::Result::as_bytes
    - cmp::min
    linkageType: ''
    returnType: Vec
    signature: 'pub fn build_serial(disk_path: &Path) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 183
    functionName: ExecuteError::status
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn status(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/block/src/lib.rs:199,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:199,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:201,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:202,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:203,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:204,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:205,1
    - Dst: RequestType::Unsupported
      Src: /src/cloud-hypervisor/block/src/lib.rs:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mem
    - desc_addr
    argTypes:
    - '&vm_memory::GuestMemoryMmap<B>'
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: request_type
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::read_obj
    - RequestType::Unsupported
    - map_err
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn request_type<B: Bitmap + ''static>(mem: &vm_memory::GuestMemoryMmap<B>,desc_addr:
      GuestAddress,) -> result::Result<RequestType, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::checked_offset
      Src: /src/cloud-hypervisor/block/src/lib.rs:214,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:216,1
    - Dst: Error::CheckedOffset
      Src: /src/cloud-hypervisor/block/src/lib.rs:216,1
    - Dst: GuestMemoryMmap::read_obj
      Src: /src/cloud-hypervisor/block/src/lib.rs:219,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mem
    - desc_addr
    argTypes:
    - '&vm_memory::GuestMemoryMmap<B>'
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: sector
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::read_obj
    - map_err
    - Err
    - Error::CheckedOffset
    - GuestMemoryMmap::checked_offset
    linkageType: ''
    returnType: result::Result
    signature: 'fn sector<B: Bitmap + ''static>(mem: &vm_memory::GuestMemoryMmap<B>,desc_addr:
      GuestAddress,) -> result::Result<u64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:291,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:291,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:293,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:294,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:296,1
    - Dst: size_of::<VirtioMemReq>
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:296,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:297,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:299,1
    - Dst: Result::read_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:299,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:301,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:299,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:304,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:304,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:307,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:308,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:311,1
    - Dst: size_of::<VirtioMemResp>
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:311,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:312,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:315,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 1
    argNames:
    - desc_chain
    argTypes:
    - '&mut DescriptorChain<GuestMemoryLoadGuard<GuestMemoryMmap>>'
    constantsTouched: []
    func_position:
      end: 319
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 319
    functionName: Request::parse
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 5
    functionsReached:
    - map_err
    - addr
    - Err
    - Result::next
    - size_of::<VirtioMemReq>
    - len
    - Result::read_obj
    - Result::memory
    - size_of::<VirtioMemResp>
    - Option::ok_or
    - is_write_only
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn parse(desc_chain: &mut DescriptorChain<GuestMemoryLoadGuard<GuestMemoryMmap>>,)
      -> result::Result<Request, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ApiResult::seek
      Src: /src/cloud-hypervisor/block/src/lib.rs:354,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/lib.rs:354,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:354,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/lib.rs:358,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/lib.rs:359,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/lib.rs:362,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/lib.rs:362,1
    - Dst: ExecuteError::BadRequest
      Src: /src/cloud-hypervisor/block/src/lib.rs:364,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:366,1
    - Dst: ExecuteError::BadRequest
      Src: /src/cloud-hypervisor/block/src/lib.rs:366,1
    - Dst: ApiResult::read_exact
      Src: /src/cloud-hypervisor/block/src/lib.rs:372,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:372,1
    - Dst: GuestMemoryMmap::read_exact_volatile_from
      Src: /src/cloud-hypervisor/block/src/lib.rs:373,1
    - Dst: Self::as_slice
      Src: /src/cloud-hypervisor/block/src/lib.rs:375,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:373,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/block/src/lib.rs:382,1
    - Dst: GuestMemoryMmap::write_all_volatile_to
      Src: /src/cloud-hypervisor/block/src/lib.rs:383,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:383,1
    - Dst: ApiResult::write_all
      Src: /src/cloud-hypervisor/block/src/lib.rs:385,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:385,1
    - Dst: ApiResult::flush
      Src: /src/cloud-hypervisor/block/src/lib.rs:387,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:387,1
    - Dst: ApiResult::flush
      Src: /src/cloud-hypervisor/block/src/lib.rs:390,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:390,1
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/block/src/lib.rs:392,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:393,1
    - Dst: ExecuteError::BadRequest
      Src: /src/cloud-hypervisor/block/src/lib.rs:393,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/block/src/lib.rs:395,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:395,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:398,1
    - Dst: ExecuteError::Unsupported
      Src: /src/cloud-hypervisor/block/src/lib.rs:398,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:401,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 118
    argCount: 4
    argNames:
    - disk
    - disk_nsectors
    - mem
    - serial
    argTypes:
    - '&mut T'
    - u64
    - '&vm_memory::GuestMemoryMmap<B>'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 402
      start: 347
    functionDepth: 8
    functionLinenumber: 347
    functionLinenumberEnd: 402
    functionName: Request::execute
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - map_err
    - IoResult::map_err
    - GuestMemoryMmap::read_exact_volatile_from
    - u64::from
    - ApiResult::write_all
    - ApiResult::seek
    - ok_or
    - ApiResult::flush
    - checked_add
    - ExecuteError::Unsupported
    - Ok
    - Vec::new
    - ExecuteError::BadRequest
    - GuestMemoryMmap::write_all_volatile_to
    - std::io::Result::map_err
    - Err
    - Self::as_slice
    - ApiResult::read_exact
    - GuestMemoryMmap::write_slice
    - SeekFrom::Start
    - Vec::len
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn execute<T: Seek + Read + Write, B: Bitmap + ''static>(&self,disk:
      &mut T,disk_nsectors: u64,mem: &vm_memory::GuestMemoryMmap<B>,serial: &[u8],)
      -> result::Result<u32, ExecuteError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SmallVec::with_capacity
      Src: /src/cloud-hypervisor/block/src/lib.rs:417,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/lib.rs:417,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/lib.rs:427,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/lib.rs:428,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/lib.rs:432,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/lib.rs:432,1
    - Dst: ExecuteError::BadRequest
      Src: /src/cloud-hypervisor/block/src/lib.rs:434,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:436,1
    - Dst: ExecuteError::BadRequest
      Src: /src/cloud-hypervisor/block/src/lib.rs:436,1
    - Dst: GuestMemoryMmap::get_slice
      Src: /src/cloud-hypervisor/block/src/lib.rs:439,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:439,1
    - Dst: ptr_guard
      Src: /src/cloud-hypervisor/block/src/lib.rs:443,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/lib.rs:449,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/block/src/lib.rs:449,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/lib.rs:450,1
    - Dst: Layout::from_size_align
      Src: /src/cloud-hypervisor/block/src/lib.rs:452,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/lib.rs:452,1
    - Dst: std::alloc::alloc_zeroed
      Src: /src/cloud-hypervisor/block/src/lib.rs:454,1
    - Dst: is_null
      Src: /src/cloud-hypervisor/block/src/lib.rs:455,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:456,1
    - Dst: ExecuteError::TemporaryBufferAllocation
      Src: /src/cloud-hypervisor/block/src/lib.rs:456,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/lib.rs:457,1
    - Dst: std::ptr::copy
      Src: /src/cloud-hypervisor/block/src/lib.rs:466,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/lib.rs:466,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/lib.rs:471,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/lib.rs:472,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/lib.rs:485,1
    - Dst: GuestMemoryMmap::get_slice
      Src: /src/cloud-hypervisor/block/src/lib.rs:496,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:496,1
    - Dst: bitmap
      Src: /src/cloud-hypervisor/block/src/lib.rs:496,1
    - Dst: mark_dirty
      Src: /src/cloud-hypervisor/block/src/lib.rs:496,1
    - Dst: '&mut dyn AsyncIo::batch_requests_enabled'
      Src: /src/cloud-hypervisor/block/src/lib.rs:501,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/lib.rs:502,1
    - Dst: '&mut dyn AsyncIo::read_vectored'
      Src: /src/cloud-hypervisor/block/src/lib.rs:509,1
    - Dst: AsyncIoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:509,1
    - Dst: '&mut dyn AsyncIo::batch_requests_enabled'
      Src: /src/cloud-hypervisor/block/src/lib.rs:515,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/lib.rs:516,1
    - Dst: '&mut dyn AsyncIo::write_vectored'
      Src: /src/cloud-hypervisor/block/src/lib.rs:523,1
    - Dst: AsyncIoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:523,1
    - Dst: '&mut dyn AsyncIo::fsync'
      Src: /src/cloud-hypervisor/block/src/lib.rs:529,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/lib.rs:530,1
    - Dst: AsyncIoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:529,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/lib.rs:534,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:537,1
    - Dst: ExecuteError::BadRequest
      Src: /src/cloud-hypervisor/block/src/lib.rs:537,1
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/block/src/lib.rs:539,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:540,1
    - Dst: ExecuteError::BadRequest
      Src: /src/cloud-hypervisor/block/src/lib.rs:540,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/block/src/lib.rs:542,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:542,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:545,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:547,1
    - Dst: ExecuteError::Unsupported
      Src: /src/cloud-hypervisor/block/src/lib.rs:547,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:550,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 200
    argCount: 5
    argNames:
    - mem
    - disk_nsectors
    - disk_image
    - serial
    - user_data
    argTypes:
    - '&vm_memory::GuestMemoryMmap<B>'
    - u64
    - '&mut dyn AsyncIo'
    - '&[u8]'
    - u64
    constantsTouched: []
    func_position:
      end: 551
      start: 404
    functionDepth: 14
    functionLinenumber: 404
    functionLinenumberEnd: 551
    functionName: Request::execute_async
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut dyn AsyncIo::fsync'
    - map_err
    - push
    - '&mut dyn AsyncIo::write_vectored'
    - u64::from
    - ok_or
    - io::Error::last_os_error
    - checked_add
    - ExecuteError::Unsupported
    - Ok
    - AsyncIoResult::map_err
    - is_multiple_of
    - is_null
    - ExecuteError::BadRequest
    - SmallVec::with_capacity
    - GuestMemoryMmap::get_slice
    - len
    - std::ptr::copy
    - ptr_guard
    - Layout::from_size_align
    - as_ptr
    - std::alloc::alloc_zeroed
    - Err
    - unwrap
    - '&mut dyn AsyncIo::read_vectored'
    - bitmap
    - mark_dirty
    - ExecuteError::TemporaryBufferAllocation
    - GuestMemoryMmap::write_slice
    - '&mut dyn AsyncIo::batch_requests_enabled'
    - Vec::len
    - Some
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn execute_async<B: Bitmap + ''static>(&mut self,mem: &vm_memory::GuestMemoryMmap<B>,disk_nsectors:
      u64,disk_image: &mut dyn AsyncIo,serial: &[u8],user_data: u64,) -> result::Result<ExecuteAsync,
      ExecuteError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: drain
      Src: /src/cloud-hypervisor/block/src/lib.rs:554,1
    - Dst: std::ptr::copy
      Src: /src/cloud-hypervisor/block/src/lib.rs:561,1
    - Dst: std::alloc::dealloc
      Src: /src/cloud-hypervisor/block/src/lib.rs:573,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 581
    functionName: Request::complete_async
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - drain
    - std::alloc::dealloc
    - Ok
    - std::ptr::copy
    linkageType: ''
    returnType: result::Result
    signature: pub fn complete_async(&mut self) -> result::Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - writeback
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: Request::set_writeback
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_writeback(&mut self, writeback: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aio::IoContext::new
      Src: /src/cloud-hypervisor/block/src/lib.rs:626,1
    - Dst: Result::is_ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 627
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 627
    functionName: block_aio_is_supported
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 1
    functionsReached:
    - Result::is_ok
    - aio::IoContext::new
    linkageType: ''
    returnType: bool
    signature: pub fn block_aio_is_supported() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IoUring::new
      Src: /src/cloud-hypervisor/block/src/lib.rs:644,1
    - Dst: submitter
      Src: /src/cloud-hypervisor/block/src/lib.rs:652,1
    - Dst: Probe::new
      Src: /src/cloud-hypervisor/block/src/lib.rs:654,1
    - Dst: register_probe
      Src: /src/cloud-hypervisor/block/src/lib.rs:657,1
    - Dst: std::io::Result::is_supported
      Src: /src/cloud-hypervisor/block/src/lib.rs:666,1
    - Dst: std::io::Result::is_supported
      Src: /src/cloud-hypervisor/block/src/lib.rs:672,1
    - Dst: std::io::Result::is_supported
      Src: /src/cloud-hypervisor/block/src/lib.rs:678,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 685
      start: 631
    functionDepth: 5
    functionLinenumber: 631
    functionLinenumberEnd: 685
    functionName: block_io_uring_is_supported
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 1
    functionsReached:
    - IoUring::new
    - submitter
    - std::io::Result::is_supported
    - Probe::new
    - register_probe
    linkageType: ''
    returnType: bool
    signature: pub fn block_io_uring_is_supported() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SmallVec::with_capacity
      Src: /src/cloud-hypervisor/block/src/lib.rs:701,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/lib.rs:701,1
    - Dst: '&[libc::iovec]::iter'
      Src: /src/cloud-hypervisor/block/src/lib.rs:702,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/lib.rs:704,1
    - Dst: IoSliceMut::new
      Src: /src/cloud-hypervisor/block/src/lib.rs:704,1
    - Dst: std::mem::transmute::<libc::iovec, &mut [u8]>
      Src: /src/cloud-hypervisor/block/src/lib.rs:705,1
    - Dst: AsyncAdaptor::seek
      Src: /src/cloud-hypervisor/block/src/lib.rs:711,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/lib.rs:711,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:711,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/block/src/lib.rs:715,1
    - Dst: AsyncAdaptor::read
      Src: /src/cloud-hypervisor/block/src/lib.rs:716,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:716,1
    - Dst: '&mut VecDeque<(u64, i32)>::push_back'
      Src: /src/cloud-hypervisor/block/src/lib.rs:721,1
    - Dst: '&EventFd::write'
      Src: /src/cloud-hypervisor/block/src/lib.rs:722,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/block/src/lib.rs:722,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 5
    argNames:
    - offset
    - iovecs
    - user_data
    - eventfd
    - completion_list
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    - '&EventFd'
    - '&mut VecDeque<(u64, i32)>'
    constantsTouched: []
    func_position:
      end: 725
      start: 688
    functionDepth: 8
    functionLinenumber: 688
    functionLinenumberEnd: 725
    functionName: AsyncAdaptor::read_vectored_sync
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - AsyncAdaptor::seek
    - '&mut VecDeque<(u64, i32)>::push_back'
    - IoResult::map_err
    - std::io::Result::map_err
    - push
    - '&[libc::iovec]::iter'
    - SmallVec::with_capacity
    - '&[libc::iovec]::len'
    - std::mem::transmute::<libc::iovec, &mut [u8]>
    - SeekFrom::Start
    - IoResult::unwrap
    - Ok
    - IoSliceMut::new
    - '&EventFd::write'
    - AsyncAdaptor::read
    - iter_mut
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored_sync(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,eventfd: &EventFd,completion_list: &mut VecDeque<(u64, i32)>,) -> AsyncIoResult<()>whereSelf:
      Read + Seek,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SmallVec::with_capacity
      Src: /src/cloud-hypervisor/block/src/lib.rs:740,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/lib.rs:740,1
    - Dst: '&[libc::iovec]::iter'
      Src: /src/cloud-hypervisor/block/src/lib.rs:741,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/lib.rs:743,1
    - Dst: IoSlice::new
      Src: /src/cloud-hypervisor/block/src/lib.rs:743,1
    - Dst: std::mem::transmute::<libc::iovec, &mut [u8]>
      Src: /src/cloud-hypervisor/block/src/lib.rs:744,1
    - Dst: AsyncAdaptor::seek
      Src: /src/cloud-hypervisor/block/src/lib.rs:750,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/lib.rs:750,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:750,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/lib.rs:754,1
    - Dst: AsyncAdaptor::write
      Src: /src/cloud-hypervisor/block/src/lib.rs:755,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:755,1
    - Dst: '&mut VecDeque<(u64, i32)>::push_back'
      Src: /src/cloud-hypervisor/block/src/lib.rs:760,1
    - Dst: '&EventFd::write'
      Src: /src/cloud-hypervisor/block/src/lib.rs:761,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/block/src/lib.rs:761,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:763,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 5
    argNames:
    - offset
    - iovecs
    - user_data
    - eventfd
    - completion_list
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    - '&EventFd'
    - '&mut VecDeque<(u64, i32)>'
    constantsTouched: []
    func_position:
      end: 764
      start: 727
    functionDepth: 8
    functionLinenumber: 727
    functionLinenumberEnd: 764
    functionName: AsyncAdaptor::write_vectored_sync
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - AsyncAdaptor::seek
    - iter
    - AsyncAdaptor::write
    - IoResult::map_err
    - std::io::Result::map_err
    - push
    - IoSlice::new
    - '&[libc::iovec]::iter'
    - SmallVec::with_capacity
    - '&[libc::iovec]::len'
    - std::mem::transmute::<libc::iovec, &mut [u8]>
    - SeekFrom::Start
    - IoResult::unwrap
    - Ok
    - '&EventFd::write'
    - '&mut VecDeque<(u64, i32)>::push_back'
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored_sync(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,eventfd: &EventFd,completion_list: &mut VecDeque<(u64, i32)>,) -> AsyncIoResult<()>whereSelf:
      Write + Seek,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncAdaptor::flush
      Src: /src/cloud-hypervisor/block/src/lib.rs:777,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/lib.rs:777,1
    - Dst: '&mut VecDeque<(u64, i32)>::push_back'
      Src: /src/cloud-hypervisor/block/src/lib.rs:783,1
    - Dst: '&EventFd::write'
      Src: /src/cloud-hypervisor/block/src/lib.rs:784,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/block/src/lib.rs:784,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - user_data
    - eventfd
    - completion_list
    argTypes:
    - Option<u64>
    - '&EventFd'
    - '&mut VecDeque<(u64, i32)>'
    constantsTouched: []
    func_position:
      end: 788
      start: 766
    functionDepth: 9
    functionLinenumber: 766
    functionLinenumberEnd: 788
    functionName: AsyncAdaptor::fsync_sync
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - AsyncAdaptor::flush
    - IoResult::map_err
    - IoResult::unwrap
    - Ok
    - '&EventFd::write'
    - '&mut VecDeque<(u64, i32)>::push_back'
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync_sync(&mut self,user_data: Option<u64>,eventfd: &EventFd,completion_list:
      &mut VecDeque<(u64, i32)>,) -> AsyncIoResult<()>whereSelf: Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskTopology::probe
      Src: /src/cloud-hypervisor/block/src/lib.rs:803,1
    - Dst: Vec::from_raw_parts
      Src: /src/cloud-hypervisor/block/src/lib.rs:808,1
    - Dst: std::alloc::alloc_zeroed
      Src: /src/cloud-hypervisor/block/src/lib.rs:809,1
    - Dst: Layout::from_size_align_unchecked
      Src: /src/cloud-hypervisor/block/src/lib.rs:809,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/lib.rs:814,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 816
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 816
    functionName: read_aligned_block_size
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 1
    functionsReached:
    - std::alloc::alloc_zeroed
    - Result::read_exact
    - DiskTopology::probe
    - Layout::from_size_align_unchecked
    - Vec::from_raw_parts
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn read_aligned_block_size(f: &mut File) -> std::io::Result<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::stream_position
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1953,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1953,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1954,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1954,1
    - Dst: read_u32::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1955,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1955,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1961,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1961,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1961,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1963,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut RawFile'
    constantsTouched: []
    func_position:
      end: 1964
      start: 1952
    functionDepth: 2
    functionLinenumber: 1952
    functionLinenumberEnd: 1964
    functionName: detect_image_type
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 3
    functionsReached:
    - read_u32::<BigEndian>
    - map_err
    - std::io::Result::map_err
    - SeekFrom::Start
    - Ok
    - Vec::seek
    - Vec::rewind
    - Vec::stream_position
    linkageType: ''
    returnType: Result
    signature: 'pub fn detect_image_type(file: &mut RawFile) -> Result<ImageType>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 863
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 863
    functionName: DiskTopology::default
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::MaybeUninit::<libc::stat>::uninit
      Src: /src/cloud-hypervisor/block/src/lib.rs:881,1
    - Dst: libc::fstat
      Src: /src/cloud-hypervisor/block/src/lib.rs:883,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/block/src/lib.rs:883,1
    - Dst: as_mut_ptr
      Src: /src/cloud-hypervisor/block/src/lib.rs:883,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:885,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/lib.rs:885,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/lib.rs:889,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&File'
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: DiskTopology::is_block_device
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - std::mem::MaybeUninit::<libc::stat>::uninit
    - std::io::Error::last_os_error
    - libc::fstat
    - Err
    - as_mut_ptr
    - Result::as_raw_fd
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn is_block_device(f: &File) -> std::io::Result<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::ioctl
      Src: /src/cloud-hypervisor/block/src/lib.rs:898,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/block/src/lib.rs:899,1
    - Dst: BLKSSZGET
      Src: /src/cloud-hypervisor/block/src/lib.rs:901,1
    - Dst: BLKPBSZGET
      Src: /src/cloud-hypervisor/block/src/lib.rs:902,1
    - Dst: BLKIOMIN
      Src: /src/cloud-hypervisor/block/src/lib.rs:903,1
    - Dst: BLKIOOPT
      Src: /src/cloud-hypervisor/block/src/lib.rs:904,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/lib.rs:910,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/lib.rs:910,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - f
    - block_size_type
    argTypes:
    - '&File'
    - BlockSize
    constantsTouched: []
    func_position:
      end: 914
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 914
    functionName: DiskTopology::query_block_size
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 0
    functionsReached:
    - BLKIOOPT
    - std::io::Error::last_os_error
    - BLKPBSZGET
    - libc::ioctl
    - Err
    - BLKIOMIN
    - BLKSSZGET
    - Result::as_raw_fd
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn query_block_size(f: &File, block_size_type: BlockSize) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::is_block_device
      Src: /src/cloud-hypervisor/block/src/lib.rs:917,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:918,1
    - Dst: DiskTopology::default
      Src: /src/cloud-hypervisor/block/src/lib.rs:918,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/lib.rs:921,1
    - Dst: Self::query_block_size
      Src: /src/cloud-hypervisor/block/src/lib.rs:922,1
    - Dst: Self::query_block_size
      Src: /src/cloud-hypervisor/block/src/lib.rs:923,1
    - Dst: Self::query_block_size
      Src: /src/cloud-hypervisor/block/src/lib.rs:924,1
    - Dst: Self::query_block_size
      Src: /src/cloud-hypervisor/block/src/lib.rs:925,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&File'
    constantsTouched: []
    func_position:
      end: 927
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 927
    functionName: DiskTopology::probe
    functionSourceFile: /src/cloud-hypervisor/block/src/lib.rs
    functionUses: 5
    functionsReached:
    - Self::query_block_size
    - DiskTopology::default
    - Self::is_block_device
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn probe(f: &File) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:21,1
    - Dst: Self
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:21,1
    - Dst: FixedVhd::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: FixedVhdDiskSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 1
    functionsReached:
    - FixedVhd::new
    - Self
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(file: File) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:27,1
    - Dst: logical_size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:27,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: FixedVhdDiskSync::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - logical_size
    - unwrap
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: fn logical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: physical_size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:31,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:31,1
    - Dst: DiskFileError::Size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: FixedVhdDiskSync::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - physical_size
    - DiskFileError::Size
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn physical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:41,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:41,1
    - Dst: FixedVhdSync::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:42,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:42,1
    - Dst: logical_size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:42,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:42,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - _ring_depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: FixedVhdDiskSync::new_async_io
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::map_err
    - Box::new
    - FixedVhdSync::new
    - unwrap
    - as_raw_fd
    - logical_size
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn new_async_io(&self, _ring_depth: u32) -> DiskFileResult<Box<dyn
      AsyncIo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BorrowedDiskFd::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:48,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: FixedVhdDiskSync::fd
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - BorrowedDiskFd::new
    linkageType: ''
    returnType: BorrowedDiskFd
    signature: fn fd(&mut self) -> BorrowedDiskFd<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:59,1
    - Dst: RawFileSync::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - size
    argTypes:
    - RawFd
    - u64
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: FixedVhdSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 1
    functionsReached:
    - RawFileSync::new
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(fd: RawFd, size: u64) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notifier
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: FixedVhdSync::notifier
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - notifier
    linkageType: ''
    returnType: '&EventFd'
    signature: fn notifier(&self) -> &EventFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:78,1
    - Dst: AsyncIoError::ReadVectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:78,1
    - Dst: std::io::Error::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:78,1
    - Dst: read_vectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 14
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: FixedVhdSync::read_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - read_vectored
    - AsyncIoError::ReadVectored
    - std::io::Error::new
    - Err
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:97,1
    - Dst: AsyncIoError::WriteVectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:97,1
    - Dst: std::io::Error::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:97,1
    - Dst: write_vectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 107
      start: 90
    functionDepth: 14
    functionLinenumber: 90
    functionLinenumberEnd: 107
    functionName: FixedVhdSync::write_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - AsyncIoError::WriteVectored
    - std::io::Error::new
    - write_vectored
    - Err
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 14
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: FixedVhdSync::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - fsync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_completed_request
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: FixedVhdSync::next_completed_request
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
    functionUses: 0
    functionsReached:
    - next_completed_request
    linkageType: ''
    returnType: Option
    signature: fn next_completed_request(&mut self) -> Option<(u64, i32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:49,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - arg
    argTypes:
    - RawFd
    - FcntlArg
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: fcntl
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 13
    functionsReached:
    - libc::fcntl
    linkageType: ''
    returnType: libc::c_int
    signature: 'fn fcntl(fd: RawFd, arg: FcntlArg) -> libc::c_int'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: LockType::to_libc_val
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: libc::c_int
    signature: pub const fn to_libc_val(self) -> libc::c_int
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - libc::c_int
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: LockState::new
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(value: libc::c_int) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: LockGranularity::l_start
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: const fn l_start(self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: LockGranularity::l_len
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: const fn l_len(self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LockType::to_libc_val
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:146,1
    - Dst: u8::l_start
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:148,1
    - Dst: u8::l_len
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - lock_type
    - granularity
    argTypes:
    - LockType
    - LockGranularity
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: get_flock
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 2
    functionsReached:
    - LockType::to_libc_val
    - u8::l_len
    - u8::l_start
    linkageType: ''
    returnType: libc::flock
    signature: 'const fn get_flock(lock_type: LockType, granularity: LockGranularity)
      -> libc::flock'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_flock
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:170,1
    - Dst: fcntl
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:172,1
    - Dst: Vec::as_raw_fd
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:172,1
    - Dst: FcntlArg::F_OFD_SETLK
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:172,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:174,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:176,1
    - Dst: raw_os_error
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:177,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:177,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:181,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:182,1
    - Dst: LockError::Io
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - file
    - lock_type
    - granularity
    argTypes:
    - '&Fd'
    - LockType
    - LockGranularity
    constantsTouched: []
    func_position:
      end: 187
      start: 165
    functionDepth: 10
    functionLinenumber: 165
    functionLinenumberEnd: 187
    functionName: try_acquire_lock
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 2
    functionsReached:
    - fcntl
    - LockError::Io
    - Vec::as_raw_fd
    - raw_os_error
    - Err
    - FcntlArg::F_OFD_SETLK
    - get_flock
    - unwrap
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn try_acquire_lock<Fd: AsRawFd>(file: &Fd,lock_type: LockType,granularity:
      LockGranularity,) -> Result<(), LockError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_acquire_lock
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - granularity
    argTypes:
    - '&Fd'
    - LockGranularity
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 11
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: clear_lock
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 1
    functionsReached:
    - try_acquire_lock
    linkageType: ''
    returnType: Result
    signature: 'pub fn clear_lock<Fd: AsRawFd>(file: &Fd, granularity: LockGranularity)
      -> Result<(), LockError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_flock
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:208,1
    - Dst: fcntl
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:209,1
    - Dst: Vec::as_raw_fd
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:209,1
    - Dst: FcntlArg::F_OFD_GETLK
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:209,1
    - Dst: LockState::new
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:213,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:214,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:217,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:218,1
    - Dst: LockError::Io
      Src: /src/cloud-hypervisor/block/src/fcntl.rs:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - file
    - granularity
    argTypes:
    - '&Fd'
    - LockGranularity
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: get_lock_state
    functionSourceFile: /src/cloud-hypervisor/block/src/fcntl.rs
    functionUses: 1
    functionsReached:
    - fcntl
    - LockError::Io
    - Vec::as_raw_fd
    - LockState::new
    - Err
    - get_flock
    - FcntlArg::F_OFD_GETLK
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_lock_state<Fd: AsRawFd>(file: &Fd,granularity: LockGranularity,)
      -> Result<LockState, LockError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:24,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:25,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - file
    - direct_io
    argTypes:
    - File
    - bool
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 10
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: QcowDiskSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 1
    functionsReached:
    - QcowFile::from
    - RawFile::new
    - Ok
    linkageType: ''
    returnType: QcowResult
    signature: 'pub fn new(file: File, direct_io: bool) -> QcowResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:32,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:33,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: QcowDiskSync::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::End
    - seek
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn logical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: physical_size
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:38,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:38,1
    - Dst: DiskFileError::Size
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: QcowDiskSync::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - physical_size
    - DiskFileError::Size
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn physical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:48,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:48,1
    - Dst: QcowSync::new
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:48,1
    - Dst: clone
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - _ring_depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: QcowDiskSync::new_async_io
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - QcowSync::new
    - Box::new
    - clone
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn new_async_io(&self, _ring_depth: u32) -> DiskFileResult<Box<dyn
      AsyncIo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BorrowedDiskFd::new
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:52,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: QcowDiskSync::fd
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - BorrowedDiskFd::new
    linkageType: ''
    returnType: BorrowedDiskFd
    signature: fn fd(&mut self) -> BorrowedDiskFd<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:66,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:66,1
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - qcow_file
    argTypes:
    - QcowFile
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: QcowSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 1
    functionsReached:
    - VecDeque::new
    - EventFd::new
    - Result::expect
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(qcow_file: QcowFile) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: QcowSync::notifier
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&EventFd'
    signature: fn notifier(&self) -> &EventFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_vectored_sync
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 9
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: QcowSync::read_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - read_vectored_sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_vectored_sync
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 9
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: QcowSync::write_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - write_vectored_sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsync_sync
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 10
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: QcowSync::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - fsync_sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_front
      Src: /src/cloud-hypervisor/block/src/qcow_sync.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: QcowSync::next_completed_request
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow_sync.rs
    functionUses: 0
    functionsReached:
    - pop_front
    linkageType: ''
    returnType: Option
    signature: fn next_completed_request(&mut self) -> Option<(u64, i32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - raw_fd
    argTypes:
    - RawFd
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: BorrowedDiskFd::new
    functionSourceFile: /src/cloud-hypervisor/block/src/async_io.rs
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn new(raw_fd: RawFd) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: BorrowedDiskFd::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/block/src/async_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskTopology::default
      Src: /src/cloud-hypervisor/block/src/async_io.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: DiskFile::topology
    functionSourceFile: /src/cloud-hypervisor/block/src/async_io.rs
    functionUses: 0
    functionsReached:
    - DiskTopology::default
    linkageType: ''
    returnType: DiskTopology
    signature: fn topology(&mut self) -> DiskTopology
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/async_io.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: DiskFile::resize
    functionSourceFile: /src/cloud-hypervisor/block/src/async_io.rs
    functionUses: 0
    functionsReached:
    - Err
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn resize(&mut self, _size: u64) -> DiskFileResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: AsyncIo::batch_requests_enabled
    functionSourceFile: /src/cloud-hypervisor/block/src/async_io.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn batch_requests_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/async_io.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _batch_request
    argTypes:
    - '&[BatchRequest]'
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: AsyncIo::submit_batch_requests
    functionSourceFile: /src/cloud-hypervisor/block/src/async_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn submit_batch_requests(&mut self, _batch_request: &[BatchRequest])
      -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:21,1
    - Dst: Self
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:21,1
    - Dst: FixedVhd::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: FixedVhdDiskAsync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 1
    functionsReached:
    - FixedVhd::new
    - Self
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(file: File) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:27,1
    - Dst: logical_size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:27,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: FixedVhdDiskAsync::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - logical_size
    - unwrap
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: fn logical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:31,1
    - Dst: physical_size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:31,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: FixedVhdDiskAsync::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - physical_size
    - unwrap
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: fn physical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:35,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:35,1
    - Dst: FixedVhdAsync::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:36,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:37,1
    - Dst: logical_size
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:39,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:39,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ring_depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: FixedVhdDiskAsync::new_async_io
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - FixedVhdAsync::new
    - std::io::Result::map_err
    - Box::new
    - unwrap
    - as_raw_fd
    - logical_size
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn new_async_io(&self, ring_depth: u32) -> DiskFileResult<Box<dyn
      AsyncIo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BorrowedDiskFd::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:46,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: FixedVhdDiskAsync::fd
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - BorrowedDiskFd::new
    linkageType: ''
    returnType: BorrowedDiskFd
    signature: fn fd(&mut self) -> BorrowedDiskFd<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawFileAsync::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:57,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - ring_depth
    - size
    argTypes:
    - RawFd
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 6
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: FixedVhdAsync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 1
    functionsReached:
    - RawFileAsync::new
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(fd: RawFd, ring_depth: u32, size: u64) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notifier
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: FixedVhdAsync::notifier
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - notifier
    linkageType: ''
    returnType: '&EventFd'
    signature: fn notifier(&self) -> &EventFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:78,1
    - Dst: AsyncIoError::ReadVectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:78,1
    - Dst: std::io::Error::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:78,1
    - Dst: read_vectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 14
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: FixedVhdAsync::read_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - read_vectored
    - AsyncIoError::ReadVectored
    - std::io::Error::new
    - Err
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:97,1
    - Dst: AsyncIoError::WriteVectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:97,1
    - Dst: std::io::Error::new
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:97,1
    - Dst: write_vectored
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 14
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: FixedVhdAsync::write_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - AsyncIoError::WriteVectored
    - std::io::Error::new
    - write_vectored
    - Err
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 14
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: FixedVhdAsync::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - fsync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_completed_request
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: FixedVhdAsync::next_completed_request
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - next_completed_request
    linkageType: ''
    returnType: Option
    signature: fn next_completed_request(&mut self) -> Option<(u64, i32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: FixedVhdAsync::batch_requests_enabled
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn batch_requests_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: submit_batch_requests
      Src: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - batch_request
    argTypes:
    - '&[BatchRequest]'
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 12
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: FixedVhdAsync::submit_batch_requests
    functionSourceFile: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
    functionUses: 0
    functionsReached:
    - submit_batch_requests
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn submit_batch_requests(&mut self, batch_request: &[BatchRequest])
      -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:23,1
    - Dst: Vhdx::new
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 10
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: VhdxDiskSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 1
    functionsReached:
    - Vhdx::new
    - Ok
    linkageType: ''
    returnType: VhdxResult
    signature: 'pub fn new(f: File) -> VhdxResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:31,1
    - Dst: virtual_disk_size
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: VhdxDiskSync::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - virtual_disk_size
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: fn logical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: physical_size
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:35,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:35,1
    - Dst: DiskFileError::Size
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: VhdxDiskSync::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - physical_size
    - DiskFileError::Size
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn physical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:45,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:46,1
    - Dst: VhdxSync::new
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:46,1
    - Dst: clone
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:46,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - _ring_depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: VhdxDiskSync::new_async_io
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - VhdxSync::new
    - std::io::Result::map_err
    - Box::new
    - clone
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn new_async_io(&self, _ring_depth: u32) -> DiskFileResult<Box<dyn
      AsyncIo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BorrowedDiskFd::new
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:52,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: VhdxDiskSync::fd
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - BorrowedDiskFd::new
    linkageType: ''
    returnType: BorrowedDiskFd
    signature: fn fd(&mut self) -> BorrowedDiskFd<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:64,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:66,1
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vhdx_file
    argTypes:
    - Vhdx
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: VhdxSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 1
    functionsReached:
    - EventFd::new
    - VecDeque::new
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn new(vhdx_file: Vhdx) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: VhdxSync::notifier
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&EventFd'
    signature: fn notifier(&self) -> &EventFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_vectored_sync
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 9
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: VhdxSync::read_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - read_vectored_sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_vectored_sync
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 9
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: VhdxSync::write_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - write_vectored_sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsync_sync
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 10
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: VhdxSync::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - fsync_sync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_front
      Src: /src/cloud-hypervisor/block/src/vhdx_sync.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: VhdxSync::next_completed_request
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx_sync.rs
    functionUses: 0
    functionsReached:
    - pop_front
    linkageType: ''
    returnType: Option
    signature: fn next_completed_request(&mut self) -> Option<(u64, i32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: RawFileDiskSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(file: File) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:30,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:31,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: RawFileDiskSync::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::End
    - seek
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn logical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:36,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:36,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:38,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: RawFileDiskSync::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - metadata
    - map
    - super::Result::len
    - map_err
    linkageType: ''
    returnType: DiskFileResult
    signature: fn physical_size(&mut self) -> DiskFileResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:43,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:43,1
    - Dst: RawFileSync::new
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:43,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - _ring_depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: RawFileDiskSync::new_async_io
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - Box::new
    - RawFileSync::new
    - Ok
    linkageType: ''
    returnType: DiskFileResult
    signature: 'fn new_async_io(&self, _ring_depth: u32) -> DiskFileResult<Box<dyn
      AsyncIo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskTopology::probe
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:47,1
    - Dst: DiskTopology::default
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: RawFileDiskSync::topology
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - DiskTopology::default
    - DiskTopology::probe
    linkageType: ''
    returnType: DiskTopology
    signature: fn topology(&mut self) -> DiskTopology
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BorrowedDiskFd::new
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:56,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: RawFileDiskSync::fd
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    - BorrowedDiskFd::new
    linkageType: ''
    returnType: BorrowedDiskFd
    signature: fn fd(&mut self) -> BorrowedDiskFd<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:70,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:70,1
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - RawFd
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: RawFileSync::new
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 2
    functionsReached:
    - VecDeque::new
    - EventFd::new
    - Result::expect
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(fd: RawFd) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: RawFileSync::notifier
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&EventFd'
    signature: fn notifier(&self) -> &EventFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::preadv
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:89,1
    - Dst: '&[libc::iovec]::as_ptr'
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:91,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:92,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:97,1
    - Dst: AsyncIoError::ReadVectored
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:97,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:97,1
    - Dst: push_back
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:100,1
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:101,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:101,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: RawFileSync::read_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - libc::preadv
    - std::io::Error::last_os_error
    - Err
    - push_back
    - '&[libc::iovec]::as_ptr'
    - '&[libc::iovec]::len'
    - Ok
    - unwrap
    - AsyncIoError::ReadVectored
    - write
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn read_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::pwritev
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:114,1
    - Dst: '&[libc::iovec]::as_ptr'
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:116,1
    - Dst: '&[libc::iovec]::len'
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:117,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:122,1
    - Dst: AsyncIoError::WriteVectored
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:122,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:122,1
    - Dst: push_back
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:125,1
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:126,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:126,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 3
    argNames:
    - offset
    - iovecs
    - user_data
    argTypes:
    - libc::off_t
    - '&[libc::iovec]'
    - u64
    constantsTouched: []
    func_position:
      end: 129
      start: 106
    functionDepth: 8
    functionLinenumber: 106
    functionLinenumberEnd: 129
    functionName: RawFileSync::write_vectored
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - AsyncIoError::WriteVectored
    - std::io::Error::last_os_error
    - Err
    - push_back
    - '&[libc::iovec]::as_ptr'
    - '&[libc::iovec]::len'
    - Ok
    - libc::pwritev
    - unwrap
    - write
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn write_vectored(&mut self,offset: libc::off_t,iovecs: &[libc::iovec],user_data:
      u64,) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::fsync
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:133,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:135,1
    - Dst: AsyncIoError::Fsync
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:135,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:135,1
    - Dst: push_back
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:139,1
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:140,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:140,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 144
      start: 131
    functionDepth: 14
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: RawFileSync::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::last_os_error
    - AsyncIoError::Fsync
    - Err
    - push_back
    - Ok
    - unwrap
    - write
    - libc::fsync
    linkageType: ''
    returnType: AsyncIoResult
    signature: 'fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_front
      Src: /src/cloud-hypervisor/block/src/raw_sync.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: RawFileSync::next_completed_request
    functionSourceFile: /src/cloud-hypervisor/block/src/raw_sync.rs
    functionUses: 0
    functionsReached:
    - pop_front
    linkageType: ''
    returnType: Option
    signature: fn next_completed_request(&mut self) -> Option<(u64, i32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:98,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:98,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:98,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:100,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:100,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:104,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: FileTypeIdentifier::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - map_err
    - read_u64::<LittleEndian>
    - std::io::Result::map_err
    - Err
    - Result::seek
    - SeekFrom::Start
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(f: &mut File) -> Result<FileTypeIdentifier>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:132,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:132,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:132,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:134,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:134,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:138,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:140,1
    - Dst: calculate_checksum
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:143,1
    - Dst: size_of::<u32>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:143,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:145,1
    - Dst: VhdxHeaderError::InvalidChecksum
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:145,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:145,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 2
    argNames:
    - f
    - start
    argTypes:
    - '&mut File'
    - u64
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: Header::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 9
    functionsReached:
    - as_ptr
    - map_err
    - std::io::Result::map_err
    - Result::read_exact
    - Err
    - Result::seek
    - SeekFrom::Start
    - calculate_checksum
    - size_of::<u32>
    - VhdxHeaderError::InvalidChecksum
    - String::from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(f: &mut File, start: u64) -> Result<Header>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::slice::from_raw_parts
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:155,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:157,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&mut [u8; HEADER_SIZE as usize]'
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 7
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: Header::write_to_buffer
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - try_into
    - std::slice::from_raw_parts
    linkageType: ''
    returnType: void
    signature: 'fn write_to_buffer(&self, buffer: &mut [u8; HEADER_SIZE as usize])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Uuid::new_v4
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:172,1
    - Dst: as_u128
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:172,1
    - Dst: write_to_buffer
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:192,1
    - Dst: calculate_checksum
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:193,1
    - Dst: size_of::<u32>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:193,1
    - Dst: write_to_buffer
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:194,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:196,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:196,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:196,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:198,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:198,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 5
    argNames:
    - f
    - current_header
    - change_data_guid
    - file_write_guid
    - start
    argTypes:
    - '&mut File'
    - '&Header'
    - bool
    - u128
    - u64
    constantsTouched: []
    func_position:
      end: 201
      start: 161
    functionDepth: 8
    functionLinenumber: 161
    functionLinenumberEnd: 201
    functionName: Header::update_header
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 2
    functionsReached:
    - Uuid::new_v4
    - as_u128
    - write_to_buffer
    - Result::write
    - IoResult::map_err
    - std::io::Result::map_err
    - Result::seek
    - calculate_checksum
    - size_of::<u32>
    - SeekFrom::Start
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_header(f: &mut File,current_header: &Header,change_data_guid:
      bool,mut file_write_guid: u128,start: u64,) -> Result<Header>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:219,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:219,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:219,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:221,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:221,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:225,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:227,1
    - Dst: calculate_checksum
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:230,1
    - Dst: size_of::<u32>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:230,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:232,1
    - Dst: VhdxHeaderError::InvalidChecksum
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:232,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:232,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:236,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:240,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 2
    argNames:
    - f
    - start
    argTypes:
    - '&mut File'
    - u64
    constantsTouched: []
    func_position:
      end: 244
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 244
    functionName: RegionTableHeader::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - as_ptr
    - map_err
    - std::io::Result::map_err
    - Result::read_exact
    - Err
    - Result::seek
    - SeekFrom::Start
    - calculate_checksum
    - size_of::<u32>
    - VhdxHeaderError::InvalidChecksum
    - String::from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(f: &mut File, start: u64) -> Result<RegionTableHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:261,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:265,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:265,1
    - Dst: size_of::<RegionTableHeader>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:266,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:265,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:269,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:269,1
    - Dst: RegionTableEntry::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:274,1
    - Dst: size_of::<RegionTableEntry>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:274,1
    - Dst: size_of::<RegionTableEntry>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:276,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:280,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:282,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:286,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:288,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:288,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:289,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:290,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:293,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:296,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:296,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:297,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:298,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:301,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:307,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:311,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:311,1
    - Dst: Result::clear
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:312,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:313,1
    - Dst: None::unwrap
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:318,1
    - Dst: None::unwrap
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:319,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:321,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 130
    argCount: 3
    argNames:
    - f
    - region_start
    - entry_count
    argTypes:
    - '&mut File'
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 326
      start: 256
    functionDepth: 8
    functionLinenumber: 256
    functionLinenumberEnd: 326
    functionName: RegionInfo::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - Uuid::parse_str
    - map_err
    - None::unwrap
    - size_of::<RegionTableHeader>
    - Ok
    - RegionTableEntry::new
    - Result::clear
    - Result::read_exact
    - std::io::Result::map_err
    - Err
    - Result::iter
    - None::is_none
    - size_of::<RegionTableEntry>
    - Result::seek
    - BTreeMap::new
    - SeekFrom::Start
    - Result::map_err
    - Some
    - Result::insert
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(f: &mut File, region_start: u64, entry_count: u32) -> Result<RegionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:343,1
    - Dst: crate::vhdx::uuid_from_guid
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:345,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: RegionTableEntry::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - as_ptr
    - crate::vhdx::uuid_from_guid
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(buffer: &[u8]) -> Result<RegionTableEntry>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:370,1
    - Dst: FileTypeIdentifier::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:371,1
    - Dst: Header::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:372,1
    - Dst: Header::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:373,1
    - Dst: RegionTableHeader::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:374,1
    - Dst: RegionTableHeader::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: VhdxHeader::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - FileTypeIdentifier::new
    - Header::new
    - RegionTableHeader::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(f: &mut File) -> Result<VhdxHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:385,1
    - Dst: Self::ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:386,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:389,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:390,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:391,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:394,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - header_1
    - header_2
    argTypes:
    - Result<Header>
    - Result<Header>
    constantsTouched: []
    func_position:
      end: 400
      start: 381
    functionDepth: 6
    functionLinenumber: 381
    functionLinenumberEnd: 400
    functionName: VhdxHeader::current_header
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Self::ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn current_header(header_1: Result<Header>,header_2: Result<Header>,)
      -> Result<(HeaderNo, Header)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhdxHeader::current_header
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:411,1
    - Dst: Header::update_header
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:416,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:417,1
    - Dst: Header::update_header
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:421,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - f
    - header_1
    - header_2
    - guid
    argTypes:
    - '&mut File'
    - Result<Header>
    - Result<Header>
    - u128
    constantsTouched: []
    func_position:
      end: 425
      start: 405
    functionDepth: 7
    functionLinenumber: 405
    functionLinenumberEnd: 425
    functionName: VhdxHeader::update_header
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - Header::update_header
    - Ok
    - VhdxHeader::current_header
    linkageType: ''
    returnType: Result
    signature: 'fn update_header(f: &mut File,header_1: Result<Header>,header_2: Result<Header>,guid:
      u128,) -> Result<(Header, Header)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhdxHeader::update_header
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:435,1
    - Dst: VhdxHeader::update_header
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:436,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:436,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - f
    - header_1
    - header_2
    - guid
    argTypes:
    - '&mut File'
    - Result<Header>
    - Result<Header>
    - u128
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 8
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: VhdxHeader::update_headers
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 1
    functionsReached:
    - VhdxHeader::update_header
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_headers(f: &mut File,header_1: Result<Header>,header_2:
      Result<Header>,guid: u128,) -> Result<(Header, Header)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhdxHeader::update_headers
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:440,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:440,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:440,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut File'
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 9
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: VhdxHeader::update
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 0
    functionsReached:
    - VhdxHeader::update_headers
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn update(&mut self, f: &mut File) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: VhdxHeader::region_entry_count
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn region_entry_count(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:457,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:459,1
    - Dst: crc_any::CRC::crc32c
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:461,1
    - Dst: digest
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:462,1
    - Dst: get_crc
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:463,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - buffer
    - csum_offset
    argTypes:
    - '&mut [u8]'
    - usize
    constantsTouched: []
    func_position:
      end: 469
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 469
    functionName: calculate_checksum
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
    functionUses: 3
    functionsReached:
    - crc_any::CRC::crc32c
    - digest
    - LittleEndian::read_u32
    - get_crc
    - LittleEndian::write_u32
    linkageType: ''
    returnType: u32
    signature: 'fn calculate_checksum(buffer: &mut [u8], csum_offset: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BatEntry::calculate_entries
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:54,1
    - Dst: size_of::<BatEntry>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:59,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:60,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:63,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:66,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:66,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:66,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:66,1
    - Dst: BatEntry
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:69,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:70,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:70,1
    - Dst: insert
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:73,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 3
    argNames:
    - f
    - disk_spec
    - bat_entry
    argTypes:
    - '&mut File'
    - '&DiskSpec'
    - '&RegionTableEntry'
    constantsTouched: []
    func_position:
      end: 77
      start: 49
    functionDepth: 9
    functionLinenumber: 49
    functionLinenumberEnd: 77
    functionName: BatEntry::collect_bat_entries
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs
    functionUses: 1
    functionsReached:
    - BatEntry
    - BatEntry::calculate_entries
    - insert
    - size_of::<u64>
    - map_err
    - read_u64::<LittleEndian>
    - std::io::Result::map_err
    - Err
    - Result::seek
    - SeekFrom::Start
    - Ok
    - Vec::with_capacity
    - size_of::<BatEntry>
    linkageType: ''
    returnType: Result
    signature: 'pub fn collect_bat_entries(f: &mut File,disk_spec: &DiskSpec,bat_entry:
      &RegionTableEntry,) -> Result<Vec<BatEntry>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::div_ceil
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - block_size
    - virtual_disk_size
    - chunk_ratio
    argTypes:
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: BatEntry::calculate_entries
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs
    functionUses: 1
    functionsReached:
    - u64::div_ceil
    linkageType: ''
    returnType: u64
    signature: 'fn calculate_entries(block_size: u32, virtual_disk_size: u64, chunk_ratio:
      u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::len
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:91,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:92,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:92,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:92,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:92,1
    - Dst: Result::get
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:94,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:97,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:101,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:101,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - f
    - bat_offset
    - bat_entries
    argTypes:
    - '&mut File'
    - u64
    - '&[BatEntry]'
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 8
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: BatEntry::write_bat_entries
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs
    functionUses: 1
    functionsReached:
    - Result::get
    - size_of::<u64>
    - map_err
    - std::io::Result::map_err
    - Result::len
    - Err
    - Result::seek
    - SeekFrom::Start
    - write_u64::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_bat_entries(f: &mut File,bat_offset: u64,bat_entries:
      &[BatEntry],) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhdxHeader::new
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:64,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:64,1
    - Dst: RegionInfo::new
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:66,1
    - Dst: region_entry_count
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:69,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:66,1
    - Dst: DiskSpec::new
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:77,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:77,1
    - Dst: BatEntry::collect_bat_entries
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:78,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:78,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - file
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 92
      start: 63
    functionDepth: 9
    functionLinenumber: 63
    functionLinenumberEnd: 92
    functionName: Vhdx::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 1
    functionsReached:
    - BatEntry::collect_bat_entries
    - VhdxHeader::new
    - region_entry_count
    - Result::map_err
    - RegionInfo::new
    - DiskSpec::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(mut file: File) -> Result<Vhdx>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Vhdx::virtual_disk_size
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn virtual_disk_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:103,1
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:103,1
    - Dst: vhdx_io::read
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:106,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:106,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:115,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:120,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:120,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 9
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Vhdx::read
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::other
    - IoResult::map_err
    - div_ceil
    - Ok
    - Self::len
    - unwrap
    - checked_add
    - vhdx_io::read
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> std::result::Result<usize, std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flush
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Vhdx::flush
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - flush
    linkageType: ''
    returnType: std::result::Result
    signature: fn flush(&mut self) -> std::result::Result<(), std::io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:134,1
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:134,1
    - Dst: update
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:139,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:139,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:141,1
    - Dst: vhdx_io::write
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:144,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:144,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:154,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:159,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:159,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 162
      start: 133
    functionDepth: 9
    functionLinenumber: 133
    functionLinenumberEnd: 162
    functionName: Vhdx::write
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::other
    - map_err
    - IoResult::map_err
    - update
    - div_ceil
    - vhdx_io::write
    - Self::len
    - unwrap
    - checked_add
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> std::result::Result<usize, std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:170,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:173,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:173,1
    - Dst: Vhdx::virtual_disk_size
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:174,1
    - Dst: u64::checked_sub
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:174,1
    - Dst: Vhdx::virtual_disk_size
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:177,1
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:177,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:182,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:182,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:183,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:185,1
    - Dst: Vhdx::virtual_disk_size
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:191,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:194,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:197,1
    - Dst: std::io::Error::new
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 1
    argNames:
    - pos
    argTypes:
    - SeekFrom
    constantsTouched: []
    func_position:
      end: 201
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 201
    functionName: Vhdx::seek
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - u64::checked_sub
    - Vhdx::virtual_disk_size
    - std::io::Error::new
    - Err
    - and_then
    - u64::checked_add
    - checked_sub
    - Some
    - checked_add
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek(&mut self, pos: SeekFrom) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:206,1
    - Dst: Vhdx::virtual_disk_size
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: Vhdx::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - Vhdx::virtual_disk_size
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn logical_size(&self) -> std::result::Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:210,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:210,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:212,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: Vhdx::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - metadata
    - map
    - super::Result::len
    - map_err
    linkageType: ''
    returnType: std::result::Result
    signature: fn physical_size(&self) -> std::result::Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:220,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:220,1
    - Dst: clone
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:221,1
    - Dst: clone
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:222,1
    - Dst: clone
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:225,1
    - Dst: clone
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: Vhdx::clone
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - try_clone
    - unwrap
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Vhdx::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Uuid::from_fields_le
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:243,1
    - Dst: BigEndian::read_u32
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:244,1
    - Dst: BigEndian::read_u16
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:245,1
    - Dst: BigEndian::read_u16
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:246,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:247,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/vhdx/mod.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: uuid_from_guid
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/mod.rs
    functionUses: 2
    functionsReached:
    - Uuid::from_fields_le
    - BigEndian::read_u16
    - try_into
    - BigEndian::read_u32
    - unwrap
    linkageType: ''
    returnType: Uuid
    signature: 'pub(crate) fn uuid_from_guid(buf: &[u8]) -> Uuid'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: align
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs
    functionUses: 5
    functionsReached:
    - div_ceil
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sector::default
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:59,1
    - Dst: '&[BatEntry]::get'
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:71,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:74,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 4
    argNames:
    - disk_spec
    - bat
    - sector_index
    - sector_count
    argTypes:
    - '&DiskSpec'
    - '&[BatEntry]'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 83
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 83
    functionName: Sector::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs
    functionUses: 2
    functionsReached:
    - '&[BatEntry]::get'
    - Ok
    - Err
    - Sector::default
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(disk_spec: &DiskSpec,bat: &[BatEntry],sector_index: u64,sector_count:
      u64,) -> Result<Sector>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:97,1
    - Dst: Sector::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:102,1
    - Dst: '&[BatEntry]::get'
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:104,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:107,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:117,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:117,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:117,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:119,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:119,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:126,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:129,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 6
    argNames:
    - f
    - buf
    - disk_spec
    - bat
    - sector_index
    - sector_count
    argTypes:
    - '&mut File'
    - '&mut [u8]'
    - '&DiskSpec'
    - '&[BatEntry]'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 137
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 137
    functionName: read
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs
    functionUses: 147
    functionsReached:
    - map_err
    - std::io::Result::map_err
    - Result::read_exact
    - Err
    - Result::seek
    - SeekFrom::Start
    - '&[BatEntry]::get'
    - Sector::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn read(f: &mut File,buf: &mut [u8],disk_spec: &DiskSpec,bat:
      &[BatEntry],mut sector_index: u64,mut sector_count: u64,) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:151,1
    - Dst: Sector::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:156,1
    - Dst: '&mut [BatEntry]::get'
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:158,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:161,1
    - Dst: align
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:171,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:172,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:172,1
    - Dst: Result::set_len
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:176,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:176,1
    - Dst: vhdx::vhdx_bat::BatEntry
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:181,1
    - Dst: BatEntry::write_bat_entries
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:182,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:182,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:188,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:188,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:188,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:190,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:190,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:200,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:200,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:200,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:202,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:202,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:208,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:211,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs:218,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 125
    argCount: 7
    argNames:
    - f
    - buf
    - disk_spec
    - bat_offset
    - bat
    - sector_index
    - sector_count
    argTypes:
    - '&mut File'
    - '&[u8]'
    - '&mut DiskSpec'
    - u64
    - '&mut [BatEntry]'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 219
      start: 141
    functionDepth: 7
    functionLinenumber: 141
    functionLinenumberEnd: 219
    functionName: write
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs
    functionUses: 164
    functionsReached:
    - align
    - Result::write_all
    - map_err
    - '&mut [BatEntry]::get'
    - BatEntry::write_bat_entries
    - std::io::Result::map_err
    - Err
    - Result::map_err
    - Result::seek
    - SeekFrom::Start
    - vhdx::vhdx_bat::BatEntry
    - Ok
    - Sector::new
    - ok_or
    - checked_add
    - Result::set_len
    linkageType: ''
    returnType: Result
    signature: 'pub fn write(f: &mut File,buf: &[u8],disk_spec: &mut DiskSpec,bat_offset:
      u64,bat: &mut [BatEntry],mut sector_index: u64,mut sector_count: u64,) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiskSpec::default
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:106,1
    - Dst: Result::metadata
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:109,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:109,1
    - Dst: std::io::Result::len
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:110,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:113,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:113,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:113,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:115,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:115,1
    - Dst: MetadataTableHeader::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:119,1
    - Dst: size_of::<MetadataTableHeader>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:119,1
    - Dst: size_of::<MetadataTableHeader>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:121,1
    - Dst: MetadataTableEntry::new
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:124,1
    - Dst: size_of::<MetadataTableEntry>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:124,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:126,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:126,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:126,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:132,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:132,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:135,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:135,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:141,1
    - Dst: is_power_of_two
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:145,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:146,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:149,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:149,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:156,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:156,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:159,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:159,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:165,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:165,1
    - Dst: read_u128::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:168,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:168,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:174,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:174,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:177,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:177,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:182,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:187,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:187,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:190,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:190,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:196,1
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:201,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:201,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:206,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:210,1
    - Dst: size_of::<MetadataTableEntry>
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:212,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:217,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:223,1
    - Dst: VhdxMetadataError::InvalidDiskSize
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:223,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:232,1
    - Dst: DiskSpec::sectors_per_block
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:236,1
    - Dst: DiskSpec::chunk_ratio
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:239,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:244,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 270
    argCount: 2
    argNames:
    - f
    - metadata_region
    argTypes:
    - '&mut File'
    - '&RegionTableEntry'
    constantsTouched: []
    func_position:
      end: 245
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 245
    functionName: DiskSpec::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs
    functionUses: 1
    functionsReached:
    - Uuid::parse_str
    - map_err
    - DiskSpec::chunk_ratio
    - size_of::<MetadataTableEntry>
    - DiskSpec::default
    - Ok
    - size_of::<MetadataTableHeader>
    - Result::read_exact
    - Result::metadata
    - MetadataTableEntry::new
    - std::io::Result::len
    - read_u128::<LittleEndian>
    - std::io::Result::map_err
    - VhdxMetadataError::InvalidDiskSize
    - Err
    - DiskSpec::sectors_per_block
    - read_u64::<LittleEndian>
    - read_u32::<LittleEndian>
    - MetadataTableHeader::new
    - Result::seek
    - SeekFrom::Start
    - Result::map_err
    - is_power_of_two
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(f: &mut File, metadata_region: &RegionTableEntry) -> Result<DiskSpec>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_power_of_two
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:251,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:252,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - block_size
    - logical_sector_size
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: DiskSpec::sectors_per_block
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs
    functionUses: 1
    functionsReached:
    - Result::is_power_of_two
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn sectors_per_block(block_size: u32, logical_sector_size: u32) ->
      Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_power_of_two
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:262,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:263,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - block_size
    - logical_sector_size
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: DiskSpec::chunk_ratio
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs
    functionUses: 1
    functionsReached:
    - Result::is_power_of_two
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn chunk_ratio(block_size: u32, logical_sector_size: u32) -> Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:283,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:286,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:290,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:294,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: MetadataTableHeader::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs
    functionUses: 1
    functionsReached:
    - as_ptr
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(buffer: &[u8]) -> Result<MetadataTableHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:316,1
    - Dst: crate::vhdx::uuid_from_guid
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:318,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:322,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:326,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:330,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: MetadataTableEntry::new
    functionSourceFile: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs
    functionUses: 1
    functionsReached:
    - as_ptr
    - crate::vhdx::uuid_from_guid
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn new(buffer: &[u8]) -> Result<MetadataTableEntry>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::is_power_of_two
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:28,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - file
    - cluster_size
    argTypes:
    - RawFile
    - u64
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: QcowRawFile::from
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 2
    functionsReached:
    - Some
    - u64::is_power_of_two
    linkageType: ''
    returnType: Option
    signature: 'pub fn from(file: RawFile, cluster_size: u64) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:47,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:47,1
    - Dst: file.read_u64_into::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:48,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - offset
    - count
    - mask
    argTypes:
    - u64
    - u64
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: QcowRawFile::read_pointer_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 3
    functionsReached:
    - file.read_u64_into::<BigEndian>
    - seek
    - SeekFrom::Start
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn read_pointer_table(&mut self,offset: u64,count: u64,mask: Option<u64>,)
      -> io::Result<Vec<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:60,1
    - Dst: QcowRawFile::read_pointer_table
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - mask
    argTypes:
    - u64
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: QcowRawFile::read_pointer_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 1
    functionsReached:
    - size_of::<u64>
    - QcowRawFile::read_pointer_table
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn read_pointer_cluster(&mut self, offset: u64, mask: Option<u64>)
      -> io::Result<Vec<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:71,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:71,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:72,1
    - Dst: '&''static [MsrEntry]::size_hint'
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:73,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:73,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:74,1
    - Dst: BufWriter::with_capacity
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - offset
    - entries
    argTypes:
    - u64
    - '&impl Iterator<Item = T>'
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: QcowRawFile::setup_pointer_table_writer
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 2
    functionsReached:
    - BufWriter::with_capacity
    - size_of::<u64>
    - seek
    - try_clone
    - SeekFrom::Start
    - '&''static [MsrEntry]::size_hint'
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn setup_pointer_table_writer<T>(&mut self,offset: u64,entries: &impl
      Iterator<Item = T>,) -> io::Result<BufWriter<RawFile>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowRawFile::setup_pointer_table_writer
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:85,1
    - Dst: write_u64::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:89,1
    - Dst: flush
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:91,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - offset
    - entries
    - f
    argTypes:
    - u64
    - impl Iterator<Item = &'a T>
    - impl FnMut(&mut QcowRawFile, T) -> io::Result<u64>
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: QcowRawFile::write_pointer_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached:
    - Ok
    - write_u64::<BigEndian>
    - flush
    - QcowRawFile::setup_pointer_table_writer
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn write_pointer_table<''a, T: Copy + ''a>(&mut self,offset: u64,entries:
      impl Iterator<Item = &''a T>,mut f: impl FnMut(&mut QcowRawFile, T) -> io::Result<u64>,)
      -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowRawFile::setup_pointer_table_writer
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:101,1
    - Dst: write_u64::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:104,1
    - Dst: flush
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:106,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - offset
    - entries
    argTypes:
    - u64
    - impl Iterator<Item = &'a u64>
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: QcowRawFile::write_pointer_table_direct
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 2
    functionsReached:
    - Ok
    - write_u64::<BigEndian>
    - flush
    - QcowRawFile::setup_pointer_table_writer
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn write_pointer_table_direct<''a>(&mut self,offset: u64,entries:
      impl Iterator<Item = &''a u64>,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<u16>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:113,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:115,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:115,1
    - Dst: file.read_u16_into::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:116,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: QcowRawFile::read_refcount_block
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 2
    functionsReached:
    - size_of::<u16>
    - seek
    - SeekFrom::Start
    - file.read_u16_into::<BigEndian>
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn read_refcount_block(&mut self, offset: u64) -> io::Result<Vec<u16>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:122,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:122,1
    - Dst: BufWriter::with_capacity
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:123,1
    - Dst: std::mem::size_of_val
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:123,1
    - Dst: write_u16::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:126,1
    - Dst: flush
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:128,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - offset
    - table
    argTypes:
    - u64
    - '&[u16]'
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: QcowRawFile::write_refcount_block
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 5
    functionsReached:
    - std::mem::size_of_val
    - BufWriter::with_capacity
    - flush
    - seek
    - SeekFrom::Start
    - write_u16::<BigEndian>
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn write_refcount_block(&mut self, offset: u64, table: &[u16])
      -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:136,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:136,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:140,1
    - Dst: set_len
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:143,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:145,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - max_valid_cluster_offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: QcowRawFile::add_cluster_end
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::End
    - seek
    - set_len
    - Some
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn add_cluster_end(&mut self, max_valid_cluster_offset: u64) ->
      io::Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: QcowRawFile::file_mut
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: '&mut RawFile'
    signature: pub fn file_mut(&mut self) -> &mut RawFile
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: QcowRawFile::cluster_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn cluster_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: QcowRawFile::cluster_offset
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'pub fn cluster_offset(&self, address: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: QcowRawFile::cluster_address
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'pub fn cluster_address(&self, address: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:171,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:171,1
    - Dst: write_zeroes
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:172,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: QcowRawFile::zero_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached:
    - seek
    - write_zeroes
    - SeekFrom::Start
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn zero_cluster(&mut self, address: u64) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:179,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:179,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - address
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: QcowRawFile::write_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached:
    - seek
    - write_all
    - SeekFrom::Start
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn write_cluster(&mut self, address: u64, data: &[u8]) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:184,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:184,1
    - Dst: super::Result::len
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: QcowRawFile::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached:
    - metadata
    - map
    - super::Result::len
    linkageType: ''
    returnType: Result
    signature: pub fn physical_size(&self) -> Result<u64, std::io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:191,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: QcowRawFile::clone
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached:
    - expect
    - try_clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: QcowRawFile::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_boxed_slice
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: VecCache::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 2
    functionsReached:
    - into_boxed_slice
    linkageType: ''
    returnType: VecCache
    signature: 'pub fn new(count: usize) -> VecCache<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VmConfig::into_boxed_slice
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vec<T>
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: VecCache::from_vec
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 7
    functionsReached:
    - VmConfig::into_boxed_slice
    linkageType: ''
    returnType: VecCache
    signature: 'pub fn from_vec(vec: Vec<T>) -> VecCache<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 8
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: VecCache::get
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub fn get<I>(&self, index: I) -> Option<&<I as SliceIndex<[T]>>::Output>whereI:
      SliceIndex<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: VecCache::get_values
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[T]'
    signature: pub fn get_values(&self) -> &[T]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: VecCache::mark_clean
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn mark_clean(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: VecCache::len
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: VecCache::dirty
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn dirty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: VecCache::index
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - index
    linkageType: ''
    returnType: '&T'
    signature: 'fn index(&self, index: usize) -> &T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: index_mut
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: VecCache::index_mut
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - index_mut
    linkageType: ''
    returnType: '&mut T'
    signature: 'fn index_mut(&mut self, index: usize) -> &mut T'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: VecCache::deref
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[T]'
    signature: fn deref(&self) -> &[T]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::with_capacity
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: CacheMap::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 2
    functionsReached:
    - HashMap::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(capacity: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_key
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: CacheMap::contains_key
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - contains_key
    linkageType: ''
    returnType: bool
    signature: 'pub fn contains_key(&self, key: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 8
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: CacheMap::get
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub fn get(&self, index: usize) -> Option<&T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: CacheMap::get_mut
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - get_mut
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_mut(&mut self, index: usize) -> Option<&mut T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: CacheMap::iter_mut
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - iter_mut
    linkageType: ''
    returnType: IterMut
    signature: pub fn iter_mut(&mut self) -> IterMut<'_, usize, T>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:131,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:133,1
    - Dst: next
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:133,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:133,1
    - Dst: remove
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:134,1
    - Dst: dirty
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:135,1
    - Dst: write_callback
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:137,1
    - Dst: insert
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:140,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - index
    - block
    - write_callback
    argTypes:
    - usize
    - T
    - F
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 9
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: CacheMap::insert
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - iter
    - next
    - insert
    - remove
    - Ok
    - unwrap
    - len
    - write_callback
    - dirty
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn insert<F>(&mut self, index: usize, block: T, write_callback:
      F) -> io::Result<()>whereF: FnOnce(usize, T) -> io::Result<()>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CacheMap::<NumCache>::new
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:158,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:160,1
    - Dst: NumCache
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:161,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:162,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:163,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:160,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:167,1
    - Dst: NumCache
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:168,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:169,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:170,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:167,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:174,1
    - Dst: NumCache
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:175,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:176,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:177,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:174,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:181,1
    - Dst: NumCache
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:182,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:183,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:184,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:181,1
    - Dst: filter
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:191,1
    - Dst: Result::contains_key
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:191,1
    - Dst: count
      Src: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 157
    functionDepth: 9
    functionLinenumber: 157
    functionLinenumberEnd: 194
    functionName: unit_tests::evicts_when_full
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
    functionUses: 0
    functionsReached:
    - CacheMap::<NumCache>::new
    - filter
    - Result::contains_key
    - Result::unwrap
    - NumCache
    - Some
    - Result::insert
    - count
    - Ok
    linkageType: ''
    returnType: void
    signature: fn evicts_when_full()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decompress::new
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:33,1
    - Dst: Result::decompress
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:34,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:34,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:38,1
    - Dst: Result::total_out
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:38,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:40,1
    - Dst: Error::ZlibUnexpectedStatus
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: ZlibDecoder::decode
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/decoder.rs
    functionUses: 0
    functionsReached:
    - Error::ZlibUnexpectedStatus
    - map_err
    - Decompress::new
    - Err
    - Ok
    - Result::total_out
    - Result::decompress
    linkageType: ''
    returnType: Result
    signature: 'fn decode(&self, input: &[u8], output: &mut [u8]) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zstd::stream::read::Decoder::new
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:52,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:52,1
    - Dst: Box::read
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:53,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:53,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 9
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: ZstdDecoder::decode
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/decoder.rs
    functionUses: 0
    functionsReached:
    - Box::read
    - IoResult::map_err
    - Result::map_err
    - zstd::stream::read::Decoder::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn decode(&self, input: &[u8], output: &mut [u8]) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZlibDecoder::default
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:64,1
    - Dst: bool::decode
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:67,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:67,1
    - Dst: bool::decode
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:72,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: tests::test_zlib_decode
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - ZlibDecoder::default
    - bool::decode
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_zlib_decode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDecoder::default
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:77,1
    - Dst: bool::decode
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:80,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:80,1
    - Dst: bool::decode
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:85,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/block/src/qcow/decoder.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: tests::test_zstd_decode
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - ZstdDecoder::default
    - bool::decode
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_zstd_decode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - l2_entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: l2_entry_is_empty
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn l2_entry_is_empty(l2_entry: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l2_entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: l2_entry_is_compressed
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn l2_entry_is_compressed(l2_entry: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - l2_entry
    - cluster_bits
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: l2_entry_compressed_cluster_layout
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: (u64, usize)
    signature: 'fn l2_entry_compressed_cluster_layout(l2_entry: u64, cluster_bits:
      u32) -> (u64, usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - l2_entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: l2_entry_std_cluster_addr
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn l2_entry_std_cluster_addr(l2_entry: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cluster_addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: l2_entry_make_std
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn l2_entry_make_std(cluster_addr: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cluster_addr
    - refcount_is_one
    argTypes:
    - u64
    - bool
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: l1_entry_make
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn l1_entry_make(cluster_addr: u64, refcount_is_one: bool) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:260,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut RawFile'
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: Q::c::o::w::H::e::a::d::e::r::::::::n::e::w::read_u32_from_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - read_u32::<BigEndian>
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn read_u32_from_file(f: &mut RawFile) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u64::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:265,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut RawFile'
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: Q::c::o::w::H::e::a::d::e::r::::::::n::e::w::read_u64_from_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - read_u64::<BigEndian>
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn read_u64_from_file(f: &mut RawFile) -> Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:252,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:252,1
    - Dst: read_u32::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:253,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:253,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:255,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:268,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:273,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:274,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:275,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:276,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:277,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:278,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:279,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:280,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:281,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:282,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:283,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:287,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:292,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:297,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:302,1
    - Dst: read_u32_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:307,1
    - Dst: read_u64_from_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:313,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:315,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:317,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:319,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:323,1
    - Dst: Error::BackingFileTooLong
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:323,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:326,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:326,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:326,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:329,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:329,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:331,1
    - Dst: String::from_utf8
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:332,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:332,1
    - Dst: Error::InvalidBackingFileName
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:333,1
    - Dst: utf8_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:333,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:336,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 134
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut RawFile'
    constantsTouched: []
    func_position:
      end: 337
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 337
    functionName: QcowHeader::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 6
    functionsReached:
    - read_u32::<BigEndian>
    - read_u64_from_file
    - map_err
    - std::io::Result::map_err
    - Result::read_exact
    - Error::BackingFileTooLong
    - utf8_error
    - Err
    - Result::rewind
    - Result::seek
    - SeekFrom::Start
    - String::from_utf8
    - Error::InvalidBackingFileName
    - Some
    - read_u32_from_file
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(f: &mut RawFile) -> Result<QcowHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:341,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: QcowHeader::get_decoder
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - Box::new
    linkageType: ''
    returnType: Box
    signature: pub fn get_decoder(&self) -> Box<dyn Decoder>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:360,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:362,1
    - Dst: Error::BackingFileTooLong
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:362,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:362,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:366,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:367,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:367,1
    - Dst: div_round_up_u32
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:368,1
    - Dst: div_round_up_u32
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:369,1
    - Dst: div_round_up_u32
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:370,1
    - Dst: size_of::<QcowHeader>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:370,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:371,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:374,1
    - Dst: map_or
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:379,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:379,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:384,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:386,1
    - Dst: max_refcount_clusters
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:391,1
    - Dst: div_round_up_u32
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:397,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:398,1
    - Dst: map
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 3
    argNames:
    - version
    - size
    - backing_file
    argTypes:
    - u32
    - u64
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 412
      start: 346
    functionDepth: 9
    functionLinenumber: 346
    functionLinenumberEnd: 412
    functionName: QcowHeader::create_for_size_and_path
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 9
    functionsReached:
    - map
    - map_or
    - size_of::<u64>
    - is_none
    - Error::BackingFileTooLong
    - div_round_up_u64
    - div_round_up_u32
    - Err
    - max_refcount_clusters
    - u64::from
    - size_of::<QcowHeader>
    - len
    - String::len
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn create_for_size_and_path(version: u32,size: u64,backing_file:
      Option<&str>,) -> Result<QcowHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u32::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:418,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - f
    - value
    argTypes:
    - '&mut F'
    - u32
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: Q::c::o::w::H::e::a::d::e::r::::::::w::r::i::t::e::_::t::o::write_u32_to_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - write_u32::<BigEndian>
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn write_u32_to_file<F: Write>(f: &mut F, value: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u64::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:424,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - f
    - value
    argTypes:
    - '&mut F'
    - u64
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: Q::c::o::w::H::e::a::d::e::r::::::::w::r::i::t::e::_::t::o::write_u64_to_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - write_u64::<BigEndian>
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn write_u64_to_file<F: Write>(f: &mut F, value: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:428,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:429,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:430,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:431,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:432,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:433,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:434,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:435,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:436,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:437,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:438,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:439,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:440,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:443,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:444,1
    - Dst: write_u64_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:445,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:446,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:447,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:448,1
    - Dst: write_u32_to_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:449,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:452,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:453,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:460,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:461,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:461,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:461,1
    - Dst: Vec::write
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:465,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:465,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:467,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 124
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut F'
    constantsTouched: []
    func_position:
      end: 468
      start: 415
    functionDepth: 8
    functionLinenumber: 415
    functionLinenumberEnd: 468
    functionName: QcowHeader::write_to
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - write_u32_to_file
    - as_ref
    - std::io::Result::map_err
    - IoResult::map_err
    - Vec::write
    - u64::from
    - SeekFrom::Start
    - Vec::seek
    - write_u64_to_file
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_to<F: Write + Seek>(&self, file: &mut F) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:473,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:474,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:475,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:476,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:478,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - refcount_order
    - cluster_size
    - num_clusters
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 480
      start: 471
    functionDepth: 8
    functionLinenumber: 471
    functionLinenumberEnd: 480
    functionName: max_refcount_clusters
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - u64::from
    - div_round_up_u64
    linkageType: ''
    returnType: u64
    signature: 'fn max_refcount_clusters(refcount_order: u32, cluster_size: u32, num_clusters:
      u32) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_with_nesting_depth
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - RawFile
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 9
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: QcowFile::from
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 23
    functionsReached:
    - Self::from_with_nesting_depth
    linkageType: ''
    returnType: Result
    signature: 'pub fn from(file: RawFile) -> Result<QcowFile>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:526,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:530,1
    - Dst: Error::UnsupportedVersion
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:530,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:534,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:535,1
    - Dst: Error::InvalidL1TableSize
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:535,1
    - Dst: contains
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:539,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:540,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:546,1
    - Dst: Error::FileTooBig
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:546,1
    - Dst: Vec::is_direct
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:549,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:551,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:553,1
    - Dst: clone
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:555,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:556,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:556,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:556,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:556,1
    - Dst: Self::from_with_nesting_depth
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:560,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:561,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:560,1
    - Dst: Error::BackingFileOpen
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:564,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:564,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:565,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:565,1
    - Dst: checked_shl
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:571,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:571,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:575,1
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:577,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:581,1
    - Dst: offset_is_cluster_boundary
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:583,1
    - Dst: offset_is_cluster_boundary
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:584,1
    - Dst: offset_is_cluster_boundary
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:586,1
    - Dst: Vec::metadata
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:587,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:587,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:587,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:588,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:589,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:595,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:595,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:595,1
    - Dst: read_u64::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:597,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:597,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:599,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:599,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:599,1
    - Dst: read_u16::<BigEndian>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:602,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:602,1
    - Dst: QcowRawFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:613,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:613,1
    - Dst: QcowFile::rebuild_refcounts
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:615,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:615,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:618,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:619,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:620,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:621,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:622,1
    - Dst: size_of::<QcowHeader>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:622,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:624,1
    - Dst: Error::TooManyL1Entries
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:624,1
    - Dst: VecCache::from_vec
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:626,1
    - Dst: read_pointer_table
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:627,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:631,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:627,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:636,1
    - Dst: max_refcount_clusters
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:637,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:643,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:644,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:647,1
    - Dst: Error::TooManyRefcounts
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:647,1
    - Dst: RefCount::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:650,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:650,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:659,1
    - Dst: CacheMap::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:666,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:669,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:670,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:675,1
    - Dst: Result::l1_address_offset
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:677,1
    - Dst: Result::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:677,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:675,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:679,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:681,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:679,1
    - Dst: Result::find_avail_clusters
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:684,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:686,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 280
    argCount: 2
    argNames:
    - file
    - max_nesting_depth
    argTypes:
    - RawFile
    - u32
    constantsTouched: []
    func_position:
      end: 687
      start: 525
    functionDepth: 8
    functionLinenumber: 525
    functionLinenumberEnd: 687
    functionName: QcowFile::from_with_nesting_depth
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 4
    functionsReached:
    - Error::UnsupportedVersion
    - read_u64::<BigEndian>
    - checked_shl
    - Error::BackingFileOpen
    - map_err
    - Error::FileTooBig
    - as_ref
    - io::Result::map_err
    - CacheMap::new
    - Vec::is_direct
    - max_refcount_clusters
    - u64::from
    - QcowHeader::new
    - RawFile::new
    - Result::read
    - ok_or
    - checked_add
    - Ok
    - OpenOptions::new
    - read_u16::<BigEndian>
    - size_of::<u64>
    - Vec::new
    - offset_is_cluster_boundary
    - RefCount::new
    - size_of::<QcowHeader>
    - Result::l1_address_offset
    - len
    - Vec::seek
    - Self::from_with_nesting_depth
    - Error::TooManyRefcounts
    - Result::virtual_size
    - read_pointer_table
    - QcowFile::rebuild_refcounts
    - std::cmp::max
    - Result::find_avail_clusters
    - std::io::Result::map_err
    - Err
    - div_ceil
    - Box::new
    - contains
    - Error::TooManyL1Entries
    - Result::clone
    - Option::ok_or
    - clone
    - QcowRawFile::from
    - IoResult::open
    - div_round_up_u64
    - Result::map_err
    - SeekFrom::Start
    - Error::InvalidL1TableSize
    - Vec::metadata
    - VecCache::from_vec
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_with_nesting_depth(mut file: RawFile, max_nesting_depth:
      u32) -> Result<QcowFile>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:691,1
    - Dst: QcowFile::new_from_header
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - file
    - version
    - virtual_size
    argTypes:
    - RawFile
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 10
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: QcowFile::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - QcowHeader::create_for_size_and_path
    - QcowFile::new_from_header
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(file: RawFile, version: u32, virtual_size: u64) -> Result<QcowFile>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::is_direct
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:702,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:703,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:703,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:703,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:703,1
    - Dst: Self::from_with_nesting_depth
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:707,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:708,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:707,1
    - Dst: Error::BackingFileOpen
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:711,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:711,1
    - Dst: virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:712,1
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:713,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:713,1
    - Dst: QcowFile::new_from_header
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:714,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:715,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:715,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 4
    argNames:
    - file
    - version
    - backing_file_name
    - backing_file_max_nesting_depth
    argTypes:
    - RawFile
    - u32
    - '&str'
    - u32
    constantsTouched: []
    func_position:
      end: 717
      start: 696
    functionDepth: 8
    functionLinenumber: 696
    functionLinenumberEnd: 717
    functionName: QcowFile::new_from_backing
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowFile::new_from_header
    - OpenOptions::new
    - Error::BackingFileOpen
    - map_err
    - Self::from_with_nesting_depth
    - Vec::is_direct
    - IoResult::open
    - virtual_size
    - QcowHeader::create_for_size_and_path
    - Result::map_err
    - Box::new
    - RawFile::new
    - Result::read
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new_from_backing(file: RawFile,version: u32,backing_file_name:
      &str,backing_file_max_nesting_depth: u32,) -> Result<QcowFile>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:720,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:720,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:721,1
    - Dst: Self::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:723,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:729,1
    - Dst: Result::set_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:733,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:733,1
    - Dst: append
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:736,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - file
    - header
    argTypes:
    - RawFile
    - '&QcowHeader'
    constantsTouched: []
    func_position:
      end: 741
      start: 719
    functionDepth: 8
    functionLinenumber: 719
    functionLinenumberEnd: 741
    functionName: QcowFile::new_from_header
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - append
    - Self::from
    - map_err
    - std::io::Result::map_err
    - Result::write_to
    - u64::from
    - Vec::rewind
    - Result::set_cluster_refcount
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn new_from_header(mut file: RawFile, header: &QcowHeader) -> Result<QcowFile>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - backing
    argTypes:
    - Option<Box<Self>>
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    functionName: QcowFile::set_backing_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_backing_file(&mut self, backing: Option<Box<Self>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 750
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 750
    functionName: QcowFile::header
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&QcowHeader'
    signature: pub fn header(&self) -> &QcowHeader
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 755
    functionName: QcowFile::l1_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - get_values
    linkageType: ''
    returnType: '&[u64]'
    signature: pub fn l1_table(&self) -> &[u64]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:759,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:759,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:763,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:766,1
    - Dst: VecCache::from_vec
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:768,1
    - Dst: Self::read_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:769,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:769,1
    - Dst: insert
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:774,1
    - Dst: write_pointer_table_direct
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:776,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:776,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:774,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:782,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:782,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:782,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:782,1
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 1
    argNames:
    - l1_index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 783
      start: 758
    functionDepth: 8
    functionLinenumber: 758
    functionLinenumberEnd: 783
    functionName: QcowFile::l2_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - get_values
    - insert
    - Self::read_l2_cluster
    - write_pointer_table_direct
    - map_err
    - std::io::Result::map_err
    - contains_key
    - unwrap
    - get
    - ok_or
    - Some
    - VecCache::from_vec
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn l2_table(&mut self, l1_index: usize) -> Result<Option<&[u64]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ref_table
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: QcowFile::ref_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - ref_table
    linkageType: ''
    returnType: '&[u64]'
    signature: pub fn ref_table(&self) -> &[u64]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: refcount_block
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:792,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 795
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 795
    functionName: QcowFile::refcount_block
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - refcount_block
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn refcount_block(&mut self, index: usize) -> Result<Option<&[u16]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:799,1
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:799,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:799,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:799,1
    - Dst: get_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:809,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:809,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:814,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:814,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 798
    functionDepth: 9
    functionLinenumber: 798
    functionLinenumberEnd: 819
    functionName: QcowFile::first_zero_refcount
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - get_cluster_refcount
    - map_err
    - metadata
    - file_mut
    - len
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn first_zero_refcount(&mut self) -> Result<Option<u64>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:822,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:824,1
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:824,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:824,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:824,1
    - Dst: step_by
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:831,1
    - Dst: get_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:832,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:832,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:837,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 842
      start: 821
    functionDepth: 9
    functionLinenumber: 821
    functionLinenumberEnd: 842
    functionName: QcowFile::find_avail_clusters
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - get_cluster_refcount
    - map_err
    - metadata
    - push
    - file_mut
    - len
    - cluster_size
    - step_by
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn find_avail_clusters(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:848,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:849,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - refcounts
    - cluster_size
    - cluster_address
    argTypes:
    - '&mut [u16]'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 853
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 853
    functionName: Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::add_ref
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Result::len
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn add_ref(refcounts: &mut [u16], cluster_size: u64, cluster_address:
      u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - refcounts
    - cluster_size
    argTypes:
    - '&mut [u16]'
    - u64
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_header_refcount
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - add_ref
    linkageType: ''
    returnType: Result
    signature: 'fn set_header_refcount(refcounts: &mut [u16], cluster_size: u64) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:866,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:867,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:867,1
    - Dst: add_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:870,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - refcounts
    - header
    - cluster_size
    argTypes:
    - '&mut [u16]'
    - '&QcowHeader'
    - u64
    constantsTouched: []
    func_position:
      end: 873
      start: 861
    functionDepth: 9
    functionLinenumber: 861
    functionLinenumberEnd: 873
    functionName: Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_l1_refcounts
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - size_of::<u64>
    - div_round_up_u64
    - u64::from
    - add_ref
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_l1_refcounts(refcounts: &mut [u16],header: &QcowHeader,cluster_size:
      u64,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut QcowRawFile::read_pointer_table'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:882,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:885,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:886,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:882,1
    - Dst: '&[u64]::get'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:890,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:890,1
    - Dst: add_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:893,1
    - Dst: '&mut QcowRawFile::read_pointer_table'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:896,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:899,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:900,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:896,1
    - Dst: add_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:905,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:911,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - refcounts
    - header
    - cluster_size
    - raw_file
    argTypes:
    - '&mut [u16]'
    - '&QcowHeader'
    - u64
    - '&mut QcowRawFile'
    constantsTouched: []
    func_position:
      end: 912
      start: 876
    functionDepth: 8
    functionLinenumber: 876
    functionLinenumberEnd: 912
    functionName: Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_data_refcounts
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - vm::Result::ok_or
    - size_of::<u64>
    - '&mut QcowRawFile::read_pointer_table'
    - io::Result::map_err
    - u64::from
    - add_ref
    - Some
    - '&[u64]::get'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_data_refcounts(refcounts: &mut [u16],header: &QcowHeader,cluster_size:
      u64,raw_file: &mut QcowRawFile,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:921,1
    - Dst: add_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:922,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - refcounts
    - header
    - cluster_size
    argTypes:
    - '&mut [u16]'
    - '&QcowHeader'
    - u64
    constantsTouched: []
    func_position:
      end: 929
      start: 915
    functionDepth: 8
    functionLinenumber: 915
    functionLinenumberEnd: 929
    functionName: Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_refcount_table_refcounts
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - add_ref
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_refcount_table_refcounts(refcounts: &mut [u16],header: &QcowHeader,cluster_size:
      u64,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:943,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:944,1
    - Dst: add_ref
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:953,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:958,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - refcounts
    - cluster_size
    - refblock_clusters
    argTypes:
    - '&mut [u16]'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 959
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 959
    functionName: Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::alloc_refblocks
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - add_ref
    - Ok
    - Result::len
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn alloc_refblocks(refcounts: &mut [u16],cluster_size: u64,refblock_clusters:
      u64,) -> Result<Vec<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut QcowRawFile::file_mut'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:971,1
    - Dst: '&mut RawFile::rewind'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:971,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:971,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:972,1
    - Dst: '&mut QcowRawFile::file_mut'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:972,1
    - Dst: '&[u64]::iter'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:974,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:974,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:977,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:978,1
    - Dst: '&mut QcowRawFile::write_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:982,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:982,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:987,1
    - Dst: '&mut QcowRawFile::write_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:990,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:992,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:990,1
    - Dst: '&mut QcowRawFile::write_pointer_table_direct'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1000,1
    - Dst: '&[u64]::iter'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1001,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1000,1
    - Dst: '&mut QcowRawFile::file_mut'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1006,1
    - Dst: '&mut RawFile::rewind'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1006,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1006,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1007,1
    - Dst: '&mut QcowRawFile::file_mut'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1007,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1009,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 5
    argNames:
    - refcounts
    - header
    - ref_table
    - raw_file
    - refcount_block_entries
    argTypes:
    - '&[u16]'
    - QcowHeader
    - '&[u64]'
    - '&mut QcowRawFile'
    - u64
    constantsTouched: []
    func_position:
      end: 1010
      start: 962
    functionDepth: 4
    functionLinenumber: 962
    functionLinenumberEnd: 1010
    functionName: Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::write_refblocks
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - std::cmp::min
    - io::Result::map_err
    - Result::len
    - impl Iterator::enumerate
    - Result::write_to
    - '&mut QcowRawFile::write_refcount_block'
    - '&mut QcowRawFile::write_pointer_table_direct'
    - Ok
    - len
    - '&[u64]::iter'
    - '&mut RawFile::rewind'
    - '&mut QcowRawFile::file_mut'
    linkageType: ''
    returnType: Result
    signature: 'fn write_refblocks(refcounts: &[u16],mut header: QcowHeader,ref_table:
      &[u64],raw_file: &mut QcowRawFile,refcount_block_entries: u64,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut QcowRawFile::cluster_size'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1012,1
    - Dst: '&mut QcowRawFile::file_mut'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1014,1
    - Dst: '&mut RawFile::metadata'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1014,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1014,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1014,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1021,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1023,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1024,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1025,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1026,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1027,1
    - Dst: size_of::<QcowHeader>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1027,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1030,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1031,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1033,1
    - Dst: div_round_up_u64
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1038,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1043,1
    - Dst: Error::InvalidRefcountTableSize
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1043,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1048,1
    - Dst: Error::InvalidRefcountTableSize
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1048,1
    - Dst: set_header_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1054,1
    - Dst: set_l1_refcounts
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1055,1
    - Dst: set_data_refcounts
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1056,1
    - Dst: set_refcount_table_refcounts
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1057,1
    - Dst: alloc_refblocks
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1060,1
    - Dst: write_refblocks
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1063,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 288
    argCount: 2
    argNames:
    - raw_file
    - header
    argTypes:
    - '&mut QcowRawFile'
    - QcowHeader
    constantsTouched: []
    func_position:
      end: 1070
      start: 845
    functionDepth: 9
    functionLinenumber: 845
    functionLinenumberEnd: 1070
    functionName: QcowFile::rebuild_refcounts
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - size_of::<u64>
    - set_l1_refcounts
    - alloc_refblocks
    - '&mut QcowRawFile::cluster_size'
    - std::io::Result::map_err
    - div_round_up_u64
    - Err
    - size_of::<QcowHeader>
    - Error::InvalidRefcountTableSize
    - len
    - set_header_refcount
    - set_data_refcounts
    - set_refcount_table_refcounts
    - write_refblocks
    - '&mut RawFile::metadata'
    - '&mut QcowRawFile::file_mut'
    linkageType: ''
    returnType: Result
    signature: 'fn rebuild_refcounts(raw_file: &mut QcowRawFile, header: QcowHeader)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1074,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1074,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1074,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1077,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - address
    - count
    argTypes:
    - u64
    - usize
    constantsTouched: []
    func_position:
      end: 1078
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1078
    functionName: QcowFile::limit_range_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 3
    functionsReached:
    - std::cmp::min
    - QcowFile::virtual_size
    - Result::checked_add
    - is_none
    linkageType: ''
    returnType: usize
    signature: 'fn limit_range_file(&self, address: u64, count: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_offset
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1082,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1083,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - address
    - count
    argTypes:
    - u64
    - usize
    constantsTouched: []
    func_position:
      end: 1085
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1085
    functionName: QcowFile::limit_range_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 3
    functionsReached:
    - std::cmp::min
    - cluster_size
    - cluster_offset
    linkageType: ''
    returnType: usize
    signature: 'fn limit_range_cluster(&self, address: u64, count: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1090
    functionName: QcowFile::virtual_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn virtual_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::l1_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1094,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1096
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1096
    functionName: QcowFile::l1_address_offset
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowFile::l1_table_index
    - size_of::<u64>
    linkageType: ''
    returnType: u64
    signature: 'fn l1_address_offset(&self, address: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1101
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1101
    functionName: QcowFile::l1_table_index
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 5
    functionsReached:
    - cluster_size
    linkageType: ''
    returnType: u64
    signature: 'fn l1_table_index(&self, address: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1106
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1106
    functionName: QcowFile::l2_table_index
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 4
    functionsReached:
    - cluster_size
    linkageType: ''
    returnType: u64
    signature: 'fn l2_table_index(&self, address: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2_entry_compressed_cluster_layout
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1111,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1113,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1113,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1115,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1117,1
    - Dst: read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1117,1
    - Dst: get_decoder
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1120,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1122,1
    - Dst: Box::decode
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1124,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1124,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1126,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1127,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1128,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1128,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 1
    argNames:
    - l2_entry
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1131
      start: 1109
    functionDepth: 6
    functionLinenumber: 1109
    functionLinenumberEnd: 1131
    functionName: QcowFile::decompress_l2_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - cluster_size
    - Box::decode
    - seek
    - file_mut
    - get_decoder
    - std::io::Error::from_raw_os_error
    - SeekFrom::Start
    - Result::map_err
    - Err
    - l2_entry_compressed_cluster_layout
    - read_exact
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn decompress_l2_cluster(&mut self, l2_entry: u64) -> std::io::Result<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1139,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1140,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1141,1
    - Dst: QcowFile::l1_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1144,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1145,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1145,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1148,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1152,1
    - Dst: QcowFile::l2_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1155,1
    - Dst: QcowFile::cache_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1157,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1159,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1159,1
    - Dst: l2_entry_is_empty
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1160,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1162,1
    - Dst: l2_entry_is_compressed
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1163,1
    - Dst: QcowFile::decompress_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1166,1
    - Dst: resize
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1167,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1167,1
    - Dst: cluster_offset
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1168,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1169,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1170,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1170,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1170,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1171,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1173,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1173,1
    - Dst: l2_entry_std_cluster_addr
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1175,1
    - Dst: cluster_offset
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1175,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1176,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1177,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1177,1
    - Dst: read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1178,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1180,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1180,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 107
    argCount: 3
    argNames:
    - address
    - count
    - buf
    argTypes:
    - u64
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1181
      start: 1133
    functionDepth: 16
    functionLinenumber: 1133
    functionLinenumberEnd: 1181
    functionName: QcowFile::file_read
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - l2_entry_is_empty
    - cluster_offset
    - checked_add
    - Ok
    - seek
    - QcowFile::l1_table_index
    - l2_entry_std_cluster_addr
    - len
    - get
    - resize
    - read_exact
    - QcowFile::decompress_l2_cluster
    - l2_entry_is_compressed
    - ok_or_else
    - QcowFile::virtual_size
    - Err
    - std::io::Error::from_raw_os_error
    - unwrap
    - is_none
    - file_mut
    - SeekFrom::Start
    - copy_from_slice
    - QcowFile::l2_table_index
    - cluster_size
    - Some
    - QcowFile::cache_l2_cluster
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn file_read(&mut self,address: u64,count: usize,buf: &mut [u8],)
      -> std::io::Result<Option<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1186,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1187,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1187,1
    - Dst: QcowFile::l1_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1190,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1191,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1191,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1194,1
    - Dst: QcowFile::l2_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1195,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1197,1
    - Dst: QcowFile::cache_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1199,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1201,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1204,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1204,1
    - Dst: l2_entry_is_compressed
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1205,1
    - Dst: l2_entry_compressed_cluster_layout
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1209,1
    - Dst: QcowFile::decompress_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1213,1
    - Dst: QcowFile::append_data_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1214,1
    - Dst: QcowFile::update_cluster_addr
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1215,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1216,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1216,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1218,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1219,1
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1219,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1220,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1221,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1221,1
    - Dst: cluster_address
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1225,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1228,1
    - Dst: cluster_address
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1231,1
    - Dst: get_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1233,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1233,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1236,1
    - Dst: Error::GettingRefcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1236,1
    - Dst: QcowFile::set_cluster_refcount_track_freed
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1238,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1240,1
    - Dst: l2_entry_is_empty
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1244,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1245,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1246,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1249,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1249,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1250,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1251,1
    - Dst: QcowFile::append_data_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1256,1
    - Dst: QcowFile::update_cluster_addr
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1257,1
    - Dst: l2_entry_std_cluster_addr
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1260,1
    - Dst: QcowFile::set_cluster_refcount_track_freed
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1264,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1267,1
    - Dst: cluster_offset
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1267,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 162
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1268
      start: 1185
    functionDepth: 8
    functionLinenumber: 1185
    functionLinenumberEnd: 1268
    functionName: QcowFile::file_offset_write
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - map_err
    - l2_entry_is_empty
    - QcowFile::set_cluster_refcount_track_freed
    - cluster_offset
    - cluster_address
    - Error::GettingRefcount
    - Ok
    - get_cluster_refcount
    - Vec::new
    - as_mut
    - seek
    - Result::read_exact
    - QcowFile::l1_table_index
    - l2_entry_std_cluster_addr
    - len
    - get
    - l2_entry_compressed_cluster_layout
    - Result::push
    - QcowFile::update_cluster_addr
    - QcowFile::decompress_l2_cluster
    - l2_entry_is_compressed
    - ok_or_else
    - QcowFile::virtual_size
    - Err
    - std::io::Error::from_raw_os_error
    - unwrap
    - QcowFile::append_data_cluster
    - std::io::Error::other
    - file_mut
    - SeekFrom::Start
    - Result::seek
    - QcowFile::l2_table_index
    - cluster_size
    - Some
    - QcowFile::cache_l2_cluster
    - write
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn file_offset_write(&mut self, address: u64) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1278,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1278,1
    - Dst: dirty
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1278,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1285,1
    - Dst: '&mut Vec<(u64, u16)>::push'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1286,1
    - Dst: QcowFile::get_new_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1292,1
    - Dst: '&mut Vec<(u64, u16)>::push'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1295,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1299,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1299,1
    - Dst: l2_entry_make_std
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1299,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 4
    argNames:
    - l1_index
    - l2_index
    - cluster_addr
    - set_refcounts
    argTypes:
    - usize
    - usize
    - u64
    - '&mut Vec<(u64, u16)>'
    constantsTouched: []
    func_position:
      end: 1301
      start: 1271
    functionDepth: 8
    functionLinenumber: 1271
    functionLinenumberEnd: 1301
    functionName: QcowFile::update_cluster_addr
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - QcowFile::get_new_cluster
    - '&mut Vec<(u64, u16)>::push'
    - push
    - get_mut
    - l2_entry_make_std
    - Ok
    - unwrap
    - get
    - dirty
    linkageType: ''
    returnType: io::Result
    signature: 'fn update_cluster_addr(&mut self,l1_index: usize,l2_index: usize,cluster_addr:
      u64,set_refcounts: &mut Vec<(u64, u16)>,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1306,1
    - Dst: write_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1308,1
    - Dst: zero_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1310,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1312,1
    - Dst: max_valid_cluster_offset
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1315,1
    - Dst: add_cluster_end
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1316,1
    - Dst: write_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1318,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1320,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1323,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - initial_data
    argTypes:
    - Option<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 1325
      start: 1304
    functionDepth: 3
    functionLinenumber: 1304
    functionLinenumberEnd: 1325
    functionName: QcowFile::get_new_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 4
    functionsReached:
    - Err
    - std::io::Error::from_raw_os_error
    - pop
    - max_valid_cluster_offset
    - zero_cluster
    - add_cluster_end
    - write_cluster
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn get_new_cluster(&mut self, initial_data: Option<Vec<u8>>) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::get_new_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1330,1
    - Dst: QcowFile::set_cluster_refcount_track_freed
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1332,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - initial_data
    argTypes:
    - Option<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 1334
      start: 1329
    functionDepth: 7
    functionLinenumber: 1329
    functionLinenumberEnd: 1334
    functionName: QcowFile::append_data_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - QcowFile::get_new_cluster
    - QcowFile::set_cluster_refcount_track_freed
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn append_data_cluster(&mut self, initial_data: Option<Vec<u8>>) ->
      std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1338,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1339,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1339,1
    - Dst: QcowFile::l1_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1342,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1343,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1343,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1346,1
    - Dst: QcowFile::l2_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1347,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1352,1
    - Dst: QcowFile::cache_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1355,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1357,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1357,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1360
      start: 1337
    functionDepth: 8
    functionLinenumber: 1337
    functionLinenumberEnd: 1360
    functionName: QcowFile::cluster_allocated
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - ok_or_else
    - QcowFile::virtual_size
    - Err
    - std::io::Error::from_raw_os_error
    - QcowFile::l1_table_index
    - QcowFile::l2_table_index
    - unwrap
    - get
    - QcowFile::cache_l2_cluster
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn cluster_allocated(&mut self, address: u64) -> std::io::Result<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1369,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1371,1
    - Dst: QcowFile::cluster_allocated
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1375,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1376,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1376,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1380,1
    - Dst: QcowFile::cluster_allocated
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1385,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1386,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1386,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - address
    - allocated
    argTypes:
    - u64
    - bool
    constantsTouched: []
    func_position:
      end: 1392
      start: 1364
    functionDepth: 9
    functionLinenumber: 1364
    functionLinenumberEnd: 1392
    functionName: QcowFile::find_allocated_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - QcowFile::cluster_allocated
    - QcowFile::virtual_size
    - cluster_size
    - Some
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn find_allocated_cluster(&mut self,address: u64,allocated: bool,)
      -> std::io::Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1397,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1398,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1398,1
    - Dst: QcowFile::l1_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1401,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1402,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1402,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1405,1
    - Dst: QcowFile::l2_table_index
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1406,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1411,1
    - Dst: QcowFile::cache_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1414,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1416,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1416,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1419,1
    - Dst: get_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1423,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1423,1
    - Dst: io::Error::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1427,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1433,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1433,1
    - Dst: QcowFile::set_cluster_refcount_track_freed
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1437,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1441,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1441,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1444,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1448,1
    - Dst: punch_hole
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1448,1
    - Dst: push
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1452,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1454,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 95
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1455
      start: 1396
    functionDepth: 8
    functionLinenumber: 1396
    functionLinenumberEnd: 1455
    functionName: QcowFile::deallocate_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - map_err
    - io::Error::new
    - QcowFile::set_cluster_refcount_track_freed
    - push
    - Ok
    - get_cluster_refcount
    - QcowFile::l1_table_index
    - get
    - ok_or_else
    - QcowFile::virtual_size
    - Err
    - std::io::Error::from_raw_os_error
    - unwrap
    - file_mut
    - get_mut
    - QcowFile::l2_table_index
    - cluster_size
    - QcowFile::cache_l2_cluster
    - punch_hole
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn deallocate_cluster(&mut self, address: u64) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::limit_range_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1460,1
    - Dst: QcowFile::limit_range_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1465,1
    - Dst: cluster_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1467,1
    - Dst: QcowFile::deallocate_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1469,1
    - Dst: QcowFile::file_offset_write
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1474,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1476,1
    - Dst: write_zeroes_at
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1476,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - address
    - length
    argTypes:
    - u64
    - usize
    constantsTouched: []
    func_position:
      end: 1482
      start: 1459
    functionDepth: 9
    functionLinenumber: 1459
    functionLinenumberEnd: 1482
    functionName: QcowFile::deallocate_bytes
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - write_zeroes_at
    - QcowFile::file_offset_write
    - file_mut
    - QcowFile::limit_range_file
    - cluster_size
    - QcowFile::limit_range_cluster
    - QcowFile::deallocate_cluster
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn deallocate_bytes(&mut self, address: u64, length: usize) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut QcowRawFile::read_pointer_cluster'
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1487,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - raw_file
    - cluster_addr
    argTypes:
    - '&mut QcowRawFile'
    - u64
    constantsTouched: []
    func_position:
      end: 1489
      start: 1486
    functionDepth: 4
    functionLinenumber: 1486
    functionLinenumberEnd: 1489
    functionName: QcowFile::read_l2_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut QcowRawFile::read_pointer_cluster'
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read_l2_cluster(raw_file: &mut QcowRawFile, cluster_addr: u64)
      -> std::io::Result<Vec<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_key
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1501,1
    - Dst: QcowFile::get_new_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1506,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1507,1
    - Dst: VecCache::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1509,1
    - Dst: VecCache::from_vec
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1511,1
    - Dst: Self::read_l2_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1511,1
    - Dst: insert
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1515,1
    - Dst: write_pointer_table_direct
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1516,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1516,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 3
    argNames:
    - l1_index
    - l2_addr_disk
    - may_alloc
    argTypes:
    - usize
    - u64
    - bool
    constantsTouched: []
    func_position:
      end: 1520
      start: 1494
    functionDepth: 9
    functionLinenumber: 1494
    functionLinenumberEnd: 1520
    functionName: QcowFile::cache_l2_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 4
    functionsReached:
    - iter
    - insert
    - Self::read_l2_cluster
    - write_pointer_table_direct
    - QcowFile::get_new_cluster
    - VecCache::new
    - contains_key
    - VecCache::from_vec
    - Some
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn cache_l2_cluster(&mut self,l1_index: usize,l2_addr_disk: u64,may_alloc:
      bool,) -> std::io::Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::set_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1528,1
    - Dst: append
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1529,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - address
    - refcount
    argTypes:
    - u64
    - u16
    constantsTouched: []
    func_position:
      end: 1531
      start: 1523
    functionDepth: 6
    functionLinenumber: 1523
    functionLinenumberEnd: 1531
    functionName: QcowFile::set_cluster_refcount_track_freed
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 3
    functionsReached:
    - QcowFile::set_cluster_refcount
    - Ok
    - append
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn set_cluster_refcount_track_freed(&mut self,address: u64,refcount:
      u16,) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1537,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1538,1
    - Dst: set_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1543,1
    - Dst: std::io::Result::take
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1547,1
    - Dst: QcowFile::set_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1554,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1555,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1559,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1562,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1562,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1566,1
    - Dst: VecCache::from_vec
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1568,1
    - Dst: read_refcount_block
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1568,1
    - Dst: QcowFile::get_new_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1573,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1574,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1575,1
    - Dst: VecCache::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1577,1
    - Dst: refcounts_per_block
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1577,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1581,1
    - Dst: QcowFile::set_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1587,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1589,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 66
    argCount: 2
    argNames:
    - address
    - refcount
    argTypes:
    - u64
    - u16
    constantsTouched: []
    func_position:
      end: 1590
      start: 1536
    functionDepth: 5
    functionLinenumber: 1536
    functionLinenumberEnd: 1590
    functionName: QcowFile::set_cluster_refcount
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - QcowFile::set_cluster_refcount
    - Result::push
    - Result::append
    - refcounts_per_block
    - Vec::new
    - QcowFile::get_new_cluster
    - set_cluster_refcount
    - Err
    - std::io::Error::from_raw_os_error
    - VecCache::new
    - read_refcount_block
    - VecCache::from_vec
    - std::io::Result::take
    - Some
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn set_cluster_refcount(&mut self, address: u64, refcount: u16) ->
      std::io::Result<Vec<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1594,1
    - Dst: filter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1594,1
    - Dst: std::result::Result::dirty
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1594,1
    - Dst: write_pointer_table_direct
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1598,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1599,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1601,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1601,1
    - Dst: Result::mark_clean
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1603,1
    - Dst: flush_blocks
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1606,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1608,1
    - Dst: sync_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1608,1
    - Dst: dirty
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1612,1
    - Dst: write_pointer_table
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1615,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1617,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1620,1
    - Dst: Result::get_cluster_refcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1622,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1622,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1624,1
    - Dst: Error::GettingRefcount
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1624,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1625,1
    - Dst: l1_entry_make
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1625,1
    - Dst: mark_clean
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1629,1
    - Dst: flush_table
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1634,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1636,1
    - Dst: sync_data
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1636,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1638,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1592
    functionDepth: 6
    functionLinenumber: 1592
    functionLinenumberEnd: 1639
    functionName: QcowFile::sync_caches
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - filter
    - Result::mark_clean
    - std::result::Result::dirty
    - Error::GettingRefcount
    - dirty
    - sync_all
    - Ok
    - write_pointer_table
    - flush_table
    - iter_mut
    - iter
    - write_pointer_table_direct
    - Err
    - std::io::Error::from_raw_os_error
    - Result::iter
    - l1_entry_make
    - Result::get_cluster_refcount
    - std::io::Error::other
    - sync_data
    - flush_blocks
    - file_mut
    - Result::map_err
    - mark_clean
    linkageType: ''
    returnType: std::io::Result
    signature: fn sync_caches(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1645
    functionName: QcowFile::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::sync_caches
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1649
    functionDepth: 7
    functionLinenumber: 1649
    functionLinenumberEnd: 1651
    functionName: QcowFile::drop
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowFile::sync_caches
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::limit_range_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1657,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1657,1
    - Dst: QcowFile::limit_range_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1662,1
    - Dst: QcowFile::file_read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1664,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1664,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1666,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1667,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1667,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1668,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1679,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1680
      start: 1655
    functionDepth: 17
    functionLinenumber: 1655
    functionLinenumberEnd: 1680
    functionName: QcowFile::read
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - is_some
    - as_mut
    - Result::read_exact
    - QcowFile::file_read
    - Result::seek
    - SeekFrom::Start
    - QcowFile::limit_range_file
    - Self::len
    - QcowFile::limit_range_cluster
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1686,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1689,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1689,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1690,1
    - Dst: u64::checked_sub
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1690,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1692,1
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1692,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1697,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1697,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1698,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1700,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1706,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1709,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1711,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 1
    argNames:
    - pos
    argTypes:
    - SeekFrom
    constantsTouched: []
    func_position:
      end: 1712
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1712
    functionName: QcowFile::seek
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 2
    functionsReached:
    - u64::checked_sub
    - QcowFile::virtual_size
    - Err
    - std::io::Error::from_raw_os_error
    - and_then
    - u64::checked_add
    - checked_sub
    - Some
    - checked_add
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek(&mut self, pos: SeekFrom) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::limit_range_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1718,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1718,1
    - Dst: QcowFile::file_offset_write
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1723,1
    - Dst: QcowFile::limit_range_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1724,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1726,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1726,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1726,1
    - Dst: file_mut
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1727,1
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1727,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1735,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1736
      start: 1716
    functionDepth: 9
    functionLinenumber: 1716
    functionLinenumberEnd: 1736
    functionName: QcowFile::write
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - seek
    - QcowFile::file_offset_write
    - file_mut
    - SeekFrom::Start
    - QcowFile::limit_range_file
    - Self::len
    - Ok
    - QcowFile::limit_range_cluster
    - write
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::sync_caches
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1739,1
    - Dst: append
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1740,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1738
    functionDepth: 7
    functionLinenumber: 1738
    functionLinenumberEnd: 1742
    functionName: QcowFile::flush
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - append
    - QcowFile::sync_caches
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: fn flush(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::flush
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1746
    functionDepth: 8
    functionLinenumber: 1746
    functionLinenumberEnd: 1748
    functionName: QcowFile::fsync
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowFile::flush
    linkageType: ''
    returnType: std::io::Result
    signature: fn fsync(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1753,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _len
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1756
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1756
    functionName: QcowFile::set_len
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::other
    - Err
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn set_len(&self, _len: u64) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1764,1
    - Dst: QcowFile::deallocate_bytes
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1765,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1770
      start: 1760
    functionDepth: 10
    functionLinenumber: 1760
    functionLinenumberEnd: 1770
    functionName: QcowFile::punch_hole
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - std::cmp::min
    - QcowFile::deallocate_bytes
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn punch_hole(&mut self, offset: u64, length: u64) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::punch_hole
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1775,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - u64
    - usize
    constantsTouched: []
    func_position:
      end: 1777
      start: 1774
    functionDepth: 11
    functionLinenumber: 1774
    functionLinenumberEnd: 1777
    functionName: QcowFile::write_zeroes_at
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - QcowFile::punch_hole
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_zeroes_at(&mut self, offset: u64, length: usize) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::find_allocated_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1782,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1783,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1785,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1786,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1786,1
    - Dst: QcowFile::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1786,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1786,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1788,1
    - Dst: QcowFile::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1792,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1792,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1793,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1793,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1796
      start: 1781
    functionDepth: 10
    functionLinenumber: 1781
    functionLinenumberEnd: 1796
    functionName: QcowFile::seek_hole
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::End
    - QcowFile::virtual_size
    - QcowFile::find_allocated_cluster
    - Err
    - QcowFile::seek
    - SeekFrom::Start
    - Some
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn seek_hole(&mut self, offset: u64) -> io::Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowFile::find_allocated_cluster
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1799,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1800,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1801,1
    - Dst: QcowFile::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1803,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1803,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1804,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1807
      start: 1798
    functionDepth: 10
    functionLinenumber: 1798
    functionLinenumberEnd: 1807
    functionName: QcowFile::seek_data
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowFile::find_allocated_cluster
    - Err
    - QcowFile::seek
    - SeekFrom::Start
    - Some
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn seek_data(&mut self, offset: u64) -> io::Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1812,1
    - Dst: QcowFile::virtual_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1811
    functionDepth: 1
    functionLinenumber: 1811
    functionLinenumberEnd: 1813
    functionName: QcowFile::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowFile::virtual_size
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn logical_size(&self) -> std::result::Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: physical_size
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1816,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1815
    functionDepth: 4
    functionLinenumber: 1815
    functionLinenumberEnd: 1819
    functionName: QcowFile::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - physical_size
    - map_err
    linkageType: ''
    returnType: std::result::Result
    signature: fn physical_size(&self) -> std::result::Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1825,1
    - Dst: Error::InvalidOffset
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1825,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - offset
    - cluster_bits
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 1828
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1828
    functionName: offset_is_cluster_boundary
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - Error::InvalidOffset
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn offset_is_cluster_boundary(offset: u64, cluster_bits: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1832,1
    - Dst: u64::is_multiple_of
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dividend
    - divisor
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1833
      start: 1831
    functionDepth: 8
    functionLinenumber: 1831
    functionLinenumberEnd: 1833
    functionName: div_round_up_u64
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 5
    functionsReached:
    - u64::is_multiple_of
    - u64::from
    linkageType: ''
    returnType: u64
    signature: 'fn div_round_up_u64(dividend: u64, divisor: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1837,1
    - Dst: u32::is_multiple_of
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dividend
    - divisor
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1838
      start: 1836
    functionDepth: 1
    functionLinenumber: 1836
    functionLinenumberEnd: 1838
    functionName: div_round_up_u32
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - u32::from
    - u32::is_multiple_of
    linkageType: ''
    returnType: u32
    signature: 'fn div_round_up_u32(dividend: u32, divisor: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1848,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1849,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1848,1
    - Dst: io::Result::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1851,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1852,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1851,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1855,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1856,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1856,1
    - Dst: io::Result::write
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1859,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1859,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1866,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 4
    argNames:
    - reader
    - writer
    - offset
    - size
    argTypes:
    - '&mut R'
    - '&mut W'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1867
      start: 1840
    functionDepth: 9
    functionLinenumber: 1840
    functionLinenumberEnd: 1867
    functionName: convert_copy
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - std::cmp::min
    - IoResult::map_err
    - std::io::Result::map_err
    - Result::seek
    - SeekFrom::Start
    - Result::read
    - io::Result::write
    - io::Result::seek
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn convert_copy<R, W>(reader: &mut R, writer: &mut W, offset: u64,
      size: u64) -> Result<()>whereR: Read + Seek,W: Write + Seek,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::seek_data
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1877,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1877,1
    - Dst: Result::seek_hole
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1884,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1884,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1889,1
    - Dst: Error::SeekingFile
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1889,1
    - Dst: io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1889,1
    - Dst: convert_copy
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1893,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1897,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - reader
    - writer
    - size
    argTypes:
    - '&mut R'
    - '&mut W'
    - u64
    constantsTouched: []
    func_position:
      end: 1898
      start: 1869
    functionDepth: 11
    functionLinenumber: 1869
    functionLinenumberEnd: 1898
    functionName: convert_reader_writer
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - Result::seek_hole
    - io::Result::map_err
    - Err
    - Error::SeekingFile
    - io::Error::from_raw_os_error
    - Result::seek_data
    - convert_copy
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn convert_reader_writer<R, W>(reader: &mut R, writer: &mut W, size:
      u64) -> Result<()>whereR: Read + Seek + SeekHole,W: Write + Seek,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1904,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1904,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1904,1
    - Dst: Result::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1905,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1905,1
    - Dst: RawFile::set_len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1908,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1908,1
    - Dst: QcowFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1912,1
    - Dst: convert_reader_writer
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1913,1
    - Dst: RawFile::set_len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1919,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1919,1
    - Dst: convert_reader_writer
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1922,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - reader
    - dst_file
    - dst_type
    argTypes:
    - '&mut R'
    - RawFile
    - ImageType
    constantsTouched: []
    func_position:
      end: 1925
      start: 1900
    functionDepth: 11
    functionLinenumber: 1900
    functionLinenumberEnd: 1925
    functionName: convert_reader
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 1
    functionsReached:
    - map_err
    - RawFile::set_len
    - SeekFrom::End
    - std::io::Result::map_err
    - QcowFile::new
    - Result::seek
    - convert_reader_writer
    - Result::rewind
    linkageType: ''
    returnType: Result
    signature: 'fn convert_reader<R>(reader: &mut R, dst_file: RawFile, dst_type:
      ImageType) -> Result<()>whereR: Read + Seek + SeekHole,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: detect_image_type
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1936,1
    - Dst: QcowFile::from_with_nesting_depth
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1940,1
    - Dst: convert_reader
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1941,1
    - Dst: convert_reader
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:1946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - src_file
    - dst_file
    - dst_type
    - src_max_nesting_depth
    argTypes:
    - RawFile
    - RawFile
    - ImageType
    - u32
    constantsTouched: []
    func_position:
      end: 1949
      start: 1930
    functionDepth: 9
    functionLinenumber: 1930
    functionLinenumberEnd: 1949
    functionName: convert
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 14
    functionsReached:
    - detect_image_type
    - convert_reader
    - QcowFile::from_with_nesting_depth
    linkageType: ''
    returnType: Result
    signature: 'pub fn convert(mut src_file: RawFile,dst_file: RawFile,dst_type: ImageType,src_max_nesting_depth:
      u32,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1998
    functionName: unit_tests::valid_header_v3
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn valid_header_v3() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2016
    functionName: unit_tests::valid_header_v2
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn valid_header_v2() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2019
    functionDepth: 0
    functionLinenumber: 2019
    functionLinenumberEnd: 2040
    functionName: unit_tests::test_huge_header
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn test_huge_header() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2043,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2043,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2043,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2043,1
    - Dst: Self::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2044,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2044,1
    - Dst: Self::set_len
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2045,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2045,1
    - Dst: Self::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2046,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - header
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2048
      start: 2042
    functionDepth: 9
    functionLinenumber: 2042
    functionLinenumberEnd: 2048
    functionName: unit_tests::basic_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - std::io::Result::unwrap
    - Self::rewind
    - Self::set_len
    - into_file
    - Self::write_all
    - unwrap
    - RawFile::new
    - Result::unwrap
    linkageType: ''
    returnType: RawFile
    signature: 'fn basic_file(header: &[u8]) -> RawFile'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testfn
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2054,1
    - Dst: basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - header
    - testfn
    argTypes:
    - '&[u8]'
    - F
    constantsTouched: []
    func_position:
      end: 2055
      start: 2050
    functionDepth: 10
    functionLinenumber: 2050
    functionLinenumberEnd: 2055
    functionName: unit_tests::with_basic_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - testfn
    - basic_file
    linkageType: ''
    returnType: void
    signature: 'fn with_basic_file<F>(header: &[u8], mut testfn: F)whereF: FnMut(RawFile),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2061,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2061,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2061,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2061,1
    - Dst: QcowFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2062,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2062,1
    - Dst: testfn
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - file_size
    - direct
    - testfn
    argTypes:
    - u64
    - bool
    - F
    constantsTouched: []
    func_position:
      end: 2065
      start: 2057
    functionDepth: 9
    functionLinenumber: 2057
    functionLinenumberEnd: 2065
    functionName: unit_tests::with_default_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - testfn
    - QcowFile::new
    - into_file
    - RawFile::new
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn with_default_file<F>(file_size: u64, direct: bool, mut testfn:
      F)whereF: FnMut(QcowFile),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2069,1
    - Dst: valid_header_v2
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2069,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2070,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2070,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2071,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2071,1
    - Dst: basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2075,1
    - Dst: valid_header_v2
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2075,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2076,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2076,1
    - Dst: set_backing_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2077,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2077,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2077,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2078,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2078,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2078,1
    - Dst: read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2079,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2068
    functionDepth: 10
    functionLinenumber: 2068
    functionLinenumberEnd: 2081
    functionName: unit_tests::write_read_start_backing_v2
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - Result::write_all
    - set_backing_file
    - seek
    - read_exact
    - valid_header_v2
    - Box::new
    - SeekFrom::Start
    - Result::unwrap
    - QcowFile::from
    - Some
    - basic_file
    linkageType: ''
    returnType: void
    signature: fn write_read_start_backing_v2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2085,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2085,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2086,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2086,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2087,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2087,1
    - Dst: basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2091,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2091,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2092,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2092,1
    - Dst: set_backing_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2093,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2093,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2093,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2094,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2094,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2094,1
    - Dst: read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2095,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2084
    functionDepth: 10
    functionLinenumber: 2084
    functionLinenumberEnd: 2097
    functionName: unit_tests::write_read_start_backing_v3
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - Result::write_all
    - set_backing_file
    - seek
    - read_exact
    - SeekFrom::Start
    - Box::new
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    - Some
    - basic_file
    linkageType: ''
    returnType: void
    signature: fn write_read_start_backing_v3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2101,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2102,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2102,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2102,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2102,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2103,1
    - Dst: write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2103,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2103,1
    - Dst: Self::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2107,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2107,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2108,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2100
    functionDepth: 10
    functionLinenumber: 2100
    functionLinenumberEnd: 2109
    functionName: unit_tests::default_header_v2
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - write_to
    - expect
    - TempFile::new
    - Self::rewind
    - QcowHeader::create_for_size_and_path
    - into_file
    - unwrap
    - Result::expect
    - RawFile::new
    - Result::unwrap
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn default_header_v2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2113,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2114,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2114,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2114,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2114,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2115,1
    - Dst: write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2115,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2115,1
    - Dst: Self::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2119,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2119,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2120,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2112
    functionDepth: 10
    functionLinenumber: 2112
    functionLinenumberEnd: 2121
    functionName: unit_tests::default_header_v3
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - write_to
    - expect
    - TempFile::new
    - Self::rewind
    - QcowHeader::create_for_size_and_path
    - into_file
    - unwrap
    - Result::expect
    - RawFile::new
    - Result::unwrap
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn default_header_v3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2125,1
    - Dst: valid_header_v2
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2125,1
    - Dst: QcowHeader::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2126,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2126,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2131,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2131,1
    - Dst: QcowHeader::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2132,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2124
    functionDepth: 11
    functionLinenumber: 2124
    functionLinenumberEnd: 2137
    functionName: unit_tests::header_read
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - with_basic_file
    - valid_header_v2
    - QcowHeader::new
    - Result::expect
    - valid_header_v3
    linkageType: ''
    returnType: void
    signature: fn header_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2141,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2141,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2141,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2143,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2143,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2143,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2143,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2144,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2144,1
    - Dst: Self::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2147,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2147,1
    - Dst: QcowHeader::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2148,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2140
    functionDepth: 10
    functionLinenumber: 2140
    functionLinenumberEnd: 2154
    functionName: unit_tests::header_v2_with_backing
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - Self::rewind
    - QcowHeader::create_for_size_and_path
    - Result::write_to
    - into_file
    - QcowHeader::new
    - unwrap
    - Result::expect
    - RawFile::new
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn header_v2_with_backing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2158,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2158,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2158,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2160,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2160,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2160,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2160,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2161,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2161,1
    - Dst: Self::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2164,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2164,1
    - Dst: QcowHeader::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2165,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2157
    functionDepth: 10
    functionLinenumber: 2157
    functionLinenumberEnd: 2171
    functionName: unit_tests::header_v3_with_backing
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - Self::rewind
    - QcowHeader::create_for_size_and_path
    - Result::write_to
    - into_file
    - QcowHeader::new
    - unwrap
    - Result::expect
    - RawFile::new
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn header_v3_with_backing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2176,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2176,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2178,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2178,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2178,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2178,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2179,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2179,1
    - Dst: Self::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2182,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2182,1
    - Dst: QcowFile::from_with_nesting_depth
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2184,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2174
    functionDepth: 10
    functionLinenumber: 2174
    functionLinenumberEnd: 2185
    functionName: unit_tests::no_backing_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - Self::rewind
    - QcowHeader::create_for_size_and_path
    - Result::write_to
    - into_file
    - unwrap
    - Result::expect
    - RawFile::new
    - QcowFile::from_with_nesting_depth
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn no_backing_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2191,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2191,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2191,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2193,1
    - Dst: TempFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2193,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2193,1
    - Dst: into_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2193,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2194,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2194,1
    - Dst: Self::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2197,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2197,1
    - Dst: QcowFile::from_with_nesting_depth
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2188
    functionDepth: 10
    functionLinenumber: 2188
    functionLinenumberEnd: 2201
    functionName: unit_tests::disable_backing_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - TempFile::new
    - Self::rewind
    - QcowHeader::create_for_size_and_path
    - Result::write_to
    - into_file
    - unwrap
    - Result::expect
    - RawFile::new
    - QcowFile::from_with_nesting_depth
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn disable_backing_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QcowHeader::create_for_size_and_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2208,1
    - Dst: String::to_str
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2208,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2209,1
    - Dst: File::create
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2210,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2210,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2213,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 2215
      start: 2207
    functionDepth: 13
    functionLinenumber: 2207
    functionLinenumberEnd: 2215
    functionName: unit_tests::new_self_referential_qcow
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - File::create
    - QcowHeader::create_for_size_and_path
    - Result::write_to
    - RawFile::new
    - String::to_str
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn new_self_referential_qcow(path: &Path) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TempDir::new_with_prefix
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2219,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2219,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2220,1
    - Dst: join
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2220,1
    - Dst: new_self_referential_qcow
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2222,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2222,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2222,1
    - Dst: QcowFile::from_with_nesting_depth
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2224,1
    - Dst: RawFile::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2225,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2226,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2226,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2226,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2218
    functionDepth: 14
    functionLinenumber: 2218
    functionLinenumberEnd: 2245
    functionName: unit_tests::max_nesting_backing
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - RawFile::new
    - Result::expect_err
    - File::open
    - new_self_referential_qcow
    - as_path
    - unwrap
    - QcowFile::from_with_nesting_depth
    - join
    - Result::unwrap
    - TempDir::new_with_prefix
    linkageType: ''
    returnType: void
    signature: fn max_nesting_backing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2250,1
    - Dst: QcowHeader::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2251,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2248
    functionDepth: 11
    functionLinenumber: 2248
    functionLinenumberEnd: 2253
    functionName: unit_tests::invalid_magic
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowHeader::new
    - with_basic_file
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn invalid_magic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2257,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2259,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2260,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2256
    functionDepth: 11
    functionLinenumber: 2256
    functionLinenumberEnd: 2262
    functionName: unit_tests::invalid_refcount_order
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - valid_header_v3
    - QcowFile::from
    - with_basic_file
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn invalid_refcount_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2266,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2268,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2269,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2265
    functionDepth: 11
    functionLinenumber: 2265
    functionLinenumberEnd: 2271
    functionName: unit_tests::invalid_cluster_bits
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - valid_header_v3
    - QcowFile::from
    - with_basic_file
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn invalid_cluster_bits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_huge_header
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2275,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2276,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2277,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2274
    functionDepth: 11
    functionLinenumber: 2274
    functionLinenumberEnd: 2279
    functionName: unit_tests::test_header_huge_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - test_huge_header
    - QcowFile::from
    - with_basic_file
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn test_header_huge_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2283,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2284,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2285,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2286,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2282
    functionDepth: 11
    functionLinenumber: 2282
    functionLinenumberEnd: 2288
    functionName: unit_tests::test_header_crazy_file_size_rejected
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - with_basic_file
    - Result::expect_err
    - copy_from_slice
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn test_header_crazy_file_size_rejected()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2292,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2294,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2295,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2291
    functionDepth: 11
    functionLinenumber: 2291
    functionLinenumberEnd: 2297
    functionName: unit_tests::test_huge_l1_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - valid_header_v3
    - QcowFile::from
    - with_basic_file
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn test_huge_l1_table()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_huge_header
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2301,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2306,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2307,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2300
    functionDepth: 11
    functionLinenumber: 2300
    functionLinenumberEnd: 2309
    functionName: unit_tests::test_header_1_tb_file_min_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - test_huge_header
    - QcowFile::from
    - with_basic_file
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn test_header_1_tb_file_min_cluster()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_huge_header
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2313,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2320,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2321,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2321,1
    - Dst: Result::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2322,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2322,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2322,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2325,1
    - Dst: Result::to_le_bytes
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2325,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2312
    functionDepth: 11
    functionLinenumber: 2312
    functionLinenumberEnd: 2328
    functionName: unit_tests::test_header_1_tb_file
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - with_basic_file
    - std::io::Result::expect
    - Result::write_all
    - test_huge_header
    - Result::to_le_bytes
    - Result::seek
    - SeekFrom::Start
    - Result::expect
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn test_header_1_tb_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2332,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2333,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2334,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2335,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2331
    functionDepth: 11
    functionLinenumber: 2331
    functionLinenumberEnd: 2337
    functionName: unit_tests::test_header_huge_num_refcounts
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - with_basic_file
    - Result::expect_err
    - copy_from_slice
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn test_header_huge_num_refcounts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2341,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2342,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2343,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2344,1
    - Dst: Result::expect_err
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2340
    functionDepth: 11
    functionLinenumber: 2340
    functionLinenumberEnd: 2346
    functionName: unit_tests::test_header_huge_refcount_offset
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - with_basic_file
    - Result::expect_err
    - copy_from_slice
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn test_header_huge_refcount_offset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2350,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2350,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2351,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2351,1
    - Dst: u32::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2352,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2352,1
    - Dst: u32::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2355,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2355,1
    - Dst: u32::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2356,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2349
    functionDepth: 11
    functionLinenumber: 2349
    functionLinenumberEnd: 2359
    functionName: unit_tests::write_read_start
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - with_basic_file
    - u32::rewind
    - u32::read_exact
    - u32::write_all
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn write_read_start()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2363,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2363,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2364,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2364,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2365,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2365,1
    - Dst: basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2368,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2368,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2369,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2369,1
    - Dst: set_backing_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2370,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2370,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2370,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2371,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2371,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2371,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2372,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2372,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2376,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2376,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2376,1
    - Dst: read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2377,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2362
    functionDepth: 10
    functionLinenumber: 2362
    functionLinenumberEnd: 2379
    functionName: unit_tests::write_read_start_backing_overlap
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - write_all
    - expect
    - Result::write_all
    - set_backing_file
    - seek
    - read_exact
    - SeekFrom::Start
    - Box::new
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    - Some
    - basic_file
    linkageType: ''
    returnType: void
    signature: fn write_read_start_backing_overlap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2383,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2383,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2384,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2384,1
    - Dst: u32::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2386,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2386,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2386,1
    - Dst: u32::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2387,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2387,1
    - Dst: u32::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2389,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2389,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2389,1
    - Dst: u32::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2390,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2382
    functionDepth: 11
    functionLinenumber: 2382
    functionLinenumberEnd: 2393
    functionName: unit_tests::offset_write_read
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - with_basic_file
    - std::io::Result::expect
    - u32::read_exact
    - SeekFrom::Start
    - u32::seek
    - u32::write_all
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn offset_write_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2397,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2397,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2398,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2398,1
    - Dst: u32::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2401,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2401,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2401,1
    - Dst: u32::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2402,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2402,1
    - Dst: u32::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2404,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2404,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2404,1
    - Dst: u32::write_zeroes
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2405,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2405,1
    - Dst: u32::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2409,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2409,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2409,1
    - Dst: u32::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2410,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2396
    functionDepth: 11
    functionLinenumber: 2396
    functionLinenumberEnd: 2416
    functionName: unit_tests::write_zeroes_read
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - u32::write_zeroes
    - expect
    - with_basic_file
    - std::io::Result::expect
    - u32::read_exact
    - SeekFrom::Start
    - u32::seek
    - u32::write_all
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn write_zeroes_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2423,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2423,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2424,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2424,1
    - Dst: u32::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2427,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2427,1
    - Dst: u32::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2428,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2428,1
    - Dst: u32::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2430,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2430,1
    - Dst: u32::write_zeroes
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2431,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2431,1
    - Dst: u32::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2435,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2435,1
    - Dst: u32::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2436,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2419
    functionDepth: 11
    functionLinenumber: 2419
    functionLinenumberEnd: 2440
    functionName: unit_tests::write_zeroes_full_cluster
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - u32::write_zeroes
    - expect
    - with_basic_file
    - u32::rewind
    - u32::read_exact
    - u32::write_all
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn write_zeroes_full_cluster()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2444,1
    - Dst: valid_header_v2
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2444,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2445,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2445,1
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2448,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2448,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2449,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2443
    functionDepth: 11
    functionLinenumber: 2443
    functionLinenumberEnd: 2452
    functionName: unit_tests::test_header
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - with_basic_file
    - valid_header_v2
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn test_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2456,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2456,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2457,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2457,1
    - Dst: u32::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2459,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2459,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2459,1
    - Dst: u32::read_exact
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2460,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2455
    functionDepth: 11
    functionLinenumber: 2455
    functionLinenumberEnd: 2464
    functionName: unit_tests::read_small_buffer
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - with_basic_file
    - std::io::Result::expect
    - u32::read_exact
    - SeekFrom::Start
    - u32::seek
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn read_small_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2468,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2468,1
    - Dst: QcowFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2469,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2469,1
    - Dst: u32::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2831,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2831,1
    - Dst: std::io::Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2831,1
    - Dst: u32::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2833,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2833,1
    - Dst: u32::read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2835,1
    - Dst: IoResult::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2467
    functionDepth: 11
    functionLinenumber: 2467
    functionLinenumberEnd: 2840
    functionName: unit_tests::replay_ext4
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - u32::read
    - with_basic_file
    - std::io::Result::expect
    - SeekFrom::Start
    - u32::seek
    - u32::write_all
    - IoResult::expect
    - Result::unwrap
    - valid_header_v3
    - QcowFile::from
    linkageType: ''
    returnType: void
    signature: fn replay_ext4()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: combo_write_read_common
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2843
    functionDepth: 11
    functionLinenumber: 2843
    functionLinenumberEnd: 2845
    functionName: unit_tests::combo_write_read
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - combo_write_read_common
    linkageType: ''
    returnType: void
    signature: fn combo_write_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: combo_write_read_common
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2848
    functionDepth: 11
    functionLinenumber: 2848
    functionLinenumberEnd: 2850
    functionName: unit_tests::combo_write_read_direct
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - combo_write_read_common
    linkageType: ''
    returnType: void
    signature: fn combo_write_read_direct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_default_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2853,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2861,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2862,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2861,1
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2864,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2864,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2867,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2868,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2867,1
    - Dst: read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2870,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2870,1
    - Dst: String::iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2872,1
    - Dst: impl Iterator::zip
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2872,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2872,1
    - Dst: rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2877,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2877,1
    - Dst: read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2878,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2878,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2880,1
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2886,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2887,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2886,1
    - Dst: read
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2889,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2889,1
    - Dst: String::iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2891,1
    - Dst: impl Iterator::zip
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2891,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 91
    argCount: 1
    argNames:
    - direct
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2896
      start: 2852
    functionDepth: 10
    functionLinenumber: 2852
    functionLinenumberEnd: 2896
    functionName: unit_tests::combo_write_read_common
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - with_default_file
    - expect
    - seek
    - SeekFrom::Start
    - String::iter
    - impl Iterator::zip
    - read
    - rewind
    - write
    linkageType: ''
    returnType: void
    signature: 'fn combo_write_read_common(direct: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::stream_position
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2899,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut QcowFile'
    constantsTouched: []
    func_position:
      end: 2900
      start: 2898
    functionDepth: 0
    functionLinenumber: 2898
    functionLinenumberEnd: 2900
    functionName: unit_tests::seek_cur
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Vec::stream_position
    linkageType: ''
    returnType: u64
    signature: 'fn seek_cur(file: &mut QcowFile) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek_data_common
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2903
    functionDepth: 11
    functionLinenumber: 2903
    functionLinenumberEnd: 2905
    functionName: unit_tests::seek_data
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - seek_data_common
    linkageType: ''
    returnType: void
    signature: fn seek_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek_data_common
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2908
    functionDepth: 11
    functionLinenumber: 2908
    functionLinenumberEnd: 2910
    functionName: unit_tests::seek_data_direct
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - seek_data_common
    linkageType: ''
    returnType: void
    signature: fn seek_data_direct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_default_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2913,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2922,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2922,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2922,1
    - Dst: Vec::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2923,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - direct
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2942
      start: 2912
    functionDepth: 10
    functionLinenumber: 2912
    functionLinenumberEnd: 2942
    functionName: unit_tests::seek_data_common
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - with_default_file
    - std::io::Result::unwrap
    - SeekFrom::Start
    - unwrap
    - Vec::seek
    - Vec::write_all
    linkageType: ''
    returnType: void
    signature: 'fn seek_data_common(direct: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek_hole_common
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2945
    functionDepth: 11
    functionLinenumber: 2945
    functionLinenumberEnd: 2947
    functionName: unit_tests::seek_hole
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - seek_hole_common
    linkageType: ''
    returnType: void
    signature: fn seek_hole()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek_hole_common
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2950
    functionDepth: 11
    functionLinenumber: 2950
    functionLinenumberEnd: 2952
    functionName: unit_tests::seek_hole_direct
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - seek_hole_common
    linkageType: ''
    returnType: void
    signature: fn seek_hole_direct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_default_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2955,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2963,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2963,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2971,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2971,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2971,1
    - Dst: Vec::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2972,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2972,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2981,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2981,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2984,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2984,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2987,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2987,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2990,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2990,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2993,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2993,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2996,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2996,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2999,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:2999,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3002,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3002,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3007,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3007,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3012,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3012,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3012,1
    - Dst: Vec::write_all
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3013,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3013,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3018,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3018,1
    - Dst: Vec::rewind
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3021,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 124
    argCount: 1
    argNames:
    - direct
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3025
      start: 2954
    functionDepth: 10
    functionLinenumber: 2954
    functionLinenumberEnd: 3025
    functionName: unit_tests::seek_hole_common
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - with_default_file
    - std::io::Result::unwrap
    - SeekFrom::Start
    - unwrap
    - Vec::seek
    - Vec::rewind
    - Vec::write_all
    linkageType: ''
    returnType: void
    signature: 'fn seek_hole_common(direct: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_basic_file
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3029,1
    - Dst: valid_header_v3
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3029,1
    - Dst: QcowHeader::new
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3030,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3030,1
    - Dst: QcowRawFile::from
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3033,1
    - Dst: Option::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3033,1
    - Dst: QcowFile::rebuild_refcounts
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3034,1
    - Dst: Result::expect
      Src: /src/cloud-hypervisor/block/src/qcow/mod.rs:3034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3028
    functionDepth: 11
    functionLinenumber: 3028
    functionLinenumberEnd: 3037
    functionName: unit_tests::rebuild_refcounts
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/mod.rs
    functionUses: 0
    functionsReached:
    - QcowFile::rebuild_refcounts
    - with_basic_file
    - QcowRawFile::from
    - QcowHeader::new
    - Result::expect
    - Option::expect
    - valid_header_v3
    linkageType: ''
    returnType: void
    signature: fn rebuild_refcounts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Layout::from_size_align
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:34,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:34,1
    - Dst: std::alloc::alloc_zeroed
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:36,1
    - Dst: ::libc::pread
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:41,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:45,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:45,1
    - Dst: std::alloc::dealloc
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - alignment
    argTypes:
    - RawFd
    - usize
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 7
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: is_valid_alignment
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 1
    functionsReached:
    - Layout::from_size_align
    - ::libc::pread
    - try_into
    - std::alloc::alloc_zeroed
    - std::result::Result::unwrap
    - unwrap
    - std::alloc::dealloc
    linkageType: ''
    returnType: bool
    signature: 'fn is_valid_alignment(fd: RawFd, alignment: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_alignment
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:61,1
    - Dst: Vec::as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - file
    - direct_io
    argTypes:
    - File
    - bool
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 8
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: RawFile::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 14
    functionsReached:
    - Vec::as_raw_fd
    - is_valid_alignment
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(file: File, direct_io: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:76,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:76,1
    - Dst: Result::div_ceil
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 7
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: RawFile::round_up
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 2
    functionsReached:
    - Result::div_ceil
    - unwrap
    - try_into
    linkageType: ''
    returnType: u64
    signature: 'fn round_up(&self, offset: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:81,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 7
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: RawFile::round_down
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 2
    functionsReached:
    - unwrap
    - try_into
    linkageType: ''
    returnType: u64
    signature: 'fn round_down(&self, offset: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:90,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:90,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:92,1
    - Dst: Self::as_ptr
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:93,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:93,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:94,1
    - Dst: usize::is_multiple_of
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 7
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: RawFile::is_aligned
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 2
    functionsReached:
    - try_into
    - is_multiple_of
    - usize::is_multiple_of
    - unwrap
    - Self::len
    - Self::as_ptr
    linkageType: ''
    returnType: bool
    signature: 'fn is_aligned(&self, buf: &[u8]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: RawFile::set_len
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 1
    functionsReached:
    - set_len
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn set_len(&self, size: u64) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: RawFile::metadata
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 3
    functionsReached:
    - metadata
    linkageType: ''
    returnType: std::io::Result
    signature: pub fn metadata(&self) -> std::io::Result<Metadata>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:106,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:107,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: RawFile::try_clone
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - expect
    - try_clone
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: pub fn try_clone(&self) -> std::io::Result<RawFile>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sync_all
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: RawFile::sync_all
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - sync_all
    linkageType: ''
    returnType: std::io::Result
    signature: pub fn sync_all(&self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sync_data
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: RawFile::sync_data
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - sync_data
    linkageType: ''
    returnType: std::io::Result
    signature: pub fn sync_data(&self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: RawFile::is_direct
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_direct(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawFile::is_aligned
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:129,1
    - Dst: read
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:130,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:132,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:132,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:132,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:132,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:133,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:135,1
    - Dst: RawFile::round_down
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:138,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:139,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:139,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:139,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:139,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:145,1
    - Dst: RawFile::round_up
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:146,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:148,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:148,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:148,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:148,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:146,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:146,1
    - Dst: Layout::from_size_align
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:157,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:157,1
    - Dst: std::alloc::alloc_zeroed
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:159,1
    - Dst: is_null
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:160,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:161,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:161,1
    - Dst: slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:165,1
    - Dst: ::libc::pread64
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:171,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:172,1
    - Dst: as_mut_ptr
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:173,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:174,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:175,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:175,1
    - Dst: std::alloc::dealloc
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:180,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:181,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:181,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:184,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:184,1
    - Dst: std::alloc::dealloc
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:187,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:188,1
    - Dst: Self::copy_from_slice
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:196,1
    - Dst: std::alloc::dealloc
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:198,1
    - Dst: RawFile::seek
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:200,1
    - Dst: SeekFrom::Current
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:200,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:200,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:200,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:200,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:202,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 126
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 204
      start: 128
    functionDepth: 8
    functionLinenumber: 128
    functionLinenumberEnd: 204
    functionName: RawFile::read
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - slice::from_raw_parts_mut
    - u64::try_into
    - io::Error::last_os_error
    - checked_add
    - Ok
    - RawFile::is_aligned
    - try_into
    - Self::copy_from_slice
    - RawFile::round_down
    - is_null
    - ::libc::pread64
    - Self::len
    - len
    - as_raw_fd
    - as_mut_ptr
    - Layout::from_size_align
    - std::io::Result::unwrap
    - std::alloc::alloc_zeroed
    - std::result::Result::unwrap
    - Err
    - unwrap
    - read
    - checked_sub
    - SeekFrom::Current
    - std::alloc::dealloc
    - RawFile::seek
    - RawFile::round_up
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawFile::is_aligned
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:209,1
    - Dst: write
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:210,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:212,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:212,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:212,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:212,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:213,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:215,1
    - Dst: RawFile::round_down
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:218,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:219,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:219,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:219,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:219,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:225,1
    - Dst: RawFile::round_up
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:226,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:228,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:228,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:228,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:228,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:226,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:226,1
    - Dst: Layout::from_size_align
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:237,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:237,1
    - Dst: std::alloc::alloc_zeroed
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:239,1
    - Dst: is_null
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:240,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:241,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:241,1
    - Dst: slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:245,1
    - Dst: ::libc::pread64
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:251,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:252,1
    - Dst: as_mut_ptr
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:253,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:254,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:255,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:255,1
    - Dst: std::alloc::dealloc
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:260,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:261,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:261,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:264,1
    - Dst: ::libc::pwrite64
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:270,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:271,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:272,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:273,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:274,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:274,1
    - Dst: std::alloc::dealloc
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:279,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:282,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:282,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:285,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:285,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:287,1
    - Dst: RawFile::seek
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:294,1
    - Dst: SeekFrom::Current
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:294,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:294,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:294,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:294,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:296,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 141
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 299
      start: 208
    functionDepth: 8
    functionLinenumber: 208
    functionLinenumberEnd: 299
    functionName: RawFile::write
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - slice::from_raw_parts_mut
    - u64::try_into
    - io::Error::last_os_error
    - checked_add
    - Ok
    - RawFile::is_aligned
    - try_into
    - RawFile::round_down
    - is_null
    - ::libc::pread64
    - Self::len
    - len
    - as_raw_fd
    - as_mut_ptr
    - Layout::from_size_align
    - as_ptr
    - std::io::Result::unwrap
    - std::alloc::alloc_zeroed
    - std::result::Result::unwrap
    - Err
    - unwrap
    - checked_sub
    - SeekFrom::Current
    - std::alloc::dealloc
    - RawFile::seek
    - RawFile::round_up
    - ::libc::pwrite64
    - copy_from_slice
    - write
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sync_all
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: RawFile::flush
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - sync_all
    linkageType: ''
    returnType: std::io::Result
    signature: fn flush(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:308,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:311,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - newpos
    argTypes:
    - SeekFrom
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: RawFile::seek
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 2
    functionsReached:
    - seek
    - Err
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek(&mut self, newpos: SeekFrom) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_zeroes_at
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - u64
    - usize
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 12
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: RawFile::write_zeroes_at
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - write_zeroes_at
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn write_zeroes_at(&mut self, offset: u64, length: usize) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: punch_hole
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 11
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: RawFile::punch_hole
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - punch_hole
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn punch_hole(&mut self, offset: u64, length: u64) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek_hole
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:332,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:337,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 341
      start: 331
    functionDepth: 11
    functionLinenumber: 331
    functionLinenumberEnd: 341
    functionName: RawFile::seek_hole
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - seek_hole
    - Err
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek_hole(&mut self, offset: u64) -> std::io::Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek_data
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:344,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:349,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 353
      start: 343
    functionDepth: 11
    functionLinenumber: 343
    functionLinenumberEnd: 353
    functionName: RawFile::seek_data
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - seek_data
    - Err
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek_data(&mut self, offset: u64) -> std::io::Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:358,1
    - Dst: RawFile::metadata
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:358,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:358,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: RawFile::logical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::map_err
    - RawFile::metadata
    - len
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn logical_size(&self) -> std::result::Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:362,1
    - Dst: RawFile::metadata
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:362,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:362,1
    - Dst: len
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: RawFile::physical_size
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::map_err
    - RawFile::metadata
    - len
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn physical_size(&self) -> std::result::Result<u64, crate::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:369,1
    - Dst: expect
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: RawFile::clone
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - expect
    - try_clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/block/src/qcow/raw_file.rs:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: RawFile::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecCache::from_vec
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:59,1
    - Dst: '&mut QcowRawFile::read_pointer_table'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:59,1
    - Dst: '&[u64]::len'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:64,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:66,1
    - Dst: CacheMap::new
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - raw_file
    - refcount_table_offset
    - refcount_table_entries
    - refcount_block_entries
    - cluster_size
    argTypes:
    - '&mut QcowRawFile'
    - u64
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: RefCount::new
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 1
    functionsReached:
    - '&[u64]::len'
    - '&mut QcowRawFile::read_pointer_table'
    - CacheMap::new
    - VecCache::from_vec
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(raw_file: &mut QcowRawFile,refcount_table_offset: u64,refcount_table_entries:
      u64,refcount_block_entries: u64,cluster_size: u64,) -> io::Result<RefCount>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: RefCount::refcounts_per_block
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn refcounts_per_block(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: RefCount::max_valid_cluster_offset
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn max_valid_cluster_offset(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RefCount::get_refcount_index
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:98,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:100,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:100,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:103,1
    - Dst: std::io::Result::take
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:105,1
    - Dst: insert
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:108,1
    - Dst: '&mut QcowRawFile::write_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:110,1
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:110,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:108,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:115,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:117,1
    - Dst: Error::NeedCluster
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:117,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:122,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:122,1
    - Dst: dirty
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:122,1
    - Dst: std::io::Result::take
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:127,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:129,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:131,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:135,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:135,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 4
    argNames:
    - raw_file
    - cluster_address
    - refcount
    - new_cluster
    argTypes:
    - '&mut QcowRawFile'
    - u64
    - u16
    - Option<(u64, VecCache<u16>)>
    constantsTouched: []
    func_position:
      end: 137
      start: 91
    functionDepth: 8
    functionLinenumber: 91
    functionLinenumberEnd: 137
    functionName: RefCount::set_cluster_refcount
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached:
    - get_values
    - insert
    - map_err
    - std::io::Result::take
    - Err
    - get_mut
    - Error::NeedCluster
    - contains_key
    - '&mut QcowRawFile::write_refcount_block'
    - Ok
    - unwrap
    - get
    - ok_or
    - RefCount::get_refcount_index
    - Some
    - dirty
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_cluster_refcount(&mut self,raw_file: &mut QcowRawFile,cluster_address:
      u64,refcount: u16,mut new_cluster: Option<(u64, VecCache<u16>)>,) -> Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:143,1
    - Dst: filter
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:143,1
    - Dst: std::result::Result::dirty
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:143,1
    - Dst: '&mut QcowRawFile::write_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:146,1
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:146,1
    - Dst: Err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:148,1
    - Dst: std::io::Error::from_raw_os_error
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:148,1
    - Dst: mark_clean
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:150,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - raw_file
    argTypes:
    - '&mut QcowRawFile'
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: RefCount::flush_blocks
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached:
    - filter
    - get_values
    - Err
    - std::io::Error::from_raw_os_error
    - '&mut QcowRawFile::write_refcount_block'
    - Ok
    - std::result::Result::dirty
    - mark_clean
    - iter_mut
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn flush_blocks(&mut self, raw_file: &mut QcowRawFile) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirty
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:158,1
    - Dst: '&mut QcowRawFile::write_pointer_table_direct'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:159,1
    - Dst: iter
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:160,1
    - Dst: mark_clean
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:161,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:162,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - raw_file
    argTypes:
    - '&mut QcowRawFile'
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: RefCount::flush_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached:
    - iter
    - dirty
    - '&mut QcowRawFile::write_pointer_table_direct'
    - mark_clean
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn flush_table(&mut self, raw_file: &mut QcowRawFile) -> io::Result<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RefCount::get_refcount_index
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:174,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:175,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:175,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:177,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:179,1
    - Dst: VecCache::from_vec
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:180,1
    - Dst: '&mut QcowRawFile::read_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:181,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:181,1
    - Dst: insert
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:186,1
    - Dst: '&mut QcowRawFile::write_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:188,1
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:188,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:186,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:192,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:192,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 2
    argNames:
    - raw_file
    - address
    argTypes:
    - '&mut QcowRawFile'
    - u64
    constantsTouched: []
    func_position:
      end: 193
      start: 169
    functionDepth: 8
    functionLinenumber: 169
    functionLinenumberEnd: 193
    functionName: RefCount::get_cluster_refcount
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached:
    - get_values
    - insert
    - map_err
    - io::Result::map_err
    - '&mut QcowRawFile::read_refcount_block'
    - contains_key
    - '&mut QcowRawFile::write_refcount_block'
    - unwrap
    - get
    - ok_or
    - RefCount::get_refcount_index
    - VecCache::from_vec
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_cluster_refcount(&mut self,raw_file: &mut QcowRawFile,address:
      u64,) -> Result<u16>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: RefCount::ref_table
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached:
    - get_values
    linkageType: ''
    returnType: '&[u64]'
    signature: pub fn ref_table(&self) -> &[u64]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:206,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:206,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:208,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:210,1
    - Dst: VecCache::from_vec
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:211,1
    - Dst: '&mut QcowRawFile::read_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:212,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:212,1
    - Dst: insert
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:218,1
    - Dst: '&mut QcowRawFile::write_refcount_block'
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:220,1
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:220,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:218,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:225,1
    - Dst: Some
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:225,1
    - Dst: get
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:226,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:226,1
    - Dst: get_values
      Src: /src/cloud-hypervisor/block/src/qcow/refcount.rs:226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 2
    argNames:
    - raw_file
    - table_index
    argTypes:
    - '&mut QcowRawFile'
    - usize
    constantsTouched: []
    func_position:
      end: 228
      start: 201
    functionDepth: 8
    functionLinenumber: 201
    functionLinenumberEnd: 228
    functionName: RefCount::refcount_block
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 0
    functionsReached:
    - get_values
    - insert
    - map_err
    - io::Result::map_err
    - '&mut QcowRawFile::read_refcount_block'
    - contains_key
    - '&mut QcowRawFile::write_refcount_block'
    - unwrap
    - get
    - ok_or
    - Some
    - VecCache::from_vec
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn refcount_block(&mut self,raw_file: &mut QcowRawFile,table_index:
      usize,) -> Result<Option<&[u16]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: RefCount::get_refcount_index
    functionSourceFile: /src/cloud-hypervisor/block/src/qcow/refcount.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: (usize, usize)
    signature: 'fn get_refcount_index(&self, address: u64) -> (usize, usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:53,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:56,1
    - Dst: FdtWriterResult::trim
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:58,1
    - Dst: chars
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:58,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:66,1
    - Dst: OptionParserError::InvalidSyntax
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:66,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:66,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:71,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:72,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:77,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:79,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:82,1
    - Dst: OptionParserError::InvalidSyntax
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:82,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:82,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 86
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 86
    functionName: split_commas
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 3
    functionsReached:
    - FdtWriterResult::trim
    - Vec::new
    - FdtWriterResult::to_owned
    - String::new
    - Err
    - OptionParserError::InvalidSyntax
    - Vec::push
    - chars
    - Result::push
    - Ok
    linkageType: ''
    returnType: OptionParserResult
    signature: 'fn split_commas(s: &str) -> OptionParserResult<Vec<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: OptionParser::new
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 28
    functionsReached:
    - HashMap::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:96,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:96,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:97,1
    - Dst: split_commas
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:100,1
    - Dst: iter
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:100,1
    - Dst: splitn
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:101,1
    - Dst: collect
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:101,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:102,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:103,1
    - Dst: OptionParserError::UnknownOption
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:103,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:103,1
    - Dst: len
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:106,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:107,1
    - Dst: OptionParserError::InvalidSyntax
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:107,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:107,1
    - Dst: Some
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:109,1
    - Dst: trim
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:109,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:109,1
    - Dst: Some
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:111,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:111,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 64
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 118
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 118
    functionName: OptionParser::parse
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - iter
    - to_owned
    - collect
    - trim
    - String::new
    - Err
    - get_mut
    - OptionParserError::InvalidSyntax
    - split_commas
    - len
    - splitn
    - OptionParserError::UnknownOption
    - Some
    - Ok
    linkageType: ''
    returnType: OptionParserResult
    signature: 'pub fn parse(&mut self, input: &str) -> OptionParserResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:127,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - option
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 9
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: OptionParser::add
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&str::to_owned'
    - insert
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn add(&mut self, option: &str) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:139,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - option
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 9
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: OptionParser::add_valueless
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&str::to_owned'
    - insert
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn add_valueless(&mut self, option: &str) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:151,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:151,1
    - Dst: clone
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:153,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:151,1
    - Dst: FdtWriterResult::is_empty
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:155,1
    - Dst: Some
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:158,1
    - Dst: dequote
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - option
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: OptionParser::get
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - clone
    - dequote
    - and_then
    - get
    - Some
    - FdtWriterResult::is_empty
    linkageType: ''
    returnType: Option
    signature: 'pub fn get(&self, option: &str) -> Option<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:164,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:164,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:166,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - option
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 8
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: OptionParser::is_set
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - and_then
    - is_some
    - get
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_set(&self, option: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:171,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:171,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:171,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:172,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:174,1
    - Dst: std::result::Result::is_empty
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:174,1
    - Dst: Some
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:177,1
    - Dst: Parseable::from_str
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:177,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:177,1
    - Dst: OptionParserError::Conversion
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:178,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:178,1
    - Dst: std::result::Result::to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - option
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 8
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: OptionParser::convert
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - std::result::Result::map_err
    - std::result::Result::to_owned
    - and_then
    - std::result::Result::is_empty
    - Parseable::from_str
    - get
    - OptionParserError::Conversion
    - '&str::to_owned'
    - Some
    - Ok
    linkageType: ''
    returnType: OptionParserResult
    signature: 'pub fn convert<T: Parseable>(&self, option: &str) -> OptionParserResult<Option<T>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::to_lowercase
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:198,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:198,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:199,1
    - Dst: Toggle
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:199,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:200,1
    - Dst: Toggle
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:200,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:201,1
    - Dst: Toggle
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:201,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:202,1
    - Dst: Toggle
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:202,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:203,1
    - Dst: Toggle
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:203,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:204,1
    - Dst: ToggleParseError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:204,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: Toggle::from_str
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::to_lowercase
    - FdtWriterResult::to_owned
    - as_str
    - Err
    - Toggle
    - ToggleParseError::InvalidValue
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:221,1
    - Dst: ByteSized
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:221,1
    - Dst: FdtWriterResult::trim
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:222,1
    - Dst: FdtWriterResult::ends_with
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:223,1
    - Dst: FdtWriterResult::ends_with
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:225,1
    - Dst: FdtWriterResult::ends_with
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:227,1
    - Dst: FdtWriterResult::trim_end_matches
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:233,1
    - Dst: parse::<u64>
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:234,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:234,1
    - Dst: ByteSizedParseError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:235,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 238
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 238
    functionName: ByteSized::from_str
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - ByteSizedParseError::InvalidValue
    - FdtWriterResult::trim
    - ByteSized
    - FdtWriterResult::ends_with
    - map_err
    - FdtWriterResult::to_owned
    - parse::<u64>
    - FdtWriterResult::trim_end_matches
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:253,1
    - Dst: FdtWriterResult::trim
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:254,1
    - Dst: trim_matches
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:254,1
    - Dst: split
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:254,1
    - Dst: collect
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:254,1
    - Dst: iter
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:260,1
    - Dst: Self::split
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:261,1
    - Dst: collect
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:261,1
    - Dst: len
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:263,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:264,1
    - Dst: IntegerListParseError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:264,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:264,1
    - Dst: parse::<u64>
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:267,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:267,1
    - Dst: IntegerListParseError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:269,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:269,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:271,1
    - Dst: len
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:273,1
    - Dst: parse::<u64>
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:274,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:274,1
    - Dst: IntegerListParseError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:276,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:276,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:278,1
    - Dst: IntegerListParseError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:278,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:278,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:282,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:287,1
    - Dst: IntegerList
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 84
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 288
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 288
    functionName: IntegerList::from_str
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 1
    functionsReached:
    - iter
    - FdtWriterResult::trim
    - IntegerListParseError::InvalidValue
    - map_err
    - Vec::new
    - Self::split
    - to_owned
    - IntegerList
    - Err
    - parse::<u64>
    - Ok
    - len
    - to_string
    - trim_matches
    - Result::push
    - split
    - collect
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse::<u64>
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:299,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: u64::parse_value
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - parse::<u64>
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn parse_value(input: &str) -> Result<Self, TupleError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:324,1
    - Dst: IntegerList::from_str
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:324,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:324,1
    - Dst: iter
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:324,1
    - Dst: map
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:324,1
    - Dst: collect
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: Vec::parse_value
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - collect
    - std::result::Result::map_err
    - IntegerList::from_str
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn parse_value(input: &str) -> Result<Self, TupleError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:352,1
    - Dst: FdtWriterResult::trim
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:353,1
    - Dst: strip_prefix
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:353,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:353,1
    - Dst: FdtWriterResult::strip_suffix
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:356,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:353,1
    - Dst: TupleError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:357,1
    - Dst: FdtWriterResult::to_string
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:357,1
    - Dst: split_commas
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:358,1
    - Dst: OptionParserResult::map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:358,1
    - Dst: iter
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:359,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:363,1
    - Dst: iter
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:363,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:363,1
    - Dst: Err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:368,1
    - Dst: TupleError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:368,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:368,1
    - Dst: Some
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:370,1
    - Dst: <S as Parseable>::from_str
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:376,1
    - Dst: None::ok_or
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:377,1
    - Dst: TupleError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:377,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:377,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:376,1
    - Dst: TupleError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:379,1
    - Dst: None::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:379,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:379,1
    - Dst: TupleValue::parse_value
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:380,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:381,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:384,1
    - Dst: Tuple
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 385
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 385
    functionName: Tuple::from_str
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - None::unwrap
    - to_owned
    - std::result::Result::map_err
    - to_string
    - Ok
    - FdtWriterResult::trim
    - Vec::new
    - and_then
    - FdtWriterResult::strip_suffix
    - OptionParserResult::map_err
    - Tuple
    - None::ok_or
    - iter
    - ok_or_else
    - Err
    - TupleError::InvalidValue
    - FdtWriterResult::to_string
    - strip_prefix
    - TupleValue::parse_value
    - Vec::push
    - split_commas
    - <S as Parseable>::from_str
    - as_bytes
    - enumerate
    - Some
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::bytes
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:401,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:404,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:408,1
    - Dst: String::from_utf8_unchecked
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: dequote
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 2
    functionsReached:
    - String::from_utf8_unchecked
    - FdtWriterResult::bytes
    - Result::push
    linkageType: ''
    returnType: String
    signature: 'fn dequote(s: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dequote
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:425,1
    - Dst: String::parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 11
    functionLinenumber: 424
    functionLinenumberEnd: 426
    functionName: T::from_str
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - String::parse
    - dequote
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split_commas
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:434,1
    - Dst: FdtWriterResult::trim
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:434,1
    - Dst: trim_matches
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:434,1
    - Dst: OptionParserResult::map_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:434,1
    - Dst: StringListParseError::InvalidValue
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:435,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:435,1
    - Dst: iter
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:434,1
    - Dst: map
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:434,1
    - Dst: usize::to_owned
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:437,1
    - Dst: collect
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:434,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:440,1
    - Dst: StringList
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 6
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: StringList::from_str
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - FdtWriterResult::trim
    - StringListParseError::InvalidValue
    - FdtWriterResult::to_owned
    - usize::to_owned
    - Ok
    - split_commas
    - StringList
    - OptionParserResult::map_err
    - trim_matches
    - collect
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:450,1
    - Dst: add
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:451,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:451,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:451,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:451,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:451,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:451,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:460,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:460,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:461,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:461,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:464,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:464,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:466,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:466,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:470,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:470,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:473,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:473,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:477,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:477,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:484,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:484,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:491,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:491,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:492,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:492,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:493,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:493,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:502,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:502,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:507,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:507,1
    - Dst: parse
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:508,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/option_parser/src/lib.rs:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 449
    functionDepth: 11
    functionLinenumber: 449
    functionLinenumberEnd: 509
    functionName: unit_tests::test_option_parser
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached:
    - add
    - parse
    - '&mut Self::add'
    - OptionParser::new
    - Result::unwrap
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_option_parser()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: unit_tests::parse_bytes
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn parse_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: unit_tests::check_dequote
    functionSourceFile: /src/cloud-hypervisor/option_parser/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn check_dequote()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:37,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:38,1
    - Dst: expect
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:38,1
    - Dst: u32::from_ne_bytes
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:42,1
    - Dst: to_be
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 7
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: is_selftest
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 1
    functionsReached:
    - expect
    - try_into
    - u32::from_ne_bytes
    - to_be
    - len
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_selftest(input: &[u8]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::socketpair
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:137,1
    - Dst: Result::as_mut_ptr
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:137,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:139,1
    - Dst: Error::PrepareDataFd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:139,1
    - Dst: set_msgfd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:145,1
    - Dst: Emulator::run_control_cmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:147,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:147,1
    - Dst: net_gen::setsockopt
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:157,1
    - Dst: std::mem::size_of::<net_gen::iff::timeval>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:162,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:165,1
    - Dst: Error::PrepareDataFd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:165,1
    - Dst: set_datafd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:171,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 131
    functionDepth: 8
    functionLinenumber: 131
    functionLinenumberEnd: 173
    functionName: Emulator::prepare_data_fd
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached:
    - mem::size_of::<u32>
    - Error::PrepareDataFd
    - libc::socketpair
    - Emulator::run_control_cmd
    - set_datafd
    - Err
    - std::mem::size_of::<net_gen::iff::timeval>
    - Result::as_mut_ptr
    - set_msgfd
    - net_gen::setsockopt
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn prepare_data_fd(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Emulator::run_control_cmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:179,1
    - Dst: mem::size_of::<u64>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:183,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: Emulator::probe_caps
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached:
    - Emulator::run_control_cmd
    - mem::size_of::<u64>
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn probe_caps(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: Emulator::check_caps
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn check_caps(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:224,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:225,1
    - Dst: '&mut dyn Ptm::ptm_to_request'
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:227,1
    - Dst: Vec::<u8>::with_capacity
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:230,1
    - Dst: Self::extend
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:232,1
    - Dst: Self::extend
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:233,1
    - Dst: write
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:236,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:236,1
    - Dst: Error::RunControlCmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:237,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:242,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:243,1
    - Dst: Error::RunControlCmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:243,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:250,1
    - Dst: Error::RunControlCmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:250,1
    - Dst: read
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:258,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:258,1
    - Dst: Error::RunControlCmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:259,1
    - Dst: '&mut dyn Ptm::update_ptm_with_response'
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:265,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:265,1
    - Dst: Error::RunControlCmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:267,1
    - Dst: '&mut dyn Ptm::set_member_type'
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:273,1
    - Dst: '&mut dyn Ptm::get_result_code'
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:276,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:277,1
    - Dst: Error::RunControlCmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:277,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 82
    argCount: 4
    argNames:
    - cmd
    - msg
    - msg_len_in
    - msg_len_out
    argTypes:
    - Commands
    - '&mut dyn Ptm'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 284
      start: 215
    functionDepth: 7
    functionLinenumber: 215
    functionLinenumberEnd: 284
    functionName: Emulator::run_control_cmd
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 7
    functionsReached:
    - mem::size_of::<u32>
    - Self::extend
    - map_err
    - '&mut dyn Ptm::set_member_type'
    - '&mut dyn Ptm::ptm_to_request'
    - Err
    - Result::map_err
    - '&mut dyn Ptm::update_ptm_with_response'
    - Self::len
    - Vec::<u8>::with_capacity
    - Error::RunControlCmd
    - '&mut dyn Ptm::get_result_code'
    - to_be_bytes
    - read
    - Ok
    - write
    linkageType: ''
    returnType: Result
    signature: 'fn run_control_cmd(&mut self,cmd: Commands,msg: &mut dyn Ptm,msg_len_in:
      usize,msg_len_out: usize,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PtmEst::new
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:287,1
    - Dst: Emulator::run_control_cmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:293,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 286
    functionDepth: 8
    functionLinenumber: 286
    functionLinenumberEnd: 307
    functionName: Emulator::get_established_flag
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached:
    - PtmEst::new
    - mem::size_of::<u32>
    - Emulator::run_control_cmd
    linkageType: ''
    returnType: bool
    signature: pub fn get_established_flag(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::zeroed
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:312,1
    - Dst: mem::size_of::<sockaddr_storage>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:313,1
    - Dst: is_selftest
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:314,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:322,1
    - Dst: mem::zeroed
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:327,1
    - Dst: ptr::null_mut
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:328,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:330,1
    - Dst: len
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:331,1
    - Dst: ptr::null_mut
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:332,1
    - Dst: libc::sendmsg
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:337,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:339,1
    - Dst: Error::SendReceive
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:339,1
    - Dst: libc::recvfrom
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:349,1
    - Dst: as_mut_ptr
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:351,1
    - Dst: len
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:352,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:358,1
    - Dst: Error::SendReceive
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:358,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:371,1
    - Dst: Error::SelfTest
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:371,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:376,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 96
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&mut BackendCmd'
    constantsTouched: []
    func_position:
      end: 377
      start: 310
    functionDepth: 8
    functionLinenumber: 310
    functionLinenumberEnd: 377
    functionName: Emulator::deliver_request
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - mem::size_of::<sockaddr_storage>
    - Error::SelfTest
    - mem::zeroed
    - ptr::null_mut
    - Err
    - libc::sendmsg
    - len
    - Error::SendReceive
    - as_mut_ptr
    - libc::recvfrom
    - is_selftest
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn deliver_request(&mut self, cmd: &mut BackendCmd) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:384,1
    - Dst: Error::CheckCaps
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:384,1
    - Dst: Emulator::run_control_cmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:388,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:392,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 8
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: Emulator::cancel_cmd
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached:
    - mem::size_of::<u32>
    - Emulator::run_control_cmd
    - Err
    - Error::CheckCaps
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn cancel_cmd(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PtmSetBufferSize::new
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:399,1
    - Dst: Emulator::stop_tpm
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:401,1
    - Dst: Emulator::run_control_cmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:403,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:406,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:407,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:410,1
    - Dst: Self::get_bufsize
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - wantedsize
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 9
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: Emulator::set_buffer_size
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 2
    functionsReached:
    - Self::get_bufsize
    - mem::size_of::<u32>
    - Emulator::stop_tpm
    - Emulator::run_control_cmd
    - PtmSetBufferSize::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_buffer_size(&mut self, wantedsize: usize) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PtmInit::new
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:414,1
    - Dst: Emulator::set_buffer_size
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:417,1
    - Dst: Emulator::run_control_cmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:421,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:424,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:425,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - buffersize
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 10
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: Emulator::startup_tpm
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached:
    - Emulator::set_buffer_size
    - mem::size_of::<u32>
    - Emulator::run_control_cmd
    - PtmInit::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn startup_tpm(&mut self, buffersize: usize) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Emulator::run_control_cmd
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:434,1
    - Dst: mem::size_of::<u32>
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:434,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 8
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: Emulator::stop_tpm
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 1
    functionsReached:
    - Emulator::run_control_cmd
    - mem::size_of::<u32>
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn stop_tpm(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Emulator::set_buffer_size
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:440,1
    - Dst: Result::unwrap_or
      Src: /src/cloud-hypervisor/tpm/src/emulator.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 10
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: Emulator::get_buffer_size
    functionSourceFile: /src/cloud-hypervisor/tpm/src/emulator.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_or
    - Emulator::set_buffer_size
    linkageType: ''
    returnType: usize
    signature: pub fn get_buffer_size(&mut self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: SocketDev::default
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: SocketDev::new
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SocketDev::connect
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:63,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: SocketDev::init
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 0
    functionsReached:
    - SocketDev::connect
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn init(&mut self, path: impl AsRef<Path>) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsRef<Path>::as_ref
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:68,1
    - Dst: impl AsRef<Path>::to_str
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:71,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:71,1
    - Dst: UnixStream::connect
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:72,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:72,1
    - Dst: Error::ConnectToSocket
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:73,1
    - Dst: FdtWriterResult::as_raw_fd
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:75,1
    - Dst: Some
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:76,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - socket_path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: SocketDev::connect
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 1
    functionsReached:
    - UnixStream::connect
    - impl AsRef<Path>::as_ref
    - FdtWriterResult::as_raw_fd
    - impl AsRef<Path>::to_str
    - Result::map_err
    - Error::ConnectToSocket
    - unwrap
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn connect(&mut self, socket_path: impl AsRef<Path>) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - RawFd
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: SocketDev::set_datafd
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_datafd(&mut self, fd: RawFd)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - RawFd
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: SocketDev::set_msgfd
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_msgfd(&mut self, fd: RawFd)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:93,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:93,1
    - Dst: send_with_fd
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:93,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:93,1
    - Dst: Error::WriteToSocket
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:99,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: SocketDev::send_full
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - Error::WriteToSocket
    - send_with_fd
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn send_full(&self, buf: &[u8]) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:106,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:107,1
    - Dst: Error::WriteToSocket
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:107,1
    - Dst: SocketDev::send_full
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:113,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:120,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:122,1
    - Dst: Error::WriteToSocket
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 126
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: SocketDev::write
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 0
    functionsReached:
    - is_none
    - Error::WriteToSocket
    - Err
    - SocketDev::send_full
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn write(&mut self, buf: &[u8]) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:129,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:130,1
    - Dst: Error::ReadFromSocket
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:130,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:134,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:134,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:135,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:135,1
    - Dst: Error::ReadFromSocket
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:136,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/socket.rs:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 9
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: SocketDev::read
    functionSourceFile: /src/cloud-hypervisor/tpm/src/socket.rs
    functionUses: 0
    functionsReached:
    - is_none
    - Error::ReadFromSocket
    - as_ref
    - IoResult::map_err
    - Err
    - unwrap
    - Result::read
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn read(&mut self, buf: &mut [u8]) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: PtmResult::ptm_to_request
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: fn ptm_to_request(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: PtmResult::get_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MemberType
    signature: fn get_member_type(&self) -> MemberType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:97,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:99,1
    - Dst: Error::ConvertToPtm
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:99,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:104,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:104,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:104,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 7
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: PtmResult::update_ptm_with_response
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - u32::from_be_bytes
    - try_into
    - Error::ConvertToPtm
    - Err
    - Self::len
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_ptm_with_response(&mut self, buf: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _mem
    argTypes:
    - MemberType
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: PtmResult::set_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_member_type(&mut self, _mem: MemberType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - res
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: PtmResult::set_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_result_code(&mut self, res: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: PtmResult::get_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn get_result_code(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: PtmCap::ptm_to_request
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: fn ptm_to_request(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: PtmCap::get_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MemberType
    signature: fn get_member_type(&self) -> MemberType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:134,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:136,1
    - Dst: Error::ConvertToPtm
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:136,1
    - Dst: u64::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:140,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:140,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:140,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 7
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: PtmCap::update_ptm_with_response
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - try_into
    - Error::ConvertToPtm
    - Err
    - Self::len
    - u64::from_be_bytes
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_ptm_with_response(&mut self, buf: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _mem
    argTypes:
    - MemberType
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: PtmCap::set_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_member_type(&mut self, _mem: MemberType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _res
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: PtmCap::set_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_result_code(&mut self, _res: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: PtmCap::get_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn get_result_code(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: PtmEst::new
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: PtmEst::default
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 5
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: PtmEst::ptm_to_request
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: fn ptm_to_request(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: PtmEst::get_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MemberType
    signature: fn get_member_type(&self) -> MemberType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:195,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:197,1
    - Dst: Error::ConvertToPtm
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:197,1
    - Dst: PtmEst::set_result_code
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:201,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:201,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:201,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:201,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: PtmEst::update_ptm_with_response
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - u32::from_be_bytes
    - try_into
    - Error::ConvertToPtm
    - Err
    - Self::len
    - unwrap
    - PtmEst::set_result_code
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_ptm_with_response(&mut self, buf: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _mem
    argTypes:
    - MemberType
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: PtmEst::set_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_member_type(&mut self, _mem: MemberType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - res
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: PtmEst::set_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_result_code(&mut self, res: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: PtmEst::get_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn get_result_code(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: PtmInit::default
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: PtmInit::new
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::<u8>::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:246,1
    - Dst: Self::extend_from_slice
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:247,1
    - Dst: to_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: PtmInit::ptm_to_request
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - to_be_bytes
    - Vec::<u8>::new
    - Self::extend_from_slice
    linkageType: ''
    returnType: Vec
    signature: fn ptm_to_request(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: PtmInit::get_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MemberType
    signature: fn get_member_type(&self) -> MemberType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:257,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:259,1
    - Dst: Error::ConvertToPtm
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:259,1
    - Dst: PtmInit::set_member_type
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:263,1
    - Dst: PtmInit::set_result_code
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:264,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:264,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:264,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:264,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 7
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: PtmInit::update_ptm_with_response
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - u32::from_be_bytes
    - try_into
    - PtmInit::set_result_code
    - Error::ConvertToPtm
    - PtmInit::set_member_type
    - Err
    - Self::len
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_ptm_with_response(&mut self, buf: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemberType
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: PtmInit::set_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_member_type(&mut self, mem: MemberType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - res
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: PtmInit::set_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_result_code(&mut self, res: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: PtmInit::get_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn get_result_code(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - req_buffsize
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: PtmSetBufferSize::new
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(req_buffsize: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: PtmSetBufferSize::get_bufsize
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn get_bufsize(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::<u8>::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:335,1
    - Dst: Self::extend_from_slice
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:336,1
    - Dst: to_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: PtmSetBufferSize::ptm_to_request
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - to_be_bytes
    - Vec::<u8>::new
    - Self::extend_from_slice
    linkageType: ''
    returnType: Vec
    signature: fn ptm_to_request(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: PtmSetBufferSize::get_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MemberType
    signature: fn get_member_type(&self) -> MemberType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:346,1
    - Dst: Err
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:348,1
    - Dst: Error::ConvertToPtm
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:348,1
    - Dst: PtmSetBufferSize::set_member_type
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:352,1
    - Dst: PtmSetBufferSize::set_result_code
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:353,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:353,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:353,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:353,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:356,1
    - Dst: u32::try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:356,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:356,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:359,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:359,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:359,1
    - Dst: u32::from_be_bytes
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:362,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:362,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:362,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 365
      start: 344
    functionDepth: 7
    functionLinenumber: 344
    functionLinenumberEnd: 365
    functionName: PtmSetBufferSize::update_ptm_with_response
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - u32::from_be_bytes
    - PtmSetBufferSize::set_result_code
    - try_into
    - Error::ConvertToPtm
    - std::result::Result::unwrap
    - Err
    - PtmSetBufferSize::set_member_type
    - u32::try_into
    - Self::len
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_ptm_with_response(&mut self, buf: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemberType
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: PtmSetBufferSize::set_member_type
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_member_type(&mut self, mem: MemberType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - res
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: PtmSetBufferSize::set_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_result_code(&mut self, res: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: PtmSetBufferSize::get_result_code
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn get_result_code(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_ptm_with_response
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:387,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 8
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: unit_tests::test_ptmresult
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - update_ptm_with_response
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_ptmresult() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::update_ptm_with_response
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:395,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 8
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: unit_tests::test_ptmcap
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Result::update_ptm_with_response
    linkageType: ''
    returnType: Result
    signature: fn test_ptmcap() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PtmEst::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:401,1
    - Dst: update_ptm_with_response
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:403,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 8
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: unit_tests::test_ptmest
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - PtmEst::new
    - update_ptm_with_response
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_ptmest() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PtmInit::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:411,1
    - Dst: Result::ptm_to_request
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:413,1
    - Dst: Result::update_ptm_with_response
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:416,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 6
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: unit_tests::test_ptminit
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Result::ptm_to_request
    - PtmInit::new
    - Result::update_ptm_with_response
    linkageType: ''
    returnType: Result
    signature: fn test_ptminit() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PtmSetBufferSize::new
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:423,1
    - Dst: Self::update_ptm_with_response
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:429,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/tpm/src/lib.rs:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 422
    functionDepth: 8
    functionLinenumber: 422
    functionLinenumberEnd: 436
    functionName: unit_tests::test_ptmsetbuffersize
    functionSourceFile: /src/cloud-hypervisor/tpm/src/lib.rs
    functionUses: 0
    functionsReached:
    - PtmSetBufferSize::new
    - Self::update_ptm_with_response
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_ptmsetbuffersize() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:592,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:592,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:595,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:595,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - '&ffi::CStr'
    - u32
    constantsTouched: []
    func_position:
      end: 599
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 599
    functionName: memfd_create
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 2
    functionsReached:
    - std::io::Error::last_os_error
    - Result::as_ptr
    - Err
    - libc::syscall
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn memfd_create(name: &ffi::CStr, flags: u32) -> std::result::Result<RawFd,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _int_type
    argTypes:
    - VirtioInterruptType
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: NoopVirtioInterrupt::trigger
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn trigger(&self, _int_type: VirtioInterruptType) -> std::result::Result<(),
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Queue::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:168,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:168,1
    - Dst: u32::set_next_avail
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:169,1
    - Dst: u32::set_next_used
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:170,1
    - Dst: u32::set_event_idx
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:171,1
    - Dst: u32::set_size
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:172,1
    - Dst: u32::try_set_desc_table_address
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:174,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:174,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:174,1
    - Dst: u32::try_set_avail_ring_address
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:176,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:176,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:176,1
    - Dst: u32::try_set_used_ring_address
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:178,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:178,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:178,1
    - Dst: u32::set_ready
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8; QUEUE_DATA_SIZE]'
    constantsTouched: []
    func_position:
      end: 183
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 183
    functionName: setup_virt_queue
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - u32::try_set_used_ring_address
    - u32::try_set_desc_table_address
    - u32::set_ready
    - u32::set_next_avail
    - u32::try_set_avail_ring_address
    - u32::set_size
    - u32::set_event_idx
    - unwrap
    - u32::set_next_used
    - Self::unwrap
    - Queue::new
    linkageType: ''
    returnType: Queue
    signature: 'fn setup_virt_queue(bytes: &[u8; QUEUE_DATA_SIZE]) -> Queue'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:171,1
    - Dst: '&[u8]::iter'
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:172,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:172,1
    - Dst: Queue::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:173,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:173,1
    - Dst: u32::try_set_desc_table_address
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:178,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:178,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:178,1
    - Dst: u32::try_set_avail_ring_address
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:180,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:180,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:180,1
    - Dst: u32::try_set_used_ring_address
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:182,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:182,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:182,1
    - Dst: u32::set_next_avail
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:185,1
    - Dst: u32::set_next_used
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:186,1
    - Dst: u32::set_event_idx
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:187,1
    - Dst: u32::set_size
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:188,1
    - Dst: u32::set_ready
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:190,1
    - Dst: usize::push
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 63
    argCount: 2
    argNames:
    - bytes
    - base_addr
    argTypes:
    - '&[&[u8; QUEUE_DATA_SIZE]]'
    - u64
    constantsTouched: []
    func_position:
      end: 195
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 195
    functionName: setup_virt_queues
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::iter'
    - vm_memory::GuestAddress
    - u32::try_set_used_ring_address
    - u32::try_set_desc_table_address
    - Vec::new
    - u32::set_ready
    - usize::push
    - impl Iterator::enumerate
    - u32::try_set_avail_ring_address
    - u32::set_next_avail
    - unwrap
    - u32::set_event_idx
    - u32::set_size
    - u32::set_next_used
    - Self::unwrap
    - Queue::new
    linkageType: ''
    returnType: Vec
    signature: 'fn setup_virt_queues(bytes: &[&[u8; QUEUE_DATA_SIZE]], base_addr:
      u64) -> Vec<Queue>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::pipe2
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs:191,1
    - Dst: Result::as_mut_ptr
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs:191,1
    - Dst: Err
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs:192,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs:192,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs:194,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs:195,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: create_pipe
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::last_os_error
    - File::from_raw_fd
    - Err
    - libc::pipe2
    - Result::as_mut_ptr
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_pipe() -> Result<(File, File), std::io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:2,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:3,1
    - Dst: create_dummy_virtio_mem
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:16,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:16,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:16,1
    - Dst: setup_virt_queue
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:19,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:19,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:19,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:22,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:23,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:22,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:26,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:27,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:26,1
    - Dst: GuestMemoryMmap::insert_region
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:33,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:33,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:34,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:35,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:34,1
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:40,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:42,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:42,1
    - Dst: EventFd::from_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:43,1
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:43,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:43,1
    - Dst: write
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:46,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:46,1
    - Dst: activate
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:48,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:51,1
    - Dst: ActivateResult::ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:48,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 60
    functionDepth: 15
    functionLinenumber: 60
    functionLinenumberEnd: 119
    functionName: fuzz_target
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::from_ranges
    - libc::dup
    - wait_for_epoll_threads
    - EventFd::new
    - is_err
    - setup_virt_queue
    - GuestMemoryAtomic::new
    - Result::unwrap
    - activate
    - try_into
    - '&[u8]::len'
    - Arc::new
    - as_raw_fd
    - GuestMemoryMmap::insert_region
    - vm_memory::GuestAddress
    - unwrap
    - EventFd::from_raw_fd
    - create_dummy_virtio_mem
    - GuestMemoryMmap::write_slice
    - ActivateResult::ok
    - write
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:78,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:78,1
    - Dst: Err
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:80,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:80,1
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:83,1
    - Dst: Err
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:85,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:85,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - name
    - flags
    - size
    argTypes:
    - '&ffi::CStr'
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: memfd_create_with_size
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs
    functionUses: 1
    functionsReached:
    - Result::as_ptr
    - Err
    - libc::syscall
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn memfd_create_with_size(name: &ffi::CStr, flags: u32, size: usize)
      -> Result<RawFd, io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create_with_size
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:102,1
    - Dst: ffi::CString::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:102,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:102,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:102,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:103,1
    - Dst: Vec::try_clone
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:108,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:108,1
    - Dst: MmapRegion::build
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:109,1
    - Dst: Some
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:110,1
    - Dst: FileOffset::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:110,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:109,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:116,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:120,1
    - Dst: Pmem::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:124,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:125,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:131,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:131,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 135
    functionName: create_dummy_pmem
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs
    functionUses: 0
    functionsReached:
    - Vec::try_clone
    - vm_memory::GuestAddress
    - std::io::Result::unwrap
    - ffi::CString::new
    - File::from_raw_fd
    - MmapRegion::build
    - FileOffset::new
    - Arc::new
    - EventFd::new
    - memfd_create_with_size
    - unwrap
    - io::Result::unwrap
    - Pmem::new
    - Result::unwrap
    - '&str::to_owned'
    - Some
    linkageType: ''
    returnType: Pmem
    signature: fn create_dummy_pmem() -> Pmem
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _index
    argTypes:
    - InterruptIndex
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: TestInterrupt::trigger
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: Result
    signature: 'fn trigger(&self, _index: InterruptIndex) -> Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _index
    - _config
    - _masked
    - _set_gsi
    argTypes:
    - InterruptIndex
    - InterruptSourceConfig
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: TestInterrupt::update
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update(&self,_index: InterruptIndex,_config: InterruptSourceConfig,_masked:
      bool,_set_gsi: bool,) -> Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: TestInterrupt::set_gsi
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn set_gsi(&self) -> Result<(), std::io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs:71,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs:71,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _index
    argTypes:
    - InterruptIndex
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: TestInterrupt::notifier
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs
    functionUses: 0
    functionsReached:
    - Some
    - unwrap
    - try_clone
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, _index: InterruptIndex) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - event_fd
    argTypes:
    - EventFd
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: TestInterrupt::new
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(event_fd: EventFd) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::socketpair
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:200,1
    - Dst: Result::as_mut_ptr
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:204,1
    - Dst: Err
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:207,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:207,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:211,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:212,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: create_socketpair
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs
    functionUses: 0
    functionsReached:
    - libc::socketpair
    - std::io::Error::last_os_error
    - File::from_raw_fd
    - Err
    - Result::as_mut_ptr
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_socketpair() -> Result<(File, File), std::io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: EpollEvent::from
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(v: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollContext::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:241,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:241,1
    - Dst: add_event_custom
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:242,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:242,1
    - Dst: File::try_clone
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:245,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:245,1
    - Dst: add_event_custom
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:246,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:246,1
    - Dst: add_event_custom
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:253,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:253,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:257,1
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:260,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:262,1
    - Dst: bool::iter
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:268,1
    - Dst: impl Iterator::take
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:268,1
    - Dst: into
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:269,1
    - Dst: File::write_all
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:275,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:275,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:279,1
    - Dst: File::read_to_end
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:280,1
    - Dst: ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 3
    argNames:
    - dummy_tap
    - tap_input_bytes
    - exit_evt
    argTypes:
    - File
    - '&[u8; TAP_INPUT_SIZE]'
    - EventFd
    constantsTouched: []
    func_position:
      end: 289
      start: 236
    functionDepth: 15
    functionLinenumber: 236
    functionLinenumberEnd: 289
    functionName: tap_backend_stub
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs
    functionUses: 0
    functionsReached:
    - epoll::wait
    - std::io::Result::unwrap
    - Vec::new
    - EpollContext::new
    - into
    - ok
    - File::write_all
    - unwrap
    - usize::raw_os_error
    - result::Result::unwrap
    - as_raw_fd
    - File::try_clone
    - bool::iter
    - impl Iterator::take
    - add_event_custom
    - File::read_to_end
    linkageType: ''
    returnType: void
    signature: 'fn tap_backend_stub(mut dummy_tap: File,tap_input_bytes: &[u8; TAP_INPUT_SIZE],exit_evt:
      EventFd,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:71,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:73,1
    - Dst: concat
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:72,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:78,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:78,1
    - Dst: Request::try_from
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:81,1
    - Dst: Result::ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 82
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 82
    functionName: generate_request
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Result::ok
    - Request::try_from
    - len
    - concat
    - as_bytes
    - to_vec
    linkageType: ''
    returnType: Option
    signature: 'fn generate_request(bytes: &[u8]) -> Option<Request>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - Box<VmConfig>
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: StubApiRequestHandler::vm_create
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_create(&mut self, _: Box<VmConfig>) -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: StubApiRequestHandler::vm_boot
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_boot(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: StubApiRequestHandler::vm_pause
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_pause(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: StubApiRequestHandler::vm_resume
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_resume(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: StubApiRequestHandler::vm_snapshot
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_snapshot(&mut self, _: &str) -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - RestoreConfig
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: StubApiRequestHandler::vm_restore
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_restore(&mut self, _: RestoreConfig) -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames: []
    argTypes:
    - String
    - u64
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: StubApiRequestHandler::vm_resize_disk
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_resize_disk(&mut self, _: String, _: u64) -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: StubApiRequestHandler::vm_coredump
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_coredump(&mut self, _: &str) -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: StubApiRequestHandler::vm_shutdown
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_shutdown(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: StubApiRequestHandler::vm_reboot
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_reboot(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:129,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:130,1
    - Dst: CpuFeatures::default
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:138,1
    - Dst: Some
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:154,1
    - Dst: Some
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:155,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:155,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:166,1
    - Dst: DebugConsoleConfig::default
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 210
    functionName: StubApiRequestHandler::vm_info
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - DebugConsoleConfig::default
    - PathBuf::from
    - Box::new
    - CpuFeatures::default
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_info(&self) -> Result<VmInfoResponse, VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:214,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:215,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: StubApiRequestHandler::vmm_ping
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - String::new
    - Vec::new
    linkageType: ''
    returnType: VmmPingResponse
    signature: fn vmm_ping(&self) -> VmmPingResponse
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: StubApiRequestHandler::vm_delete
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_delete(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: StubApiRequestHandler::vmm_shutdown
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vmm_shutdown(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames: []
    argTypes:
    - Option<u32>
    - Option<u64>
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: StubApiRequestHandler::vm_resize
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_resize(&mut self, _: Option<u32>, _: Option<u64>, _: Option<u64>)
      -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames: []
    argTypes:
    - String
    - u64
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: StubApiRequestHandler::vm_resize_zone
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_resize_zone(&mut self, _: String, _: u64) -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - DeviceConfig
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: StubApiRequestHandler::vm_add_device
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_device(&mut self, _: DeviceConfig) -> Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - UserDeviceConfig
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: StubApiRequestHandler::vm_add_user_device
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_user_device(&mut self, _: UserDeviceConfig) -> Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: StubApiRequestHandler::vm_remove_device
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_remove_device(&mut self, _: String) -> Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - DiskConfig
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: StubApiRequestHandler::vm_add_disk
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_disk(&mut self, _: DiskConfig) -> Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - FsConfig
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: StubApiRequestHandler::vm_add_fs
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_fs(&mut self, _: FsConfig) -> Result<Option<Vec<u8>>, VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - PmemConfig
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: StubApiRequestHandler::vm_add_pmem
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_pmem(&mut self, _: PmemConfig) -> Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - NetConfig
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: StubApiRequestHandler::vm_add_net
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_net(&mut self, _: NetConfig) -> Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - VdpaConfig
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: StubApiRequestHandler::vm_add_vdpa
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_vdpa(&mut self, _: VdpaConfig) -> Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - VsockConfig
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: StubApiRequestHandler::vm_add_vsock
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_add_vsock(&mut self, _: VsockConfig) -> Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: StubApiRequestHandler::vm_counters
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_counters(&mut self) -> Result<Option<Vec<u8>>, VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: StubApiRequestHandler::vm_power_button
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_power_button(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - VmReceiveMigrationData
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: StubApiRequestHandler::vm_receive_migration
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_receive_migration(&mut self, _: VmReceiveMigrationData) -> Result<(),
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - VmSendMigrationData
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: StubApiRequestHandler::vm_send_migration
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vm_send_migration(&mut self, _: VmSendMigrationData) -> Result<(),
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: StubApiRequestHandler::vm_nmi
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn vm_nmi(&mut self) -> Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollContext::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:295,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:295,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:296,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:296,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:297,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:297,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:299,1
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:303,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:305,1
    - Dst: bool::iter
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:314,1
    - Dst: impl Iterator::take
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:314,1
    - Dst: into
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:315,1
    - Dst: EventFd::read
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:321,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:321,1
    - Dst: Receiver<ApiRequest>::recv
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:322,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:322,1
    - Dst: api_request
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:323,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs:323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 3
    argNames:
    - exit_evt
    - api_evt
    - api_receiver
    argTypes:
    - EventFd
    - EventFd
    - Receiver<ApiRequest>
    constantsTouched: []
    func_position:
      end: 331
      start: 294
    functionDepth: 15
    functionLinenumber: 294
    functionLinenumberEnd: 331
    functionName: http_receiver_stub
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
    functionUses: 0
    functionsReached:
    - Receiver<ApiRequest>::recv
    - epoll::wait
    - EpollContext::new
    - std::result::Result::unwrap
    - into
    - api_request
    - IoResult::unwrap
    - unwrap
    - EventFd::read
    - usize::raw_os_error
    - result::Result::unwrap
    - as_raw_fd
    - bool::iter
    - impl Iterator::take
    - add_event
    linkageType: ''
    returnType: void
    signature: 'fn http_receiver_stub(exit_evt: EventFd, api_evt: EventFd, api_receiver:
      Receiver<ApiRequest>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/qcow.rs:41,1
    - Dst: '&mut T::read_exact'
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/qcow.rs:42,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/qcow.rs:42,1
    - Dst: u64::from_le_bytes
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/qcow.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - readable
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: read_u64
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/qcow.rs
    functionUses: 4
    functionsReached:
    - '&mut T::read_exact'
    - u64::from_le_bytes
    - unwrap
    - size_of::<u64>
    linkageType: ''
    returnType: u64
    signature: 'fn read_u64<T: Read>(readable: &mut T) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:131,1
    - Dst: vmm::memory_manager::MemoryManager::create_ram_region
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:133,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:136,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:133,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:148,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:148,1
    - Dst: BlocksState::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:148,1
    - Dst: Result::size
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:148,1
    - Dst: Mem::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:151,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:152,1
    - Dst: map
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:155,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:158,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:158,1
    - Dst: '&Arc::clone'
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:159,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8; VIRTIO_MEM_DATA_SIZE]'
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 14
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: create_dummy_virtio_mem
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs
    functionUses: 1
    functionsReached:
    - '&Arc::clone'
    - map
    - vm_memory::GuestAddress
    - Mem::new
    - Arc::new
    - EventFd::new
    - vmm::memory_manager::MemoryManager::create_ram_region
    - Mutex::new
    - Result::size
    - io::Result::unwrap
    - Result::unwrap
    - '&str::to_owned'
    - Some
    - BlocksState::new
    linkageType: ''
    returnType: (Mem, Arc
    signature: 'fn create_dummy_virtio_mem(bytes: &[u8; VIRTIO_MEM_DATA_SIZE]) ->
      (Mem, Arc<GuestRegionMmap>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:23,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:23,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - _gva
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: EmulatorContext::read_memory
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 0
    functionsReached:
    - String::len
    - String::copy_from_slice
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn read_memory(&self, _gva: u64, data: &mut [u8]) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _gva
    - _data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: EmulatorContext::write_memory
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_memory(&mut self, _gva: u64, _data: &[u8]) -> Result<(),
      PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:33,1
    - Dst: clone
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _cpu_id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: EmulatorContext::cpu_state
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 1
    functionsReached:
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn cpu_state(&self, _cpu_id: usize) -> Result<Self::CpuState, PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _cpu_id
    - _state
    argTypes:
    - usize
    - Self::CpuState
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: EmulatorContext::set_cpu_state
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_cpu_state(&self, _cpu_id: usize, _state: Self::CpuState) ->
      Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _ip
    - _data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: EmulatorContext::fetch
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn fetch(&self, _ip: u64, _data: &mut [u8]) -> Result<(), PlatformError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:67,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:68,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:69,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:70,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:71,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:72,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:73,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:74,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:75,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:76,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:77,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:78,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:79,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - u
    argTypes:
    - '&mut arbitrary::Unstructured<''_>'
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: generate_segment_register
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 1
    functionsReached:
    - super::Result::arbitrary
    - Ok
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn generate_segment_register(u: &mut arbitrary::Unstructured<''_>,)
      -> arbitrary::Result<SegmentRegister>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:86,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:87,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - u
    argTypes:
    - '&mut arbitrary::Unstructured<''_>'
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: generate_descriptor_table
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 1
    functionsReached:
    - super::Result::arbitrary
    - Ok
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn generate_descriptor_table(u: &mut arbitrary::Unstructured<''_>,)
      -> arbitrary::Result<DescriptorTable>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arbitrary::Unstructured::new
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:95,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:98,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:99,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:100,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:101,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:102,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:103,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:104,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:105,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:106,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:107,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:108,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:109,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:110,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:111,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:112,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:113,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:114,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:115,1
    - Dst: StandardRegisters::Mshv
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:121,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:124,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:125,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:126,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:127,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:128,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:129,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:130,1
    - Dst: generate_segment_register
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:131,1
    - Dst: generate_descriptor_table
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:132,1
    - Dst: generate_descriptor_table
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:133,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:134,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:135,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:136,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:137,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:138,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:139,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:140,1
    - Dst: super::Result::arbitrary
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:141,1
    - Dst: arbitrary::<[u8; 8]>
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:144,1
    - Dst: arbitrary::<[u8; 16]>
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:145,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs:152,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 124
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 153
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 153
    functionName: generate_context_and_instruction
    functionSourceFile: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
    functionUses: 0
    functionsReached:
    - generate_segment_register
    - arbitrary::Unstructured::new
    - arbitrary::<[u8; 8]>
    - generate_descriptor_table
    - arbitrary::<[u8; 16]>
    - super::Result::arbitrary
    - StandardRegisters::Mshv
    - Ok
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn generate_context_and_instruction(bytes: &[u8],) -> arbitrary::Result<(EmulatorContext,
      [u8; 16])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __IncompleteArrayField
      Src: /src/cloud-hypervisor/net_gen/src/if_tun.rs:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: __IncompleteArrayField::new
    functionSourceFile: /src/cloud-hypervisor/net_gen/src/if_tun.rs
    functionUses: 0
    functionsReached:
    - __IncompleteArrayField
    linkageType: ''
    returnType: Self
    signature: pub const fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: __IncompleteArrayField::as_ptr
    functionSourceFile: /src/cloud-hypervisor/net_gen/src/if_tun.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '*const T'
    signature: pub fn as_ptr(&self) -> *const T
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: __IncompleteArrayField::as_mut_ptr
    functionSourceFile: /src/cloud-hypervisor/net_gen/src/if_tun.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '*mut T'
    signature: pub fn as_mut_ptr(&mut self) -> *mut T
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::std::slice::from_raw_parts
      Src: /src/cloud-hypervisor/net_gen/src/if_tun.rs:29,1
    - Dst: __IncompleteArrayField::as_ptr
      Src: /src/cloud-hypervisor/net_gen/src/if_tun.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: __IncompleteArrayField::as_slice
    functionSourceFile: /src/cloud-hypervisor/net_gen/src/if_tun.rs
    functionUses: 0
    functionsReached:
    - __IncompleteArrayField::as_ptr
    - ::std::slice::from_raw_parts
    linkageType: ''
    returnType: '&[T]'
    signature: 'pub unsafe fn as_slice(&self, len: usize) -> &[T]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::std::slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/net_gen/src/if_tun.rs:33,1
    - Dst: __IncompleteArrayField::as_mut_ptr
      Src: /src/cloud-hypervisor/net_gen/src/if_tun.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: __IncompleteArrayField::as_mut_slice
    functionSourceFile: /src/cloud-hypervisor/net_gen/src/if_tun.rs
    functionUses: 0
    functionsReached:
    - ::std::slice::from_raw_parts_mut
    - __IncompleteArrayField::as_mut_ptr
    linkageType: ''
    returnType: '&mut [T]'
    signature: 'pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt::Result::write_str
      Src: /src/cloud-hypervisor/net_gen/src/if_tun.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut ::std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: __IncompleteArrayField::fmt
    functionSourceFile: /src/cloud-hypervisor/net_gen/src/if_tun.rs
    functionUses: 0
    functionsReached:
    - fmt::Result::write_str
    linkageType: ''
    returnType: ::std::fmt::Result
    signature: 'fn fmt(&self, fmt: &mut ::std::fmt::Formatter<''_>) -> ::std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::zeroed
      Src: /src/cloud-hypervisor/net_gen/src/iff.rs:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1193
    functionName: ifreq::default
    functionSourceFile: /src/cloud-hypervisor/net_gen/src/iff.rs
    functionUses: 0
    functionsReached:
    - std::mem::zeroed
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: StatusCode::from_raw
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: StatusCode
    signature: 'fn from_raw(code: usize) -> StatusCode'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:63,1
    - Dst: StatusCode::from_raw
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:63,1
    - Dst: bool::trim
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:64,1
    - Dst: parse
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:64,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - code
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 11
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: StatusCode::parse
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 1
    functionsReached:
    - map_err
    - StatusCode::from_raw
    - parse
    - bool::trim
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn parse(code: &str) -> Result<StatusCode, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: StatusCode::is_server_error
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_server_error(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::find
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:78,1
    - Dst: map
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:78,1
    - Dst: len
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:79,1
    - Dst: find
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:79,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - res
    - header
    argTypes:
    - '&''a str'
    - '&''a str'
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: get_header
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 1
    functionsReached:
    - find
    - map
    - u64::find
    - unwrap
    - len
    linkageType: ''
    returnType: Option
    signature: 'fn get_header<''a>(res: &''a str, header: &''a str) -> Option<&''a
      str>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::find
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:83,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:84,1
    - Dst: StatusCode::parse
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:84,1
    - Dst: '&str::len'
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:85,1
    - Dst: find
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:85,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:85,1
    - Dst: Err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - res
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 12
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: get_status_code
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 1
    functionsReached:
    - find
    - u64::find
    - '&str::len'
    - Err
    - unwrap
    - StatusCode::parse
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn get_status_code(res: &str) -> Result<StatusCode, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:93,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:98,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:98,1
    - Dst: u64::push_str
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:103,1
    - Dst: std::str::from_utf8
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:103,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:103,1
    - Dst: u64::find
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:106,1
    - Dst: Some
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:107,1
    - Dst: '&str::len'
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:107,1
    - Dst: get_header
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:110,1
    - Dst: Some
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:111,1
    - Dst: u64::trim
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:111,1
    - Dst: parse
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:111,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:111,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:116,1
    - Dst: u64::len
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:123,1
    - Dst: None::and
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:128,1
    - Dst: None::map
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:128,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:128,1
    - Dst: get_status_code
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:129,1
    - Dst: Result::is_server_error
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:131,1
    - Dst: Err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:132,1
    - Dst: Error::ServerResponse
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:132,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 79
    argCount: 1
    argNames:
    - socket
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 136
      start: 92
    functionDepth: 11
    functionLinenumber: 92
    functionLinenumberEnd: 136
    functionName: parse_http_response
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 1
    functionsReached:
    - map_err
    - IoResult::map_err
    - std::str::from_utf8
    - Result::read
    - String::from
    - Error::ServerResponse
    - Ok
    - get_header
    - u64::trim
    - get_status_code
    - u64::find
    - String::new
    - '&str::len'
    - Some
    - Result::is_server_error
    - Err
    - u64::len
    - unwrap
    - None::map
    - u64::push_str
    - None::is_none
    - parse
    - None::and
    linkageType: ''
    returnType: Result
    signature: 'fn parse_http_response(socket: &mut dyn Read) -> Result<Option<String>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::send_with_fds
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:147,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:149,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:147,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:158,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:159,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:158,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:163,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:163,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:166,1
    - Dst: Option<&str>::as_bytes
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:167,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:166,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:171,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:171,1
    - Dst: parse_http_response
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 5
    argNames:
    - socket
    - method
    - full_command
    - request_body
    - request_fds
    argTypes:
    - '&mut T'
    - '&str'
    - '&str'
    - Option<&str>
    - '&[RawFd]'
    constantsTouched: []
    func_position:
      end: 174
      start: 140
    functionDepth: 12
    functionLinenumber: 140
    functionLinenumberEnd: 174
    functionName: simple_api_full_command_with_fds_and_response
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 2
    functionsReached:
    - Option<&str>::as_bytes
    - Result::write_all
    - map_err
    - IoResult::map_err
    - Result::send_with_fds
    - as_bytes
    - parse_http_response
    - Result::flush
    linkageType: ''
    returnType: Result
    signature: 'pub fn simple_api_full_command_with_fds_and_response<T: Read + Write
      + ScmSocket>(socket: &mut T,method: &str,full_command: &str,request_body: Option<&str>,request_fds:
      &[RawFd],) -> Result<Option<String>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_api_full_command_with_fds_and_response
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:183,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - socket
    - method
    - full_command
    - request_body
    - request_fds
    argTypes:
    - '&mut T'
    - '&str'
    - '&str'
    - Option<&str>
    - '&[RawFd]'
    constantsTouched: []
    func_position:
      end: 196
      start: 176
    functionDepth: 13
    functionLinenumber: 176
    functionLinenumberEnd: 196
    functionName: simple_api_full_command_with_fds
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 2
    functionsReached:
    - simple_api_full_command_with_fds_and_response
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn simple_api_full_command_with_fds<T: Read + Write + ScmSocket>(socket:
      &mut T,method: &str,full_command: &str,request_body: Option<&str>,request_fds:
      &[RawFd],) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_api_full_command_with_fds
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - socket
    - method
    - full_command
    - request_body
    argTypes:
    - '&mut T'
    - '&str'
    - '&str'
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 14
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: simple_api_full_command
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 1
    functionsReached:
    - simple_api_full_command_with_fds
    linkageType: ''
    returnType: Result
    signature: 'pub fn simple_api_full_command<T: Read + Write + ScmSocket>(socket:
      &mut T,method: &str,full_command: &str,request_body: Option<&str>,) -> Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_api_full_command_with_fds_and_response
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - socket
    - method
    - full_command
    - request_body
    argTypes:
    - '&mut T'
    - '&str'
    - '&str'
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 13
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: simple_api_full_command_and_response
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 0
    functionsReached:
    - simple_api_full_command_with_fds_and_response
    linkageType: ''
    returnType: Result
    signature: 'pub fn simple_api_full_command_and_response<T: Read + Write + ScmSocket>(socket:
      &mut T,method: &str,full_command: &str,request_body: Option<&str>,) -> Result<Option<String>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_api_full_command_with_fds
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - socket
    - method
    - c
    - request_body
    - request_fds
    argTypes:
    - '&mut T'
    - '&str'
    - '&str'
    - Option<&str>
    - '&[RawFd]'
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 14
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: simple_api_command_with_fds
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 2
    functionsReached:
    - simple_api_full_command_with_fds
    linkageType: ''
    returnType: Result
    signature: 'pub fn simple_api_command_with_fds<T: Read + Write + ScmSocket>(socket:
      &mut T,method: &str,c: &str,request_body: Option<&str>,request_fds: &[RawFd],)
      -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_api_command_with_fds
      Src: /src/cloud-hypervisor/api_client/src/lib.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - socket
    - method
    - c
    - request_body
    argTypes:
    - '&mut T'
    - '&str'
    - '&str'
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 15
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: simple_api_command
    functionSourceFile: /src/cloud-hypervisor/api_client/src/lib.rs
    functionUses: 1
    functionsReached:
    - simple_api_command_with_fds
    linkageType: ''
    returnType: Result
    signature: 'pub fn simple_api_command<T: Read + Write + ScmSocket>(socket: &mut
      T,method: &str,c: &str,request_body: Option<&str>,) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - write_out
    argTypes:
    - Box<dyn Write + Send>
    - Arc<AtomicBool>
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: SerialBuffer::new
    functionSourceFile: /src/cloud-hypervisor/serial_buffer/src/lib.rs
    functionUses: 2
    functionsReached:
    - VecDeque::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(out: Box<dyn Write + Send>, write_out: Arc<AtomicBool>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:31,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:32,1
    - Dst: VecDeque::from
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:33,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:33,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:37,1
    - Dst: len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:38,1
    - Dst: len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:39,1
    - Dst: drain
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:40,1
    - Dst: extend
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: SerialBuffer::fill_buffer
    functionSourceFile: /src/cloud-hypervisor/serial_buffer/src/lib.rs
    functionUses: 1
    functionsReached:
    - drain
    - VecDeque::from
    - extend
    - Self::len
    - len
    - to_vec
    linkageType: ''
    returnType: void
    signature: 'fn fill_buffer(&mut self, buf: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:51,1
    - Dst: SerialBuffer::fill_buffer
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:52,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:53,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:53,1
    - Dst: SerialBuffer::flush
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:58,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:63,1
    - Dst: SerialBuffer::fill_buffer
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:64,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:65,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:65,1
    - Dst: write
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:72,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:74,1
    - Dst: Err
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:81,1
    - Dst: SerialBuffer::fill_buffer
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:83,1
    - Dst: flush
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:91,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:93,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 73
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 94
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 94
    functionName: SerialBuffer::write
    functionSourceFile: /src/cloud-hypervisor/serial_buffer/src/lib.rs
    functionUses: 0
    functionsReached:
    - SerialBuffer::fill_buffer
    - SerialBuffer::flush
    - is_empty
    - load
    - flush
    - Err
    - Self::len
    - write
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write(&mut self, buf: &[u8]) -> Result<usize, std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:99,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:100,1
    - Dst: pop_front
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:103,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:104,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:104,1
    - Dst: push_front
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:105,1
    - Dst: flush
      Src: /src/cloud-hypervisor/serial_buffer/src/lib.rs:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: SerialBuffer::flush
    functionSourceFile: /src/cloud-hypervisor/serial_buffer/src/lib.rs
    functionUses: 1
    functionsReached:
    - load
    - flush
    - pop_front
    - push_front
    - is_err
    - write_all
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn flush(&mut self) -> Result<(), std::io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Option<Vec<T>>::push'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:371,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - items
    - item
    argTypes:
    - '&mut Option<Vec<T>>'
    - T
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: add_to_config
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 14
    functionsReached:
    - Some
    - '&mut Option<Vec<T>>::push'
    linkageType: ''
    returnType: void
    signature: 'pub fn add_to_config<T>(items: &mut Option<Vec<T>>, item: T)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:427,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:427,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:428,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:428,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:429,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:429,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:431,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:431,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:432,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:432,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:433,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:433,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:434,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:434,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:435,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:435,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:436,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:436,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:437,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:437,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:438,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:438,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:440,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:440,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:441,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:441,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:443,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:443,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:444,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:444,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:446,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:446,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:447,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:447,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:449,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:449,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:449,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:450,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:450,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:451,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:451,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:453,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:453,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:454,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:454,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:456,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:456,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:457,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:457,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:459,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:459,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:460,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:460,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:462,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:462,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:463,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:463,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:465,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:465,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:466,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:466,1
    - Dst: Vec::get_flag
      Src: /src/cloud-hypervisor/vmm/src/config.rs:468,1
    - Dst: Vec::get_flag
      Src: /src/cloud-hypervisor/vmm/src/config.rs:469,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:470,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:470,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:472,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:472,1
    - Dst: Vec::get_flag
      Src: /src/cloud-hypervisor/vmm/src/config.rs:473,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:474,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:474,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:476,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:476,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:477,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:477,1
    - Dst: Vec::contains_id
      Src: /src/cloud-hypervisor/vmm/src/config.rs:479,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:480,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:480,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:482,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:482,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:484,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:484,1
    - Dst: Vec::get_flag
      Src: /src/cloud-hypervisor/vmm/src/config.rs:485,1
    - Dst: get_many::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:486,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:486,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:488,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:488,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:491,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:491,1
    - Dst: get_one::<String>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:493,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 241
    argCount: 1
    argNames:
    - args
    argTypes:
    - '&''a ArgMatches'
    constantsTouched: []
    func_position:
      end: 538
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 538
    functionName: VmParams::from_arg_matches
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 2
    functionsReached:
    - get_many::<String>
    - map
    - Vec::contains_id
    - as_str
    - Vec::get_flag
    - unwrap
    - Self::collect
    - get_one::<String>
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_arg_matches(args: &''a ArgMatches) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::to_lowercase
      Src: /src/cloud-hypervisor/vmm/src/config.rs:550,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:550,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:551,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:552,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:553,1
    - Dst: ParseHotplugMethodError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:553,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 555
      start: 549
    functionDepth: 5
    functionLinenumber: 549
    functionLinenumberEnd: 555
    functionName: HotplugMethod::from_str
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::to_lowercase
    - FdtWriterResult::to_owned
    - as_str
    - Err
    - ParseHotplugMethodError::InvalidValue
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::split
      Src: /src/cloud-hypervisor/vmm/src/config.rs:566,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:566,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:568,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:569,1
    - Dst: Self::Err::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:569,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:569,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:573,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:573,1
    - Dst: Self::Err::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:575,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:575,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:576,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:576,1
    - Dst: Self::Err::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:578,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:578,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:579,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:579,1
    - Dst: Self::Err::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:581,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:581,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:582,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:582,1
    - Dst: Self::Err::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:584,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:584,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 57
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 588
      start: 565
    functionDepth: 11
    functionLinenumber: 565
    functionLinenumberEnd: 588
    functionName: CpuTopology::from_str
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Self::Err::InvalidValue
    - map_err
    - FdtWriterResult::split
    - FdtWriterResult::to_owned
    - parse
    - Err
    - Ok
    - len
    - collect
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:593,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:594,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:603,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:603,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:605,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:605,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:605,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:609,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:609,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:609,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:613,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:613,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:614,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:614,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:614,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:617,1
    - Dst: convert::<u8>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:619,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:619,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:619,1
    - Dst: convert::<Tuple<u32, Vec<usize>>>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:623,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:623,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:623,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:627,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:627,1
    - Dst: cpu::Result::clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:630,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:627,1
    - Dst: convert::<StringList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:634,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:634,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:634,1
    - Dst: CpuFeatures::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:640,1
    - Dst: bool::as_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:644,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:646,1
    - Dst: Error::InvalidCpuFeatures
      Src: /src/cloud-hypervisor/vmm/src/config.rs:646,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:651,1
    - Dst: next
      Src: /src/cloud-hypervisor/vmm/src/config.rs:651,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:652,1
    - Dst: Error::InvalidCpuFeatures
      Src: /src/cloud-hypervisor/vmm/src/config.rs:652,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:656,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:656,1
    - Dst: is_none_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:656,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:665,1
    - Dst: Error::ParseCpus
      Src: /src/cloud-hypervisor/vmm/src/config.rs:665,1
    - Dst: OptionParserError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:665,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:666,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:669,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 132
    argCount: 1
    argNames:
    - cpus
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 679
      start: 592
    functionDepth: 11
    functionLinenumber: 592
    functionLinenumberEnd: 679
    functionName: CpusConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 2
    functionsReached:
    - map_err
    - '&str::to_string'
    - convert::<Toggle>
    - option_parser::Toggle
    - CpuFeatures::default
    - Ok
    - convert::<StringList>
    - convert
    - convert::<u8>
    - bool::as_str
    - iter
    - Error::ParseCpus
    - cpu::Result::clone
    - Err
    - convert::<Tuple<u32, Vec<usize>>>
    - '&mut Self::add'
    - OptionParserError::InvalidValue
    - unwrap_or
    - map
    - unwrap_or_default
    - next
    - is_none_or
    - add
    - parse
    - Result::map_err
    - into_iter
    - OptionParser::new
    - Error::InvalidCpuFeatures
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(cpus: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:687,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:688,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:688,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:688,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:692,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:692,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:694,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:694,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:694,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:698,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:698,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:698,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:702,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:702,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:702,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - disk
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 712
      start: 686
    functionDepth: 11
    functionLinenumber: 686
    functionLinenumberEnd: 712
    functionName: PciSegmentConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - unwrap_or_default
    - add
    - convert
    - parse
    - Result::map_err
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(disk: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:721,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:721,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:725,1
    - Dst: ValidationError::InvalidPciSegmentApertureWeight
      Src: /src/cloud-hypervisor/vmm/src/config.rs:725,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:731,1
    - Dst: ValidationError::InvalidPciSegmentApertureWeight
      Src: /src/cloud-hypervisor/vmm/src/config.rs:731,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 737
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 737
    functionName: PciSegmentConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::InvalidPciSegmentApertureWeight
    - ValidationError::InvalidPciSegment
    - Ok
    - Err
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:742,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:743,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:743,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:743,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:743,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:743,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:743,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:751,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:753,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:754,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:754,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:756,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:756,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:756,1
    - Dst: convert::<IntegerList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:760,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:760,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:760,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:763,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:763,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:763,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:764,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:764,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:764,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:768,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:768,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:771,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:771,1
    - Dst: convert::<StringList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:772,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:772,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:772,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:777,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:777,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:777,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:780,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:783,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:783,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:783,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:786,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:788,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 97
    argCount: 1
    argNames:
    - platform
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 800
      start: 741
    functionDepth: 11
    functionLinenumber: 741
    functionLinenumberEnd: 800
    functionName: PlatformConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - convert::<IntegerList>
    - add
    - map_err
    - collect
    - convert::<StringList>
    - convert
    - parse
    - Result::map_err
    - convert::<Toggle>
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - option_parser::Toggle
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(platform: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:804,1
    - Dst: ValidationError::InvalidNumPciSegments
      Src: /src/cloud-hypervisor/vmm/src/config.rs:804,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:812,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:812,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:818,1
    - Dst: ValidationError::InvalidIommuAddressWidthBits
      Src: /src/cloud-hypervisor/vmm/src/config.rs:818,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 824
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 824
    functionName: PlatformConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::InvalidPciSegment
    - ValidationError::InvalidNumPciSegments
    - Err
    - ValidationError::InvalidIommuAddressWidthBits
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: pub fn validate(&self) -> ValidationResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:830,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:831,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:843,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:843,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:845,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:845,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:845,1
    - Dst: ByteSized
      Src: /src/cloud-hypervisor/vmm/src/config.rs:848,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:850,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:850,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:850,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:853,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:855,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:855,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:855,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:859,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:859,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:859,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:863,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:863,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:863,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:867,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:867,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:867,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:870,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:872,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:872,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:872,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:875,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:877,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:877,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:877,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:881,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:881,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:881,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:884,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:886,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:886,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:886,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:889,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:893,1
    - Dst: '&MemoryZones::iter'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:894,1
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:895,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:896,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:907,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:907,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:909,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:909,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:910,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:910,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:910,1
    - Dst: ByteSized
      Src: /src/cloud-hypervisor/vmm/src/config.rs:913,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:915,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:915,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:916,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:916,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:916,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:919,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:921,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:921,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:921,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:924,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:926,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:926,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:926,1
    - Dst: convert::<u32>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:931,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:931,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:934,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:934,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:934,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:938,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:938,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:938,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:942,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:942,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:942,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:945,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:948,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:961,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:966,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 239
    argCount: 2
    argNames:
    - memory
    - memory_zones
    argTypes:
    - '&str'
    - Option<Vec<&str>>
    constantsTouched: []
    func_position:
      end: 979
      start: 829
    functionDepth: 11
    functionLinenumber: 829
    functionLinenumberEnd: 979
    functionName: MemoryConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - map_err
    - convert::<u32>
    - vm::Result::map
    - convert::<Toggle>
    - option_parser::Toggle
    - Ok
    - '&MemoryZones::iter'
    - convert::<ByteSized>
    - Vec::new
    - convert
    - get
    - Result::push
    - ByteSized
    - '&mut Self::add'
    - unwrap_or
    - unwrap_or_default
    - map
    - vm::Result::ok_or
    - add
    - parse
    - Result::map_err
    - OptionParser::new
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(memory: &str, memory_zones: Option<Vec<&str>>) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:988,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 997
    functionName: MemoryConfig::total_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Result::iter
    linkageType: ''
    returnType: u64
    signature: pub fn total_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1007,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1008,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1008,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1008,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1008,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1008,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1008,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1008,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1016,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1016,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1020,1
    - Dst: vm::Result::unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1020,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1021,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1021,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1021,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1025,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1025,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1025,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1029,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1029,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1029,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1033,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1033,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1033,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1037,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1037,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1037,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1041,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1041,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1041,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1047,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1049,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1056,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1058,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1065,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 85
    argCount: 1
    argNames:
    - rate_limit_group
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1072
      start: 1006
    functionDepth: 11
    functionLinenumber: 1006
    functionLinenumberEnd: 1072
    functionName: RateLimiterGroupConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - unwrap_or_default
    - add
    - convert
    - parse
    - Result::map_err
    - '&mut Self::add'
    - OptionParser::new
    - get
    - vm::Result::unwrap_or_default
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(rate_limit_group: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1075,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1075,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1076,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1079,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1080,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - _vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 1084
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1084
    functionName: RateLimiterGroupConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - Ok
    - Err
    - is_none
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, _vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1099,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1100,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1122,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1122,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1124,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1124,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1125,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1125,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1125,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1128,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1130,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1130,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1130,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1133,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1135,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1135,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1135,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1138,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1140,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1140,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1140,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1144,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1144,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1144,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1148,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1148,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1148,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1151,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1153,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1154,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1155,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1155,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1155,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1158,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1160,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1160,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1160,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1163,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1165,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1165,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1165,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1169,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1170,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1170,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1170,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1174,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1174,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1174,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1178,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1178,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1178,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1182,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1182,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1182,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1186,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1186,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1186,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1190,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1190,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1190,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1194,1
    - Dst: convert::<Tuple<u16, Vec<usize>>>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1195,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1195,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1195,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1199,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1199,1
    - Dst: cpu::Result::clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1202,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1199,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1207,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1209,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1216,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1218,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1224,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1224,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1225,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1233,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 223
    argCount: 1
    argNames:
    - disk
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1251
      start: 1098
    functionDepth: 11
    functionLinenumber: 1098
    functionLinenumberEnd: 1251
    functionName: DiskConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 3
    functionsReached:
    - map_err
    - vm::Result::map
    - convert::<Toggle>
    - convert::<Tuple<u16, Vec<usize>>>
    - option_parser::Toggle
    - Ok
    - convert
    - get
    - is_some
    - iter
    - cpu::Result::clone
    - '&mut Self::add'
    - unwrap_or
    - unwrap_or_default
    - map
    - add
    - parse
    - Result::map_err
    - OptionParser::new
    - unwrap_or_else
    - Some
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(disk: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1255,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1259,1
    - Dst: ValidationError::InvalidQueueSize
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1259,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1263,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1266,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1268,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1268,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1271,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1272,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1275,1
    - Dst: ValidationError::OnIommuSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1275,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1279,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1279,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1280,1
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1285,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1287,1
    - Dst: ValidationError::InvalidSerialLength
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1287,1
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1288,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1293,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 86
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 1294
      start: 1253
    functionDepth: 2
    functionLinenumber: 1253
    functionLinenumberEnd: 1294
    functionName: DiskConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - is_some
    - ValidationError::InvalidPciSegment
    - ValidationError::InvalidSerialLength
    - as_ref
    - ValidationError::InvalidQueueSize
    - Err
    - ValidationError::OnIommuSegment
    - contains
    - Vec::len
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::to_lowercase
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1306,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1306,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1307,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1308,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1309,1
    - Dst: ParseVhostModeError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1309,1
    - Dst: FdtWriterResult::to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1311
      start: 1305
    functionDepth: 5
    functionLinenumber: 1305
    functionLinenumberEnd: 1311
    functionName: VhostMode::from_str
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ParseVhostModeError::InvalidValue
    - FdtWriterResult::to_lowercase
    - FdtWriterResult::to_owned
    - as_str
    - Err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn from_str(s: &str) -> std::result::Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1324,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1326,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1351,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1351,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1353,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1354,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1354,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1355,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1355,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1357,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1357,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1357,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1361,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1361,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1362,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1362,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1362,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1365,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1367,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1367,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1367,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1370,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1372,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1372,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1372,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1375,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1377,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1377,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1378,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1378,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1378,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1381,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1383,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1383,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1383,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1387,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1387,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1387,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1391,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1391,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1391,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1394,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1396,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1397,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1397,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1397,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1401,1
    - Dst: convert::<IntegerList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1402,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1402,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1402,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1405,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1405,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1405,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1406,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1406,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1406,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1410,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1410,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1410,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1414,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1414,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1414,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1418,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1418,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1418,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1422,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1422,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1422,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1426,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1426,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1426,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1430,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1430,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1430,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1435,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1437,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1444,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1446,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1452,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1452,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1453,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1482,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 246
    argCount: 1
    argNames:
    - net
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1483
      start: 1323
    functionDepth: 11
    functionLinenumber: 1323
    functionLinenumberEnd: 1483
    functionName: NetConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 3
    functionsReached:
    - map_err
    - convert::<Toggle>
    - option_parser::Toggle
    - Ok
    - convert
    - get
    - is_some
    - iter
    - convert::<IntegerList>
    - '&mut Self::add'
    - unwrap_or
    - unwrap_or_default
    - map
    - add
    - parse
    - Result::map_err
    - OptionParser::new
    - unwrap_or_else
    - Some
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(net: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1487,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1490,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1490,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1490,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1490,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1491,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1494,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1497,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1503,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1507,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1510,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1512,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1512,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1515,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1516,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1519,1
    - Dst: ValidationError::OnIommuSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1519,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1526,1
    - Dst: ValidationError::InvalidMtu
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1526,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1530,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1533,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1533,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1534,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1537,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1537,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1538,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1541,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 137
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 1542
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1542
    functionName: NetConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - is_some
    - ValidationError::InvalidPciSegment
    - is_none
    - as_ref
    - Err
    - ValidationError::OnIommuSegment
    - unwrap
    - len
    - contains
    - ValidationError::InvalidMtu
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1547,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1548,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1548,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1549,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1549,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1551,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1552,1
    - Dst: vm::Result::unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1552,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1554,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1556,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1556,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1556,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1559,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - rng
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1563
      start: 1546
    functionDepth: 11
    functionLinenumber: 1546
    functionLinenumberEnd: 1563
    functionName: RngConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - to_owned
    - add
    - map_err
    - parse
    - option_parser::Toggle
    - Result::map_err
    - PathBuf::from
    - convert::<Toggle>
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - vm::Result::unwrap_or_else
    - get
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(rng: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1571,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1572,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1573,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1574,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1575,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1575,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1577,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1577,1
    - Dst: map_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1577,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1582,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1582,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1582,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1585,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1588,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1588,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1588,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1591,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 1
    argNames:
    - balloon
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1599
      start: 1570
    functionDepth: 11
    functionLinenumber: 1570
    functionLinenumberEnd: 1599
    functionName: BalloonConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - map_or
    - map_err
    - convert::<ByteSized>
    - add
    - parse
    - Result::map_err
    - convert::<Toggle>
    - Ok
    - OptionParser::new
    - option_parser::Toggle
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(balloon: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1608,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1609,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1609,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1609,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1609,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1609,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1609,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1616,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1616,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1618,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1618,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1619,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1620,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1622,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1622,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1622,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1624,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1624,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1624,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1628,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1628,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1628,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1633,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1635,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1635,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1635,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1640,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 64
    argCount: 1
    argNames:
    - fs
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1648
      start: 1607
    functionDepth: 11
    functionLinenumber: 1607
    functionLinenumberEnd: 1648
    functionName: FsConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 4
    functionsReached:
    - unwrap_or_default
    - vm::Result::ok_or
    - add
    - convert
    - parse
    - Err
    - Result::map_err
    - PathBuf::from
    - '&mut Self::add'
    - OptionParser::new
    - len
    - get
    - unwrap_or_else
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(fs: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1652,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1655,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1657,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1657,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1660,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1661,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1663,1
    - Dst: ValidationError::IommuNotSupportedOnSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1663,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1669,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 1670
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1670
    functionName: FsConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::IommuNotSupportedOnSegment
    - ValidationError::InvalidPciSegment
    - as_ref
    - Err
    - contains
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1679,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1680,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1680,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1680,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1680,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1680,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1680,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1687,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1687,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1688,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1688,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1688,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1691,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1693,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1693,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1693,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1696,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1698,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1698,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1698,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1701,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1703,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1703,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1703,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1706,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1708,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1708,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1708,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1711,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1713,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1714,1
    - Dst: convert::<FwCfgItemList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1715,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1715,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1715,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1724,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 78
    argCount: 1
    argNames:
    - fw_cfg_config
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1732
      start: 1678
    functionDepth: 11
    functionLinenumber: 1678
    functionLinenumberEnd: 1732
    functionName: FwCfgConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 2
    functionsReached:
    - convert::<FwCfgItemList>
    - map_err
    - add
    - parse
    - is_set
    - Result::map_err
    - convert::<Toggle>
    - unwrap
    - '&mut Self::add'
    - OptionParser::new
    - Ok
    - option_parser::Toggle
    - Some
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(fw_cfg_config: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1734,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1734,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1735,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1736,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1737,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1738,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1739,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1740,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1742,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 1743
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1743
    functionName: FwCfgConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - is_none
    - as_ref
    - Err
    - unwrap
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1749,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1750,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1750,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1751,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1751,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1754,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1754,1
    - Dst: Error::ParseFwCfgItem
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1756,1
    - Dst: OptionParserError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1756,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1757,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1759,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1759,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1759,1
    - Dst: Error::ParseFwCfgItem
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1762,1
    - Dst: OptionParserError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1762,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1763,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - fw_cfg
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1766
      start: 1748
    functionDepth: 11
    functionLinenumber: 1748
    functionLinenumberEnd: 1766
    functionName: FwCfgItem::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - Error::ParseFwCfgItem
    - vm::Result::ok_or
    - add
    - '&str::to_string'
    - parse
    - vm::Result::map
    - Result::map_err
    - '&mut Self::add'
    - OptionParser::new
    - OptionParserError::InvalidValue
    - get
    - Self::ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(fw_cfg: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1775,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1776,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1776,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1776,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1776,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1776,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1776,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1783,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1783,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1785,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1785,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1785,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1786,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1786,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1786,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1790,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1790,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1790,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1793,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1795,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1795,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1795,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1798,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1800,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1801,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1801,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1801,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 64
    argCount: 1
    argNames:
    - pmem
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1814
      start: 1774
    functionDepth: 11
    functionLinenumber: 1774
    functionLinenumberEnd: 1814
    functionName: PmemConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 4
    functionsReached:
    - map
    - unwrap_or_default
    - vm::Result::ok_or
    - map_err
    - add
    - convert::<ByteSized>
    - convert
    - parse
    - option_parser::Toggle
    - Result::map_err
    - PathBuf::from
    - convert::<Toggle>
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - get
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(pmem: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1817,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1819,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1819,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1822,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1823,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1826,1
    - Dst: ValidationError::OnIommuSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1826,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 1831
      start: 1816
    functionDepth: 2
    functionLinenumber: 1816
    functionLinenumberEnd: 1831
    functionName: PmemConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::InvalidPciSegment
    - as_ref
    - Err
    - ValidationError::OnIommuSegment
    - contains
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1836,1
    - Dst: add_valueless
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1837,1
    - Dst: '&mut Self::add_valueless'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1837,1
    - Dst: '&mut Self::add_valueless'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1837,1
    - Dst: '&mut Self::add_valueless'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1837,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1837,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1837,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1837,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1845,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1845,1
    - Dst: default_consoleconfig_file
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1847,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1851,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1852,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1854,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1856,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1858,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1861,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1861,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1861,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1861,1
    - Dst: Error::Validation
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1862,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1864,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1866,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1866,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1866,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1866,1
    - Dst: Error::Validation
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1867,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1870,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1872,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1872,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1872,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1875,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 86
    argCount: 1
    argNames:
    - console
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1884
      start: 1835
    functionDepth: 11
    functionLinenumber: 1835
    functionLinenumberEnd: 1884
    functionName: ConsoleConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 2
    functionsReached:
    - map_err
    - convert::<Toggle>
    - option_parser::Toggle
    - Ok
    - get
    - '&mut Self::add_valueless'
    - is_set
    - Err
    - '&mut Self::add'
    - default_consoleconfig_file
    - Error::Validation
    - unwrap_or
    - vm::Result::ok_or
    - parse
    - Result::map_err
    - PathBuf::from
    - add_valueless
    - OptionParser::new
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(console: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1890,1
    - Dst: add_valueless
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1891,1
    - Dst: '&mut Self::add_valueless'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1891,1
    - Dst: '&mut Self::add_valueless'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1891,1
    - Dst: '&mut Self::add_valueless'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1891,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1891,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1891,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1898,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1898,1
    - Dst: default_consoleconfig_file
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1902,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1906,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1907,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1909,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1911,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1913,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1916,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1916,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1916,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1916,1
    - Dst: Error::Validation
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1917,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1920,1
    - Dst: is_set
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1923,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1924,1
    - Dst: starts_with
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1926,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1927,1
    - Dst: Error::Validation
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1927,1
    - Dst: ValidationError::InvalidIoPortHex
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1927,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1932,1
    - Dst: u16::from_str_radix
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1932,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1932,1
    - Dst: Error::Validation
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1933,1
    - Dst: ValidationError::InvalidIoPortHex
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1933,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1937,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 89
    argCount: 1
    argNames:
    - debug_console_ops
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1938
      start: 1889
    functionDepth: 11
    functionLinenumber: 1889
    functionLinenumberEnd: 1938
    functionName: DebugConsoleConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - u16::from_str_radix
    - map_err
    - Ok
    - ValidationError::InvalidIoPortHex
    - get
    - starts_with
    - '&mut Self::add_valueless'
    - is_set
    - Err
    - '&mut Self::add'
    - default_consoleconfig_file
    - Error::Validation
    - vm::Result::ok_or
    - parse
    - Result::map_err
    - PathBuf::from
    - add_valueless
    - OptionParser::new
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(debug_console_ops: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1945,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1946,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1946,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1946,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1946,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1946,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1952,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1952,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1954,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1954,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1954,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1958,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1958,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1958,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1961,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1963,1
    - Dst: convert::<u16>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1964,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1964,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1964,1
    - Dst: convert::<u8>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1968,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1968,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 1
    argNames:
    - device
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1978
      start: 1944
    functionDepth: 11
    functionLinenumber: 1944
    functionLinenumberEnd: 1978
    functionName: DeviceConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 6
    functionsReached:
    - unwrap_or_default
    - map_err
    - add
    - convert::<u16>
    - parse
    - option_parser::Toggle
    - vm::Result::map
    - Result::map_err
    - convert::<Toggle>
    - convert::<u8>
    - '&mut Self::add'
    - OptionParser::new
    - Ok
    - get
    - Self::ok_or
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(device: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1981,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1983,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1983,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1986,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1987,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1990,1
    - Dst: ValidationError::OnIommuSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1990,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:1994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 1995
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 1995
    functionName: DeviceConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::InvalidPciSegment
    - as_ref
    - Err
    - ValidationError::OnIommuSegment
    - contains
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2003,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2004,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2004,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2004,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2005,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2005,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2007,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2007,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2007,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2011,1
    - Dst: convert::<u16>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2012,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2012,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2012,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - user_device
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2022
      start: 2002
    functionDepth: 11
    functionLinenumber: 2002
    functionLinenumberEnd: 2022
    functionName: UserDeviceConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 3
    functionsReached:
    - unwrap_or_default
    - map_err
    - add
    - convert::<u16>
    - parse
    - vm::Result::map
    - Result::map_err
    - '&mut Self::add'
    - OptionParser::new
    - get
    - Self::ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(user_device: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2025,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2027,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2027,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2030,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2031,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2033,1
    - Dst: ValidationError::IommuNotSupportedOnSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2033,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2039,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 2040
      start: 2024
    functionDepth: 2
    functionLinenumber: 2024
    functionLinenumberEnd: 2040
    functionName: UserDeviceConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::IommuNotSupportedOnSegment
    - ValidationError::InvalidPciSegment
    - as_ref
    - Err
    - contains
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2049,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2050,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2050,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2050,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2050,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2050,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2056,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2056,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2058,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2058,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2058,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2062,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2062,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2062,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2066,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2066,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2066,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2069,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2071,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2072,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2072,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2072,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2077,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 1
    argNames:
    - vdpa
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2084
      start: 2048
    functionDepth: 11
    functionLinenumber: 2048
    functionLinenumberEnd: 2084
    functionName: VdpaConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 4
    functionsReached:
    - unwrap_or_default
    - map_err
    - add
    - convert
    - parse
    - option_parser::Toggle
    - vm::Result::map
    - Result::map_err
    - convert::<Toggle>
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - get
    - unwrap_or_else
    - Self::ok_or
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(vdpa: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2087,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2089,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2089,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2092,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2093,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2096,1
    - Dst: ValidationError::OnIommuSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2096,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 2101
      start: 2086
    functionDepth: 2
    functionLinenumber: 2086
    functionLinenumberEnd: 2101
    functionName: VdpaConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::InvalidPciSegment
    - as_ref
    - Err
    - ValidationError::OnIommuSegment
    - contains
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2109,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2110,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2110,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2110,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2110,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2110,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2116,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2116,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2118,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2118,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2118,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2122,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2122,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2122,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2125,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2127,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2127,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2127,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2131,1
    - Dst: convert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2132,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2132,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2132,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 1
    argNames:
    - vsock
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2144
      start: 2108
    functionDepth: 11
    functionLinenumber: 2108
    functionLinenumberEnd: 2144
    functionName: VsockConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 4
    functionsReached:
    - ok_or
    - unwrap_or_default
    - map_err
    - add
    - convert
    - parse
    - option_parser::Toggle
    - vm::Result::map
    - Result::map_err
    - convert::<Toggle>
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - get
    - Self::ok_or
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(vsock: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2147,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2149,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2149,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2152,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2153,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2156,1
    - Dst: ValidationError::OnIommuSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2156,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 2161
      start: 2146
    functionDepth: 2
    functionLinenumber: 2146
    functionLinenumberEnd: 2161
    functionName: VsockConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::InvalidPciSegment
    - as_ref
    - Err
    - ValidationError::OnIommuSegment
    - contains
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2171,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2172,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2172,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2172,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2172,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2172,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2179,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2179,1
    - Dst: convert::<u32>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2181,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2181,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2181,1
    - Dst: convert::<IntegerList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2185,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2185,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2185,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2188,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2188,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2188,1
    - Dst: convert::<Tuple<u64, u64>>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2189,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2189,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2189,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2193,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2193,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2193,1
    - Dst: convert::<StringList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2200,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2200,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2200,1
    - Dst: convert::<IntegerList>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2204,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2204,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2204,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2207,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2207,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2207,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 93
    argCount: 1
    argNames:
    - numa
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2215
      start: 2170
    functionDepth: 11
    functionLinenumber: 2170
    functionLinenumberEnd: 2215
    functionName: NumaConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - iter
    - map
    - map_err
    - add
    - convert::<IntegerList>
    - collect
    - convert::<Tuple<u64, u64>>
    - convert::<StringList>
    - convert::<u32>
    - parse
    - Result::map_err
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(numa: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::deserialize
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2240,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2248,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2248,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - D
    constantsTouched: []
    func_position:
      end: 2252
      start: 2234
    functionDepth: 4
    functionLinenumber: 2234
    functionLinenumberEnd: 2252
    functionName: deserialize_restorednetconfig_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Some
    - Option::deserialize
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn deserialize_restorednetconfig_fds<''de, D>(d: D,) -> std::result::Result<Option<Vec<i32>>,
      D::Error>whereD: serde::Deserializer<''de>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2273,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2274,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2274,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2274,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2275,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2275,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2277,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2277,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2277,1
    - Dst: convert::<Toggle>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2281,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2281,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2281,1
    - Dst: option_parser::Toggle
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2284,1
    - Dst: convert::<Tuple<String, Vec<u64>>>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2286,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2286,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2286,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2290,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2290,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2292,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2293,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2294,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2294,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2294,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2294,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2290,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 63
    argCount: 1
    argNames:
    - restore
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2304
      start: 2272
    functionDepth: 11
    functionLinenumber: 2272
    functionLinenumberEnd: 2304
    functionName: RestoreConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 3
    functionsReached:
    - map_err
    - vm::Result::map
    - convert::<Toggle>
    - option_parser::Toggle
    - Ok
    - u32::clone
    - get
    - Self::ok_or
    - iter
    - impl Iterator::map
    - Result::len
    - '&mut Self::add'
    - Self::collect
    - Result::iter
    - unwrap_or
    - map
    - convert::<Tuple<String, Vec<u64>>>
    - add
    - parse
    - Result::map_err
    - OptionParser::new
    - Some
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(restore: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2310,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2311,1
    - Dst: flatten
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2311,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2317,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2317,1
    - Dst: Result::is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2317,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2318,1
    - Dst: ValidationError::IdentifierNotUnique
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2318,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2318,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2322,1
    - Dst: flatten
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2322,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2324,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2324,1
    - Dst: Result::remove
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2328,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2329,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2330,1
    - Dst: ValidationError::RestoreNetFdCountMismatch
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2330,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2331,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2333,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2337,1
    - Dst: ValidationError::RestoreMissingRequiredNetId
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2337,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2338,1
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2344,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 2349
      start: 2309
    functionDepth: 8
    functionLinenumber: 2309
    functionLinenumberEnd: 2349
    functionName: RestoreConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - Result::is_some
    - iter
    - HashMap::new
    - ValidationError::IdentifierNotUnique
    - expect
    - ValidationError::RestoreNetFdCountMismatch
    - Result::is_empty
    - as_ref
    - Result::remove
    - Err
    - Result::insert
    - len
    - clone
    - flatten
    - ValidationError::RestoreMissingRequiredNetId
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'pub fn validate(&self, vm_config: &VmConfig) -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2357,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2358,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2359,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2359,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2360,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2360,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2360,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - tpm
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2365
      start: 2356
    functionDepth: 11
    functionLinenumber: 2356
    functionLinenumberEnd: 2365
    functionName: TpmConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 2
    functionsReached:
    - add
    - parse
    - vm::Result::map
    - Result::map_err
    - get
    - OptionParser::new
    - Self::ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(tpm: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2373,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2374,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2374,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2375,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2375,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2379,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2379,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2379,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2384,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2384,1
    - Dst: Result::chars
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2388,1
    - Dst: count
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2388,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2389,1
    - Dst: Error::ParseLandlockRules
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2389,1
    - Dst: OptionParserError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2389,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2390,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - landlock_rule
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2395
      start: 2372
    functionDepth: 11
    functionLinenumber: 2372
    functionLinenumberEnd: 2395
    functionName: LandlockConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 2
    functionsReached:
    - count
    - OptionParserError::InvalidValue
    - vm::Result::ok_or
    - add
    - parse
    - Err
    - vm::Result::map
    - Result::map_err
    - Result::to_string
    - Result::chars
    - '&mut Self::add'
    - OptionParser::new
    - Error::ParseLandlockRules
    - get
    - Self::ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(landlock_rule: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exists
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2398,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2399,1
    - Dst: ValidationError::LandlockPathDoesNotExist
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2399,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2399,1
    - Dst: LandlockAccess::try_from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2401,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2401,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2401,1
    - Dst: ValidationError::InvalidLandlockAccess
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2402,1
    - Dst: usize::to_string
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2402,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2397
    functionDepth: 5
    functionLinenumber: 2397
    functionLinenumberEnd: 2404
    functionName: LandlockConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::LandlockPathDoesNotExist
    - LandlockAccess::try_from
    - as_str
    - Err
    - Result::map_err
    - ValidationError::InvalidLandlockAccess
    - clone
    - exists
    - usize::to_string
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: pub fn validate(&self) -> ValidationResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionParser::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2414,1
    - Dst: add
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2415,1
    - Dst: '&mut Self::add'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2415,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2416,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2416,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2417,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2417,1
    - Dst: Self::ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2417,1
    - Dst: convert::<ByteSized>
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2421,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2421,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2421,1
    - Dst: ByteSized
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2424,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - ivshmem
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2430
      start: 2413
    functionDepth: 11
    functionLinenumber: 2413
    functionLinenumberEnd: 2430
    functionName: IvshmemConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - ByteSized
    - map_err
    - add
    - convert::<ByteSized>
    - parse
    - vm::Result::map
    - Result::map_err
    - Ok
    - '&mut Self::add'
    - OptionParser::new
    - get
    - Self::ok_or
    - unwrap_or
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(ivshmem: &str) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::is_power_of_two
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2436,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2437,1
    - Dst: ValidationError::InvalidIvshmemInputSize
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2437,1
    - Dst: fs::metadata
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2439,1
    - Dst: String::to_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2439,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2439,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2439,1
    - Dst: std::io::Result::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2441,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2442,1
    - Dst: ValidationError::InvalidIvshmemSize
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2442,1
    - Dst: std::io::Result::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2442,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2445
    functionName: IvshmemConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - usize::is_power_of_two
    - std::io::Result::len
    - ValidationError::InvalidIvshmemSize
    - std::io::Result::map_err
    - Err
    - ValidationError::InvalidIvshmemInputSize
    - unwrap
    - fs::metadata
    - String::to_str
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: pub fn validate(&self) -> ValidationResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2453,1
    - Dst: u32::starts_with
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2454,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2455,1
    - Dst: ValidationError::InvalidIdentifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2455,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2455,1
    - Dst: '&mut BTreeSet<String>::insert'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2458,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2458,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2459,1
    - Dst: ValidationError::IdentifierNotUnique
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2459,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2459,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - id_list
    - id
    argTypes:
    - '&mut BTreeSet<String>'
    - '&Option<String>'
    constantsTouched: []
    func_position:
      end: 2464
      start: 2449
    functionDepth: 9
    functionLinenumber: 2449
    functionLinenumberEnd: 2464
    functionName: VmConfig::validate_identifier
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - ValidationError::IdentifierNotUnique
    - u32::as_ref
    - '&mut BTreeSet<String>::insert'
    - u32::clone
    - ValidationError::InvalidIdentifier
    - u32::starts_with
    - Err
    - Ok
    linkageType: ''
    returnType: ValidationResult
    signature: 'fn validate_identifier(id_list: &mut BTreeSet<String>,id: &Option<String>,)
      -> ValidationResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2472,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2481
    functionName: VmConfig::backed_by_shared_memory
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - unwrap
    linkageType: ''
    returnType: bool
    signature: pub fn backed_by_shared_memory(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BTreeSet::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2487,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2490,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2490,1
    - Dst: ValidationError::PayloadError
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2492,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2490,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2499,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2499,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2501,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2501,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2501,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2502,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2505,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2511,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2511,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2514,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2516,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2529,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2531,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2534,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2538,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2540,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2544,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2545,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2548,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2549,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2553,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2562,1
    - Dst: ValidationError::TooManyCpus
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2562,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2567,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2569,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2569,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2569,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2575,1
    - Dst: and
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2575,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2575,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2575,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2576,1
    - Dst: VmConfig::backed_by_shared_memory
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2578,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2579,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2581,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2582,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2586,1
    - Dst: any
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2586,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2590,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2593,1
    - Dst: ApiResult::validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2597,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2600,1
    - Dst: VmConfig::backed_by_shared_memory
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2606,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2607,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2609,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2612,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2617,1
    - Dst: VmConfig::backed_by_shared_memory
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2617,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2618,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2621,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2623,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2629,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2632,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2645,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2653,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2661,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2667,1
    - Dst: is_power_of_two
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2669,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2670,1
    - Dst: ValidationError::InvalidHugePageSize
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2670,1
    - Dst: DeviceManagerResult::is_empty
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2675,1
    - Dst: VmConfig::backed_by_shared_memory
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2675,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2676,1
    - Dst: ApiResult::validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2680,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2682,1
    - Dst: DeviceManagerResult::validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2688,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2691,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2696,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2698,1
    - Dst: ValidationError::VsockSpecialCid
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2698,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2711,1
    - Dst: ValidationError::BalloonLargerThanRam
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2711,1
    - Dst: BTreeSet::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2719,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2721,1
    - Dst: to_string_lossy
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2721,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2722,1
    - Dst: ValidationError::DuplicateDevicePath
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2722,1
    - Dst: to_string_lossy
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2723,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2723,1
    - Dst: String::validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2727,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2730,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2735,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2738,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2746,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2747,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2748,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2749,1
    - Dst: '&MemoryZones::iter'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2750,1
    - Dst: Result::contains_key
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2751,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2752,1
    - Dst: ValidationError::MemoryZoneReused
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2752,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2753,1
    - Dst: Result::get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2754,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2754,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2758,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2759,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2763,1
    - Dst: u16::iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2764,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2766,1
    - Dst: ValidationError::InvalidPciSegment
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2766,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2769,1
    - Dst: ValidationError::DefaultPciSegmentInvalidNode
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2769,1
    - Dst: Result::contains_key
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2773,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2774,1
    - Dst: ValidationError::PciSegmentReused
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2774,1
    - Dst: Result::get
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2776,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2776,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2780,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2787,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2788,1
    - Dst: Self::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2789,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2789,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2795,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2799,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2799,1
    - Dst: Result::validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2799,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2799,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2800,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2800,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2803,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2800,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2808,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2813,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2816,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 703
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2486
    functionDepth: 9
    functionLinenumber: 2486
    functionLinenumberEnd: 2817
    functionName: VmConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - any
    - Self::validate_identifier
    - HashMap::new
    - DeviceManagerResult::validate
    - Result::get
    - as_ref
    - ValidationError::TooManyCpus
    - ValidationError::InvalidHugePageSize
    - String::validate
    - ValidationError::PayloadError
    - to_string
    - ok_or
    - DeviceManagerResult::is_empty
    - and
    - Ok
    - '&MemoryZones::iter'
    - ValidationError::BalloonLargerThanRam
    - Vec::new
    - as_mut
    - transpose
    - to_string_lossy
    - Result::contains_key
    - len
    - Result::push
    - ValidationError::VsockSpecialCid
    - is_some
    - iter
    - is_empty
    - vm::Result::unwrap
    - is_some_and
    - validate
    - Result::len
    - Err
    - u16::iter
    - Result::validate
    - unwrap
    - contains
    - ValidationError::DuplicateDevicePath
    - clone
    - Result::iter
    - ValidationError::DefaultPciSegmentInvalidNode
    - map
    - ValidationError::InvalidPciSegment
    - unwrap_or_default
    - is_none
    - VmConfig::backed_by_shared_memory
    - ValidationError::PciSegmentReused
    - BTreeSet::new
    - ApiResult::validate
    - is_power_of_two
    - Some
    - Result::insert
    - ValidationError::MemoryZoneReused
    linkageType: ''
    returnType: ValidationResult
    signature: pub fn validate(&mut self) -> ValidationResult<BTreeSet<String>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2822,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2823,1
    - Dst: RateLimiterGroupConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2824,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2825,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2827,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2832,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2833,1
    - Dst: DiskConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2834,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2835,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2837,1
    - Dst: FwCfgConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2842,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2843,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2850,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2851,1
    - Dst: NetConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2852,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2853,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2855,1
    - Dst: RngConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2858,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2862,1
    - Dst: BalloonConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2862,1
    - Dst: then_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2866,1
    - Dst: PvmemcontrolConfig::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2868,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2872,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2873,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2874,1
    - Dst: FsConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2874,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2876,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2881,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2882,1
    - Dst: PmemConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2883,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2884,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2886,1
    - Dst: ConsoleConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2889,1
    - Dst: ConsoleConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2890,1
    - Dst: DebugConsoleConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2892,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2896,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2897,1
    - Dst: DeviceConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2898,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2899,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2901,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2906,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2907,1
    - Dst: UserDeviceConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2908,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2909,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2911,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2916,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2917,1
    - Dst: VdpaConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2918,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2919,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2921,1
    - Dst: VsockConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2926,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2927,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2932,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2933,1
    - Dst: PciSegmentConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2934,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2935,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2937,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2940,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2940,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2944,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2945,1
    - Dst: NumaConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2946,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2947,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2949,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2953,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2953,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2957,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2957,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2957,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2960,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2961,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2962,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2963,1
    - Dst: FdtWriterResult::to_string
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2963,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2964,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2966,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2968,1
    - Dst: FdtWriterResult::to_string
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2968,1
    - Dst: TpmConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2978,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2979,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2989,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2990,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2990,1
    - Dst: LandlockConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2992,1
    - Dst: "iter()\n                    .map(|rule| LandlockConfig::parse(rule))\n\
        \                    .collect::<Result<Vec<LandlockConfig>>>"
      Src: /src/cloud-hypervisor/vmm/src/config.rs:2990,1
    - Dst: IvshmemConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3001,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3002,1
    - Dst: CpusConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3006,1
    - Dst: MemoryConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3007,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3041,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3041,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3042,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 312
    argCount: 1
    argNames:
    - vm_params
    argTypes:
    - VmParams
    constantsTouched: []
    func_position:
      end: 3043
      start: 2819
    functionDepth: 12
    functionLinenumber: 2819
    functionLinenumberEnd: 3043
    functionName: VmConfig::parse
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 2
    functionsReached:
    - VsockConfig::parse
    - MemoryConfig::parse
    - DiskConfig::parse
    - BalloonConfig::parse
    - DeviceConfig::parse
    - CpusConfig::parse
    - Ok
    - TpmConfig::parse
    - transpose
    - Vec::new
    - RateLimiterGroupConfig::parse
    - NumaConfig::parse
    - PciSegmentConfig::parse
    - then_some
    - VdpaConfig::parse
    - Result::push
    - is_some
    - iter
    - PmemConfig::parse
    - FwCfgConfig::parse
    - PvmemcontrolConfig::default
    - ConsoleConfig::parse
    - FsConfig::parse
    - IvshmemConfig::parse
    - LandlockConfig::parse
    - FdtWriterResult::to_string
    - "iter()\n                    .map(|rule| LandlockConfig::parse(rule))\n    \
      \                .collect::<Result<Vec<LandlockConfig>>>"
    - NetConfig::parse
    - map
    - ValidationResult::map_err
    - Vec::validate
    - UserDeviceConfig::parse
    - RngConfig::parse
    - DebugConsoleConfig::parse
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(vm_params: VmParams) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3049,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3050,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3051,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3051,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3051,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3051,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3051,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3052,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3056,1
    - Dst: DeviceManagerResult::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3057,1
    - Dst: DeviceManagerResult::retain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3058,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3058,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3058,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3058,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3058,1
    - Dst: DeviceManagerResult::len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3059,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3063,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3064,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3065,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3065,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3065,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3065,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3065,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3066,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3070,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3071,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3072,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3072,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3072,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3072,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3072,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3073,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3077,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3078,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3079,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3079,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3079,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3079,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3079,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3080,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3084,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3085,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3086,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3086,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3086,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3086,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3086,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3087,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3091,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3092,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3093,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3093,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3093,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3093,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3093,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3094,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3098,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3099,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3099,1
    - Dst: u32::as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3099,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3099,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 195
    argCount: 1
    argNames:
    - id
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 3106
      start: 3045
    functionDepth: 3
    functionLinenumber: 3045
    functionLinenumberEnd: 3106
    functionName: VmConfig::remove_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - map
    - u32::as_ref
    - as_mut
    - as_ref
    - retain
    - DeviceManagerResult::retain
    - len
    - DeviceManagerResult::len
    - Some
    linkageType: ''
    returnType: bool
    signature: 'pub fn remove_device(&mut self, id: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3112,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3117,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3117,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - fds
    argTypes:
    - Vec<i32>
    constantsTouched: []
    func_position:
      end: 3121
      start: 3111
    functionDepth: 3
    functionLinenumber: 3111
    functionLinenumberEnd: 3121
    functionName: VmConfig::add_preserved_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Result::is_empty
    - clone
    - Result::append
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub unsafe fn add_preserved_fds(&mut self, mut fds: Vec<i32>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3125,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3124
    functionDepth: 0
    functionLinenumber: 3124
    functionLinenumberEnd: 3126
    functionName: VmConfig::is_tdx_enabled
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - is_some_and
    linkageType: ''
    returnType: bool
    signature: pub fn is_tdx_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3130,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3131
    functionName: VmConfig::is_sev_snp_enabled
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - is_some_and
    linkageType: ''
    returnType: bool
    signature: pub fn is_sev_snp_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3137,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3138,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3139,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3140,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3141,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3142,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3143,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3144,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3146,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3147,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3148,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3149,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3150,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3152,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3153,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3154,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3155,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3156,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3157,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3158,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3159,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3160,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3161,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3161,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3165,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3165,1
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3165,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3165,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3166,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3135
    functionDepth: 3
    functionLinenumber: 3135
    functionLinenumberEnd: 3171
    functionName: VmConfig::clone
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - map
    - impl Iterator::map
    - libc::dup
    - as_ref
    - Result::iter
    - Self::collect
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3176,1
    - Dst: Result::drain
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3177,1
    - Dst: libc::close
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3175
    functionDepth: 6
    functionLinenumber: 3175
    functionLinenumberEnd: 3182
    functionName: VmConfig::drop
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - take
    - Result::drain
    - libc::close
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpusConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3229,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3229,1
    - Dst: CpusConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3230,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3230,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3195
    functionDepth: 12
    functionLinenumber: 3195
    functionLinenumberEnd: 3260
    functionName: unit_tests::test_cpu_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    - CpusConfig::parse
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_cpu_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3263
    functionDepth: 0
    functionLinenumber: 3263
    functionLinenumberEnd: 3324
    functionName: unit_tests::test_mem_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_mem_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3327
    functionDepth: 0
    functionLinenumber: 3327
    functionLinenumberEnd: 3357
    functionName: unit_tests::test_rate_limit_group_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_rate_limit_group_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3397
      start: 3360
    functionDepth: 0
    functionLinenumber: 3360
    functionLinenumberEnd: 3397
    functionName: unit_tests::test_pci_segment_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_pci_segment_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3401,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3399
    functionDepth: 1
    functionLinenumber: 3399
    functionLinenumberEnd: 3418
    functionName: unit_tests::disk_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - PathBuf::from
    - Some
    linkageType: ''
    returnType: DiskConfig
    signature: fn disk_fixture() -> DiskConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3421
    functionDepth: 0
    functionLinenumber: 3421
    functionLinenumberEnd: 3512
    functionName: unit_tests::test_disk_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_disk_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3519,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3519,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3520,1
    - Dst: MacAddr::parse_str
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3520,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3536
      start: 3514
    functionDepth: 3
    functionLinenumber: 3514
    functionLinenumberEnd: 3536
    functionName: unit_tests::net_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Some
    - MacAddr::parse_str
    linkageType: ''
    returnType: NetConfig
    signature: fn net_fixture() -> NetConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3609
      start: 3539
    functionDepth: 0
    functionLinenumber: 3539
    functionLinenumberEnd: 3609
    functionName: unit_tests::test_net_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_net_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3636
      start: 3612
    functionDepth: 0
    functionLinenumber: 3612
    functionLinenumberEnd: 3636
    functionName: unit_tests::test_parse_rng
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn test_parse_rng() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3640,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3647
      start: 3638
    functionDepth: 1
    functionLinenumber: 3638
    functionLinenumberEnd: 3647
    functionName: unit_tests::fs_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - PathBuf::from
    - '&str::to_owned'
    linkageType: ''
    returnType: FsConfig
    signature: fn fs_fixture() -> FsConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FsConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3652,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3652,1
    - Dst: FsConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3653,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3653,1
    - Dst: FsConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3654,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3654,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3650
    functionDepth: 12
    functionLinenumber: 3650
    functionLinenumberEnd: 3666
    functionName: unit_tests::test_parse_fs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_err
    - Ok
    - FsConfig::parse
    linkageType: ''
    returnType: Result
    signature: fn test_parse_fs() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3670,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3668
    functionDepth: 1
    functionLinenumber: 3668
    functionLinenumberEnd: 3677
    functionName: unit_tests::pmem_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - PathBuf::from
    - Some
    linkageType: ''
    returnType: PmemConfig
    signature: fn pmem_fixture() -> PmemConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PmemConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3682,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3682,1
    - Dst: PmemConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3683,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3683,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3680
    functionDepth: 12
    functionLinenumber: 3680
    functionLinenumberEnd: 3705
    functionName: unit_tests::test_pmem_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - PmemConfig::parse
    - Ok
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_pmem_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConsoleConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3709,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3709,1
    - Dst: ConsoleConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3710,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3710,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3784
      start: 3708
    functionDepth: 12
    functionLinenumber: 3708
    functionLinenumberEnd: 3784
    functionName: unit_tests::test_console_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_err
    - Ok
    - ConsoleConfig::parse
    linkageType: ''
    returnType: Result
    signature: fn test_console_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3786
    functionDepth: 1
    functionLinenumber: 3786
    functionLinenumberEnd: 3794
    functionName: unit_tests::device_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - PathBuf::from
    linkageType: ''
    returnType: DeviceConfig
    signature: fn device_fixture() -> DeviceConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3799,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3799,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3823
      start: 3797
    functionDepth: 12
    functionLinenumber: 3797
    functionLinenumberEnd: 3823
    functionName: unit_tests::test_device_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - DeviceConfig::parse
    - Ok
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_device_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3825
    functionDepth: 1
    functionLinenumber: 3825
    functionLinenumberEnd: 3833
    functionName: unit_tests::vdpa_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - PathBuf::from
    linkageType: ''
    returnType: VdpaConfig
    signature: fn vdpa_fixture() -> VdpaConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VdpaConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3838,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3838,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3849
      start: 3836
    functionDepth: 12
    functionLinenumber: 3836
    functionLinenumberEnd: 3849
    functionName: unit_tests::test_vdpa_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - VdpaConfig::parse
    - Ok
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_vdpa_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TpmConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3854,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3854,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3862
      start: 3852
    functionDepth: 12
    functionLinenumber: 3852
    functionLinenumberEnd: 3862
    functionName: unit_tests::test_tpm_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - TpmConfig::parse
    - Ok
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_tpm_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3867,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3867,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3865
    functionDepth: 12
    functionLinenumber: 3865
    functionLinenumberEnd: 3889
    functionName: unit_tests::test_vsock_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - VsockConfig::parse
    - Ok
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_vsock_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RestoreConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3923,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3923,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3892
    functionDepth: 12
    functionLinenumber: 3892
    functionLinenumberEnd: 3925
    functionName: unit_tests::test_restore_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_err
    - Ok
    - RestoreConfig::parse
    linkageType: ''
    returnType: Result
    signature: fn test_restore_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpusConfig::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3931,1
    - Dst: MemoryConfig::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3932,1
    - Dst: RngConfig::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3936,1
    - Dst: default_serial
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3940,1
    - Dst: default_console
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3941,1
    - Dst: DebugConsoleConfig::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3943,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3960,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3986,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:3988,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4001,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4001,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4003,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4004,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4016,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4033,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4045,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4060,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4064,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4069,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4070
      start: 3928
    functionDepth: 7
    functionLinenumber: 3928
    functionLinenumberEnd: 4070
    functionName: unit_tests::test_restore_config_validation
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - RngConfig::default
    - default_console
    - validate
    - clone
    - PathBuf::from
    - CpusConfig::default
    - default_serial
    - unwrap
    - Some
    - MemoryConfig::default
    - DebugConsoleConfig::default
    linkageType: ''
    returnType: void
    signature: fn test_restore_config_validation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4072
    functionDepth: 0
    functionLinenumber: 4072
    functionLinenumberEnd: 4085
    functionName: unit_tests::platform_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformConfig
    signature: fn platform_fixture() -> PlatformConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4095
      start: 4087
    functionDepth: 0
    functionLinenumber: 4087
    functionLinenumberEnd: 4095
    functionName: unit_tests::numa_fixture
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NumaConfig
    signature: fn numa_fixture() -> NumaConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4103,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4118,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4119,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4119,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4126,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4127,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4136,1
    - Dst: DebugConsoleConfig::default
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4155,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4178,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4178,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4180,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4183,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4183,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4185,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4194,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4202,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4210,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4213,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4224,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4225,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4235,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4237,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4247,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4248,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4259,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4260,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4267,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4267,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4269,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4270,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4279,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4280,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4286,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4286,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4288,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4289,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4298,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4299,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4308,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4309,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4319,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4320,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4330,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4331,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4337,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4339,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4339,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4341,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4343,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4343,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4345,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4347,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4348,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4348,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4350,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4352,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4358,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4360,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4366,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4367,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4367,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4368,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4368,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4370,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4371,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4373,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4382,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4383,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4384,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4385,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4387,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4387,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4389,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4390,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4391,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4392,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4399,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4400,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4402,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4411,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4412,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4413,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4414,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4416,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4421,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4421,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4423,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4424,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4425,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4426,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4428,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4433,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4433,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4435,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4436,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4437,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4438,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4440,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4445,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4445,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4447,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4448,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4449,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4450,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4452,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4457,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4457,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4459,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4460,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4461,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4462,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4464,1
    - Dst: PathBuf::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4466,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4471,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4471,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4473,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4474,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4475,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4476,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4478,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4488,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4489,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4490,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4491,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4493,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4503,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4504,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4506,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4507,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4509,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4519,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4520,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4522,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4523,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4525,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4535,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4536,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4537,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4538,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4540,1
    - Dst: PathBuf::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4542,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4552,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4554,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4555,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4556,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4558,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4568,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4569,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4570,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4571,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4573,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4582,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4584,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4585,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4586,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4588,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4597,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4598,1
    - Dst: platform_fixture
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4600,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4602,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4619,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4620,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4630,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4631,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4641,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4642,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4658,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4659,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4676,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4677,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4687,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4688,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4692,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4692,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4695,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4696,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4700,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4700,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4703,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4704,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4708,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4708,1
    - Dst: '&str::repeat'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4711,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4712,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4713,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4717,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4717,1
    - Dst: '&str::repeat'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4720,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4721,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4722,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4734,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4735,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4745,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4745,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4747,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4748,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4758,1
    - Dst: unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4758,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4762,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4763,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4764,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4764,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4771,1
    - Dst: String::new
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4771,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4775,1
    - Dst: unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4775,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4778,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4779,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4780,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4780,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4791,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4791,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4794,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4795,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4796,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4796,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4803,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4804,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4809,1
    - Dst: unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4809,1
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4814,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4814,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4814,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4814,1
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4816,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4816,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4816,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4816,1
    - Dst: valid_config::add_preserved_fds
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4819,1
    - Dst: valid_config::clone
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 707
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4822
      start: 4098
    functionDepth: 6
    functionLinenumber: 4098
    functionLinenumberEnd: 4822
    functionName: unit_tests::test_config_validation
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - libc::dup
    - unwrap_err
    - Default::default
    - validate
    - PathBuf::new
    - String::new
    - '&str::to_string'
    - File::open
    - valid_config::add_preserved_fds
    - valid_config::clone
    - clone
    - PathBuf::from
    - platform_fixture
    - unwrap
    - as_raw_fd
    - Some
    - '&str::repeat'
    - DebugConsoleConfig::default
    linkageType: ''
    returnType: void
    signature: fn test_config_validation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LandlockConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4826,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4826,1
    - Dst: LandlockConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4828,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4828,1
    - Dst: LandlockConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4829,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4829,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4838
      start: 4824
    functionDepth: 12
    functionLinenumber: 4824
    functionLinenumberEnd: 4838
    functionName: unit_tests::test_landlock_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - Ok
    - LandlockConfig::parse
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_landlock_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FwCfgConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4843,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4843,1
    - Dst: FwCfgConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4845,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4845,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/config.rs:4883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4841
    functionDepth: 12
    functionLinenumber: 4841
    functionLinenumberEnd: 4884
    functionName: unit_tests::test_fw_cfg_config_item_list_parsing
    functionSourceFile: /src/cloud-hypervisor/vmm/src/config.rs
    functionUses: 0
    functionsReached:
    - FwCfgConfig::parse
    - Ok
    - Result::unwrap_err
    linkageType: ''
    returnType: Result
    signature: fn test_fw_cfg_config_item_list_parsing() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _destination_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: GuestDebuggable::coredump
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn coredump(&mut self,_destination_url: &str,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 55
    argCount: 1
    argNames:
    - reg
    argTypes:
    - SegmentRegister
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: CpuSegment::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(reg: SegmentRegister) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - reg
    argTypes:
    - DescriptorTable
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: CpuSegment::new_from_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_from_table(reg: DescriptorTable) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<elf::Elf64_Ehdr>
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:219,1
    - Dst: std::mem::size_of::<elf::Elf64_Phdr>
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:220,1
    - Dst: std::mem::size_of_val
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:237,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:239,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:239,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:240,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:241,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:241,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 246
      start: 197
    functionDepth: 8
    functionLinenumber: 197
    functionLinenumberEnd: 246
    functionName: Elf64Writable::write_header
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of_val
    - map_err
    - std::mem::size_of::<elf::Elf64_Ehdr>
    - as_ref
    - std::mem::size_of::<elf::Elf64_Phdr>
    - Ok
    - unwrap
    - as_slice
    - write
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_header(&mut self,dump_state: &DumpState,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:264,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:264,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:265,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:266,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:266,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 271
      start: 248
    functionDepth: 8
    functionLinenumber: 248
    functionLinenumberEnd: 271
    functionName: Elf64Writable::write_note
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - Ok
    - unwrap
    - as_slice
    - write
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_note(&mut self,dump_state: &DumpState,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:292,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:292,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:293,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:294,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:294,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - offset
    - phys_addr
    - length
    - virt_addr
    - dump_state
    argTypes:
    - u64
    - u64
    - u64
    - u64
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 8
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: Elf64Writable::write_load
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - Ok
    - unwrap
    - as_slice
    - write
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_load(&mut self,offset: u64,phys_addr: u64,length: u64,virt_addr:
      u64,dump_state: &DumpState,) -> std::result::Result<(), GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:305,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:305,1
    - Dst: Elf64Writable::write_load
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:308,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 312
      start: 301
    functionDepth: 9
    functionLinenumber: 301
    functionLinenumberEnd: 312
    functionName: Elf64Writable::write_loads
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Elf64Writable::write_load
    - unwrap
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_loads(&mut self,dump_state: &DumpState,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::div_ceil
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:315,1
    - Dst: u32::div_ceil
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:315,1
    - Dst: u32::div_ceil
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - hdr_size
    - name_size
    - desc_size
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: Elf64Writable::elf_note_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 1
    functionsReached:
    - Result::div_ceil
    - u32::div_ceil
    linkageType: ''
    returnType: u32
    signature: 'fn elf_note_size(&self, hdr_size: u32, name_size: u32, desc_size:
      u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<elf::Elf64_Nhdr>
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:319,1
    - Dst: std::mem::size_of::<X86_64ElfPrStatus>
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:320,1
    - Dst: std::mem::size_of::<CpuState>
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:321,1
    - Dst: Elf64Writable::elf_note_size
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:323,1
    - Dst: Elf64Writable::elf_note_size
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - desc_type
    - nr_cpus
    argTypes:
    - NoteDescType
    - u32
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: Elf64Writable::get_note_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of::<CpuState>
    - std::mem::size_of::<elf::Elf64_Nhdr>
    - std::mem::size_of::<X86_64ElfPrStatus>
    - Elf64Writable::elf_note_size
    linkageType: ''
    returnType: u32
    signature: 'fn get_note_size(&self, desc_type: NoteDescType, nr_cpus: u32) ->
      u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: CpuElf64Writable::cpu_write_elf64_note
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn cpu_write_elf64_note(&mut self,_dump_state: &DumpState,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/coredump.rs:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: CpuElf64Writable::cpu_write_vmm_note
    functionSourceFile: /src/cloud-hypervisor/vmm/src/coredump.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn cpu_write_vmm_note(&mut self,_dump_state: &DumpState,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciRoot::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:63,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:64,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:64,1
    - Dst: PciBus::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:64,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:66,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:69,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:69,1
    - Dst: PciConfigMmio::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:69,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:69,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:73,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:76,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:73,1
    - Dst: Arc<Mutex<AddressAllocator>>::lock
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:82,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:82,1
    - Dst: base
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:82,1
    - Dst: Arc<Mutex<AddressAllocator>>::lock
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:83,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:83,1
    - Dst: end
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:83,1
    - Dst: Arc<Mutex<AddressAllocator>>::lock
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:85,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:85,1
    - Dst: base
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:85,1
    - Dst: Arc<Mutex<AddressAllocator>>::lock
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:86,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:86,1
    - Dst: end
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:86,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 6
    argNames:
    - id
    - numa_node
    - address_manager
    - mem32_allocator
    - mem64_allocator
    - pci_irq_slots
    argTypes:
    - u16
    - u32
    - '&Arc<AddressManager>'
    - Arc<Mutex<AddressAllocator>>
    - Arc<Mutex<AddressAllocator>>
    - '&[u8; 32]'
    constantsTouched: []
    func_position:
      end: 117
      start: 55
    functionDepth: 12
    functionLinenumber: 55
    functionLinenumberEnd: 117
    functionName: PciSegment::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 1
    functionsReached:
    - insert
    - map_err
    - PciRoot::new
    - Arc::new
    - base
    - Mutex::new
    - unwrap
    - Arc<Mutex<AddressAllocator>>::lock
    - end
    - PciBus::new
    - PciConfigMmio::new
    - Arc::clone
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub(crate) fn new(id: u16,numa_node: u32,address_manager: &Arc<AddressManager>,mem32_allocator:
      Arc<Mutex<AddressAllocator>>,mem64_allocator: Arc<Mutex<AddressAllocator>>,pci_irq_slots:
      &[u8; 32],) -> DeviceManagerResult<PciSegment>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - address_manager
    - mem32_allocator
    - mem64_allocator
    - pci_irq_slots
    argTypes:
    - '&Arc<AddressManager>'
    - Arc<Mutex<AddressAllocator>>
    - Arc<Mutex<AddressAllocator>>
    - '&[u8; 32]'
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: PciSegment::new_default_segment
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub(crate) fn new_default_segment(address_manager: &Arc<AddressManager>,mem32_allocator:
      Arc<Mutex<AddressAllocator>>,mem64_allocator: Arc<Mutex<AddressAllocator>>,pci_irq_slots:
      &[u8; 32],) -> DeviceManagerResult<PciSegment>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:168,1
    - Dst: PciBdf::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:168,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:171,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:171,1
    - Dst: next_device_id
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:171,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 13
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: PciSegment::next_device_bdf
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 0
    functionsReached:
    - map_err
    - next_device_id
    - PciBdf::new
    - lock
    - unwrap
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: pub(crate) fn next_device_bdf(&self) -> DeviceManagerResult<PciBdf>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:186,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:188,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:189,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:189,1
    - Dst: allocate_irq
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:189,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:189,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - address_manager
    - pci_irq_slots
    argTypes:
    - '&Arc<AddressManager>'
    - '&mut [u8; 32]'
    constantsTouched: []
    func_position:
      end: 204
      start: 180
    functionDepth: 13
    functionLinenumber: 180
    functionLinenumberEnd: 204
    functionName: PciSegment::reserve_legacy_interrupts_for_pci_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - lock
    - allocate_irq
    - unwrap
    - ok_or
    - Result::push
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn reserve_legacy_interrupts_for_pci_devices(address_manager:
      &Arc<AddressManager>,pci_irq_slots: &mut [u8; 32],) -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:215,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:216,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:216,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 7
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: PciDevSlot::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 0
    functionsReached:
    - as_str
    - Self::to_aml_bytes
    - aml::Device::new
    - into
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Path::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:242,1
    - Dst: aml::And::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:243,1
    - Dst: aml::Local
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:243,1
    - Dst: aml::Arg
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:243,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:243,1
    - Dst: aml::If::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:244,1
    - Dst: aml::Equal::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:245,1
    - Dst: aml::Local
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:245,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 8
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: PciDevSlotNotify::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 0
    functionsReached:
    - Result::to_aml_bytes
    - aml::Path::new
    - aml::Local
    - aml::If::new
    - aml::And::new
    - aml::Arg
    - aml::Equal::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:256,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:258,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:261,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:262,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:263,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:266,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:266,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:266,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:267,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:268,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 286
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 286
    functionName: PciDevSlotMethods::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 0
    functionsReached:
    - Result::to_aml_bytes
    - Vec::new
    - aml::Method::new
    - Result::iter
    - '&str::into'
    - Result::push
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Uuid::parse_str
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:320,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:320,1
    - Dst: as_fields
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:321,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:323,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:323,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:324,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:324,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:325,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:325,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:326,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:327,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:328,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 349
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 349
    functionName: PciDsmMethod::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 0
    functionsReached:
    - Result::to_aml_bytes
    - Uuid::parse_str
    - to_le_bytes
    - aml::Method::new
    - extend
    - '&str::into'
    - as_fields
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:354,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:355,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:355,1
    - Dst: aml::EISAName::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:355,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:356,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:357,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:357,1
    - Dst: aml::EISAName::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:357,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:358,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:359,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:359,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:360,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:361,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:361,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:362,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:363,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:363,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:364,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:365,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:365,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:366,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:367,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:367,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:368,1
    - Dst: aml::Return::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:371,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:372,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:372,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:373,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:376,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:380,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:381,1
    - Dst: aml::ResourceTemplate::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:382,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:412,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:413,1
    - Dst: aml::ResourceTemplate::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:414,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:438,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:440,1
    - Dst: DeviceManagerResult::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:443,1
    - Dst: DeviceManagerResult::iter
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:445,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:446,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:450,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:453,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:453,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:453,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:453,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:459,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:459,1
    - Dst: aml::Package::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:461,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:459,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:463,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:463,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:463,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:467,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:467,1
    - Dst: aml::Package::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:467,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:468,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:470,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:471,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:471,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/pci_segment.rs:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 166
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 475
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 475
    functionName: PciSegment::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/pci_segment.rs
    functionUses: 0
    functionsReached:
    - aml::EISAName::new
    - DeviceManagerResult::iter
    - DeviceManagerResult::push
    - Vec::new
    - into
    - '&str::into'
    - aml::Device::new
    - aml::Package::new
    - Self::to_aml_bytes
    - Result::push
    - iter
    - as_str
    - aml::Return::new
    - map
    - aml::Method::new
    - aml::Name::new
    - aml::ResourceTemplate::new
    - enumerate
    - collect
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: and
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 110
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: or
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 242
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:119,1
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 204
    functionName: create_vmm_ioctl_seccomp_rule_common_mshv
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - or
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_vmm_ioctl_seccomp_rule_common_mshv() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:208,1
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: create_vmm_ioctl_seccomp_rule_common_kvm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - or
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_vmm_ioctl_seccomp_rule_common_kvm() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vmm_ioctl_seccomp_rule_common_kvm
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:248,1
    - Dst: create_vmm_ioctl_seccomp_rule_common_mshv
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hypervisor_type
    argTypes:
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: create_vmm_ioctl_seccomp_rule_hypervisor
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - create_vmm_ioctl_seccomp_rule_common_mshv
    - create_vmm_ioctl_seccomp_rule_common_kvm
    linkageType: ''
    returnType: Result
    signature: 'fn create_vmm_ioctl_seccomp_rule_hypervisor(hypervisor_type: HypervisorType,)
      -> Result<Vec<SeccompRule>, BackendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:257,1
    - Dst: create_vmm_ioctl_seccomp_rule_hypervisor
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:361,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:363,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hypervisor_type
    argTypes:
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 366
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 366
    functionName: create_vmm_ioctl_seccomp_rule_common
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 2
    functionsReached:
    - or
    - extend
    - create_vmm_ioctl_seccomp_rule_hypervisor
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_vmm_ioctl_seccomp_rule_common(hypervisor_type: HypervisorType,)
      -> Result<Vec<SeccompRule>, BackendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vmm_ioctl_seccomp_rule_common
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:452,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: create_vmm_ioctl_seccomp_rule_kvm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - create_vmm_ioctl_seccomp_rule_common
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_vmm_ioctl_seccomp_rule_kvm() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vmm_ioctl_seccomp_rule_common
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: create_vmm_ioctl_seccomp_rule_mshv
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - create_vmm_ioctl_seccomp_rule_common
    linkageType: ''
    returnType: Result
    signature: fn create_vmm_ioctl_seccomp_rule_mshv() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vmm_ioctl_seccomp_rule_kvm
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:466,1
    - Dst: create_vmm_ioctl_seccomp_rule_mshv
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hypervisor_type
    argTypes:
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 470
      start: 461
    functionDepth: 5
    functionLinenumber: 461
    functionLinenumberEnd: 470
    functionName: create_vmm_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - create_vmm_ioctl_seccomp_rule_kvm
    - create_vmm_ioctl_seccomp_rule_mshv
    linkageType: ''
    returnType: Result
    signature: 'fn create_vmm_ioctl_seccomp_rule(hypervisor_type: HypervisorType,)
      -> Result<Vec<SeccompRule>, BackendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:473,1
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: create_api_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - or
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_api_ioctl_seccomp_rule() -> Result<Vec<SeccompRule>, BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:477,1
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 484
    functionName: create_signal_handler_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - or
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_signal_handler_ioctl_seccomp_rule() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 510
    functionName: signal_handler_thread_rules
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn signal_handler_thread_rules() -> Result<Vec<(i64, Vec<SeccompRule>)>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:513,1
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: create_pty_foreground_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - or
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_pty_foreground_ioctl_seccomp_rule() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 545
    functionName: pty_foreground_thread_rules
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn pty_foreground_thread_rules() -> Result<Vec<(i64, Vec<SeccompRule>)>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hypervisor_type
    argTypes:
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 691
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 691
    functionName: vmm_thread_rules
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vmm_thread_rules(hypervisor_type: HypervisorType,) -> Result<Vec<(i64,
      Vec<SeccompRule>)>, BackendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:695,1
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 707
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 707
    functionName: create_vcpu_ioctl_seccomp_rule_kvm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - or
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_vcpu_ioctl_seccomp_rule_kvm() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:711,1
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 739
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 739
    functionName: create_vcpu_ioctl_seccomp_rule_mshv
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - or
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn create_vcpu_ioctl_seccomp_rule_mshv() -> Result<Vec<SeccompRule>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vcpu_ioctl_seccomp_rule_kvm
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:746,1
    - Dst: create_vcpu_ioctl_seccomp_rule_mshv
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hypervisor_type
    argTypes:
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 750
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 750
    functionName: create_vcpu_ioctl_seccomp_rule_hypervisor
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - create_vcpu_ioctl_seccomp_rule_kvm
    - create_vcpu_ioctl_seccomp_rule_mshv
    linkageType: ''
    returnType: Result
    signature: 'fn create_vcpu_ioctl_seccomp_rule_hypervisor(hypervisor_type: HypervisorType,)
      -> Result<Vec<SeccompRule>, BackendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: or
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:755,1
    - Dst: create_vcpu_ioctl_seccomp_rule_hypervisor
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:771,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:773,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hypervisor_type
    argTypes:
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 776
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 776
    functionName: create_vcpu_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - or
    - create_vcpu_ioctl_seccomp_rule_hypervisor
    - Ok
    - Result::extend
    linkageType: ''
    returnType: Result
    signature: 'fn create_vcpu_ioctl_seccomp_rule(hypervisor_type: HypervisorType,)
      -> Result<Vec<SeccompRule>, BackendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hypervisor_type
    argTypes:
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 832
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 832
    functionName: vcpu_thread_rules
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vcpu_thread_rules(hypervisor_type: HypervisorType,) -> Result<Vec<(i64,
      Vec<SeccompRule>)>, BackendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 869
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 869
    functionName: http_api_thread_rules
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn http_api_thread_rules() -> Result<Vec<(i64, Vec<SeccompRule>)>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 902
    functionName: dbus_api_thread_rules
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn dbus_api_thread_rules() -> Result<Vec<(i64, Vec<SeccompRule>)>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 918
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 918
    functionName: event_monitor_thread_rules
    functionSourceFile: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn event_monitor_thread_rules() -> Result<Vec<(i64, Vec<SeccompRule>)>,
      BackendError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: virtio_balloon_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:263,1
    - Dst: virtio_block_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:264,1
    - Dst: virtio_console_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:265,1
    - Dst: virtio_iommu_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:266,1
    - Dst: virtio_mem_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:267,1
    - Dst: virtio_net_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:268,1
    - Dst: virtio_net_ctl_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:269,1
    - Dst: virtio_pmem_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:270,1
    - Dst: virtio_rng_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:271,1
    - Dst: virtio_vhost_block_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:272,1
    - Dst: virtio_vhost_fs_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:273,1
    - Dst: virtio_vhost_net_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:274,1
    - Dst: virtio_vhost_net_ctl_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:275,1
    - Dst: virtio_vsock_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:276,1
    - Dst: virtio_watchdog_thread_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:277,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:279,1
    - Dst: virtio_thread_common
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - thread_type
    argTypes:
    - Thread
    constantsTouched: []
    func_position:
      end: 281
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 281
    functionName: get_seccomp_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached:
    - virtio_vhost_net_ctl_thread_rules
    - virtio_vhost_net_thread_rules
    - virtio_vhost_fs_thread_rules
    - Result::append
    - virtio_mem_thread_rules
    - virtio_vhost_block_thread_rules
    - virtio_thread_common
    - virtio_balloon_thread_rules
    - virtio_net_ctl_thread_rules
    - virtio_iommu_thread_rules
    - virtio_vsock_thread_rules
    - virtio_net_thread_rules
    - virtio_rng_thread_rules
    - virtio_block_thread_rules
    - virtio_pmem_thread_rules
    - virtio_console_thread_rules
    - virtio_watchdog_thread_rules
    linkageType: ''
    returnType: Vec
    signature: 'fn get_seccomp_rules(thread_type: Thread) -> Vec<(i64, Vec<SeccompRule>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:318,1
    - Dst: SeccompFilter::new
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:319,1
    - Dst: get_seccomp_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:320,1
    - Dst: Vec::into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:320,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:320,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:323,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:323,1
    - Dst: Result::and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:319,1
    - Dst: Result::try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:325,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:319,1
    - Dst: SeccompFilter::new
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:327,1
    - Dst: get_seccomp_rules
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:328,1
    - Dst: Vec::into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:328,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:328,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:331,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:331,1
    - Dst: Result::and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:327,1
    - Dst: Result::try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:333,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - seccomp_action
    - thread_type
    argTypes:
    - '&SeccompAction'
    - Thread
    constantsTouched: []
    func_position:
      end: 336
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 336
    functionName: get_seccomp_filter
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 8
    functionsReached:
    - Vec::into_iter
    - try_into
    - map_err
    - get_seccomp_rules
    - Result::and_then
    - Ok
    - unwrap
    - SeccompFilter::new
    - Result::try_into
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_seccomp_filter(seccomp_action: &SeccompAction,thread_type:
      Thread,) -> Result<BpfProgram, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: VirtioMemZone::region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Arc'
    signature: pub fn region(&self) -> &Arc<GuestRegionMmap>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - virtio_device
    argTypes:
    - Arc<Mutex<virtio_devices::Mem>>
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: VirtioMemZone::set_virtio_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_virtio_device(&mut self, virtio_device: Arc<Mutex<virtio_devices::Mem>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: VirtioMemZone::hotplugged_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn hotplugged_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: VirtioMemZone::hugepages
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn hugepages(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: VirtioMemZone::blocks_state
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Arc'
    signature: pub fn blocks_state(&self) -> &Arc<Mutex<BlocksState>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:114,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:114,1
    - Dst: memory_ranges
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:114,1
    - Dst: start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:117,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 13
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: VirtioMemZone::plugged_ranges
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - lock
    - start_addr
    - unwrap
    - memory_ranges
    - raw_value
    linkageType: ''
    returnType: MemoryRangeTable
    signature: pub fn plugged_ranges(&self) -> MemoryRangeTable
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: MemoryZone::regions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Vec'
    signature: pub fn regions(&self) -> &Vec<Arc<GuestRegionMmap>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: MemoryZone::virtio_mem_zone
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Option'
    signature: pub fn virtio_mem_zone(&self) -> &Option<VirtioMemZone>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: MemoryZone::virtio_mem_zone_mut
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - as_mut
    linkageType: ''
    returnType: Option
    signature: pub fn virtio_mem_zone_mut(&mut self) -> Option<&mut VirtioMemZone>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - phys_bits
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: mmio_address_space_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn mmio_address_space_size(phys_bits: u8) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::ffi::CString::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:381,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:381,1
    - Dst: std::mem::MaybeUninit::<libc::statfs>::uninit
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:382,1
    - Dst: libc::statfs
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:385,1
    - Dst: String::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:385,1
    - Dst: Self::as_mut_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:385,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:387,1
    - Dst: Error::GetFileSystemBlockSize
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:387,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:388,1
    - Dst: Self::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:397,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 399
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 399
    functionName: statfs_get_bsize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 2
    functionsReached:
    - Self::as_mut_ptr
    - std::io::Error::last_os_error
    - Err
    - std::ffi::CString::new
    - Error::GetFileSystemBlockSize
    - Result::map_err
    - String::as_ptr
    - libc::statfs
    - Self::as_ptr
    - std::mem::MaybeUninit::<libc::statfs>::uninit
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn statfs_get_bsize(path: &str) -> Result<u64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::sysconf
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:403,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:406,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:407,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:414,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:424,1
    - Dst: map_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:424,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:424,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:425,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:425,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:428,1
    - Dst: statfs_get_bsize
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:428,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - zone
    argTypes:
    - '&MemoryZoneConfig'
    constantsTouched: []
    func_position:
      end: 431
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 431
    functionName: memory_zone_get_align_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - ok_or
    - map_or
    - std::cmp::max
    - is_none
    - as_ref
    - statfs_get_bsize
    - libc::sysconf
    - to_str
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn memory_zone_get_align_size(zone: &MemoryZoneConfig) -> Result<u64,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - val
    - align
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 7
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: align_down
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - into
    linkageType: ''
    returnType: T
    signature: 'fn align_down<T>(val: T, align: T) -> TwhereT: BitAnd<Output = T>
      + Not<Output = T> + Sub<Output = T> + From<u8>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:446,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - val
    - align
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 7
    functionLinenumber: 442
    functionLinenumberEnd: 447
    functionName: is_aligned
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 4
    functionsReached:
    - into
    linkageType: ''
    returnType: bool
    signature: 'fn is_aligned<T>(val: T, align: T) -> boolwhereT: BitAnd<Output =
      T> + Sub<Output = T> + From<u8> + PartialEq,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:451,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:455,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:455,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:458,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:458,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:461,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:461,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:464,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:464,1
    - Dst: String::fill
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 72
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 486
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 486
    functionName: MemoryManager::read
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - String::copy_from_slice
    - len
    - String::fill
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:491,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:494,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 517
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 517
    functionName: MemoryManager::write
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - len
    - usize::from
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:544,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:545,1
    - Dst: impl Iterator::next
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:546,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:546,1
    - Dst: memory_zone_get_align_size
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:547,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:549,1
    - Dst: is_aligned
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:551,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:552,1
    - Dst: '&MemoryZones::insert'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:556,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:556,1
    - Dst: MemoryZone::default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:556,1
    - Dst: '&[(GuestAddress, usize)]::iter'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:558,1
    - Dst: align_down
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:567,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:574,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:574,1
    - Dst: MemoryManager::create_ram_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:600,1
    - Dst: Option<bool>::unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:605,1
    - Dst: '&MemoryZones::get_mut'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:616,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:617,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:617,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:620,1
    - Dst: impl Iterator::next
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:625,1
    - Dst: memory_zone_get_align_size
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:631,1
    - Dst: is_aligned
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:632,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:633,1
    - Dst: '&MemoryZones::contains_key'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:639,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:645,1
    - Dst: '&MemoryZones::insert'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:647,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:647,1
    - Dst: MemoryZone::default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:647,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:660,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 143
    argCount: 4
    argNames:
    - ram_regions
    - zones
    - prefault
    - thp
    argTypes:
    - '&[(GuestAddress, usize)]'
    - '&[MemoryZoneConfig]'
    - Option<bool>
    - bool
    constantsTouched: []
    func_position:
      end: 661
      start: 538
    functionDepth: 18
    functionLinenumber: 538
    functionLinenumberEnd: 661
    functionName: MemoryManager::create_memory_regions_from_zones
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - push
    - is_aligned
    - ok_or
    - '&MemoryZones::contains_key'
    - checked_add
    - Ok
    - '&MemoryZones::get_mut'
    - Vec::new
    - '&MemoryZones::insert'
    - '&[(GuestAddress, usize)]::iter'
    - MemoryManager::create_ram_region
    - Option<bool>::unwrap_or
    - Result::push
    - impl Iterator::next
    - Err
    - Result::clone
    - Option::ok_or
    - clone
    - Result::iter
    - memory_zone_get_align_size
    - align_down
    - MemoryZone::default
    linkageType: ''
    returnType: Result
    signature: 'fn create_memory_regions_from_zones(ram_regions: &[(GuestAddress,
      usize)],zones: &[MemoryZoneConfig],prefault: Option<bool>,thp: bool,) -> Result<(Vec<Arc<GuestRegionMmap>>,
      MemoryZones), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:671,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:672,1
    - Dst: '&MemoryZones::insert'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:675,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:675,1
    - Dst: MemoryZone::default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:675,1
    - Dst: MemoryManager::create_ram_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:681,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:688,1
    - Dst: Option<bool>::unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:690,1
    - Dst: HashMap<u32, File>::remove
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:695,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:698,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:698,1
    - Dst: '&MemoryZones::get_mut'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:699,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:701,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:702,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:703,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:708,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:708,1
    - Dst: BlocksState::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:708,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:711,1
    - Dst: Vec::sort_by_key
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:718,1
    - Dst: start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:718,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:720,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 5
    argNames:
    - guest_ram_mappings
    - zones_config
    - prefault
    - existing_memory_files
    - thp
    argTypes:
    - '&[GuestRamMapping]'
    - '&[MemoryZoneConfig]'
    - Option<bool>
    - HashMap<u32, File>
    - bool
    constantsTouched: []
    func_position:
      end: 721
      start: 664
    functionDepth: 18
    functionLinenumber: 664
    functionLinenumberEnd: 721
    functionName: MemoryManager::restore_memory_regions_and_zones
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - push
    - Arc::clone
    - Ok
    - '&MemoryZones::get_mut'
    - Vec::new
    - '&MemoryZones::insert'
    - MemoryManager::create_ram_region
    - Arc::new
    - start_addr
    - Option<bool>::unwrap_or
    - Vec::sort_by_key
    - vm_memory::GuestAddress
    - HashMap<u32, File>::remove
    - Result::len
    - Mutex::new
    - clone
    - BlocksState::new
    - unwrap_or
    - Vec::push
    - MemoryZone::default
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn restore_memory_regions_and_zones(guest_ram_mappings: &[GuestRamMapping],zones_config:
      &[MemoryZoneConfig],prefault: Option<bool>,mut existing_memory_files: HashMap<u32,
      File>,thp: bool,) -> Result<(Vec<Arc<GuestRegionMmap>>, MemoryZones), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:728,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:729,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:733,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:733,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:733,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:733,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:738,1
    - Dst: Result::regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:739,1
    - Dst: GuestMemoryAtomic::read_volatile_from
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:747,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:749,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:747,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:762,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - file_path
    - saved_regions
    argTypes:
    - PathBuf
    - '&MemoryRangeTable'
    constantsTouched: []
    func_position:
      end: 763
      start: 723
    functionDepth: 8
    functionLinenumber: 723
    functionLinenumberEnd: 763
    functionName: MemoryManager::fill_saved_regions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Result::is_empty
    - OpenOptions::new
    - Result::regions
    - vm_memory::GuestAddress
    - map_err
    - IoResult::open
    - GuestMemoryAtomic::read_volatile_from
    - Result::read
    - memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn fill_saved_regions(&mut self,file_path: PathBuf,saved_regions:
      &MemoryRangeTable,) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:772,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:777,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:782,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:782,1
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:783,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:784,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:788,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:791,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:791,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:796,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:799,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:801,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:811,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:818,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:825,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:830,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:832,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:837,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:840,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:851,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:858,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:865,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:884,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 127
    argCount: 2
    argNames:
    - config
    - user_provided_zones
    argTypes:
    - '&MemoryConfig'
    - bool
    constantsTouched: []
    func_position:
      end: 886
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 886
    functionName: MemoryManager::validate_memory_config
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Result::is_empty
    - is_some
    - is_none
    - Err
    - Result::iter
    - unwrap
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn validate_memory_config(config: &MemoryConfig,user_provided_zones:
      bool,) -> Result<(u64, Vec<MemoryZoneConfig>, bool), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:889,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:891,1
    - Dst: regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:893,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:893,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:893,1
    - Dst: u64::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:896,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:893,1
    - Dst: virtio_mem_zone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:899,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:900,1
    - Dst: '&Option::region'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:900,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:900,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:903,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:903,1
    - Dst: MemoryManager::create_userspace_mapping
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:910,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:911,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:911,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:912,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:912,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:912,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:913,1
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:920,1
    - Dst: start
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:921,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:926,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:927,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:927,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:928,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:930,1
    - Dst: allocate
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:934,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:935,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:935,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:935,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:934,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:941,1
    - Dst: allocate
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:947,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:949,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:949,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:947,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:956,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 957
      start: 888
    functionDepth: 16
    functionLinenumber: 888
    functionLinenumberEnd: 957
    functionName: MemoryManager::allocate_address_space
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - u64::clone
    - push
    - '&Option::region'
    - ok_or
    - Ok
    - Vec::new
    - Result::file_offset
    - virtio_mem_zone
    - start
    - regions
    - iter
    - vm_memory::GuestAddress
    - Result::len
    - std::result::Result::unwrap
    - Result::as_ptr
    - Result::clone
    - map
    - MemoryManager::create_userspace_mapping
    - Option::clone
    - Result::raw_value
    - usize::try_into
    - Result::start_addr
    - Vec::push
    - allocate
    - Some
    - collect
    linkageType: ''
    returnType: Result
    signature: pub fn allocate_address_space(&mut self) -> Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::allocate_memory_slot
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:963,1
    - Dst: GuestRegionMmap::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:964,1
    - Dst: MmapRegion::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:965,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:965,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:964,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:973,1
    - Dst: start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:976,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:976,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:977,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:978,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:973,1
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:985,1
    - Dst: GuestMemoryMmap::from_regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:985,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:985,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:987,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 990
      start: 960
    functionDepth: 15
    functionLinenumber: 960
    functionLinenumberEnd: 990
    functionName: MemoryManager::add_uefi_flash
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - map_err
    - MemoryManager::allocate_memory_slot
    - start_addr
    - GuestMemoryMmap::from_regions
    - GuestRegionMmap::new
    - MmapRegion::new
    - create_user_memory_region
    - GuestMemoryAtomic::new
    - len
    - unwrap
    - Ok
    - Result::unwrap
    - Some
    - raw_value
    linkageType: ''
    returnType: Result
    signature: pub fn add_uefi_flash(&mut self) -> Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1002,1
    - Dst: mmio_address_space_size
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1006,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1012,1
    - Dst: unchecked_sub
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1013,1
    - Dst: Self::validate_memory_config
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1016,1
    - Dst: Self::restore_memory_regions_and_zones
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1031,1
    - Dst: GuestMemoryMmap::from_arc_regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1039,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1039,1
    - Dst: GuestMemoryAtomic::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1040,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1042,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1045,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1049,1
    - Dst: arch::arch_memory_regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1056,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1058,1
    - Dst: impl Iterator::filter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1058,1
    - Dst: Result::map
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1058,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1058,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1064,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1064,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1064,1
    - Dst: Self::create_memory_regions_from_zones
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1074,1
    - Dst: GuestMemoryMmap::from_arc_regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1077,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1077,1
    - Dst: GuestMemoryAtomic::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1079,1
    - Dst: MemoryManager::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1082,1
    - Dst: GuestMemoryAtomic::last_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1082,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1085,1
    - Dst: '&MemoryZones::get_mut'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1086,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1090,1
    - Dst: GuestAddress::checked_add
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1094,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1094,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1099,1
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1100,1
    - Dst: MemoryManager::create_ram_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1109,1
    - Dst: Option<bool>::unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1114,1
    - Dst: GuestMemoryAtomic::insert_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1123,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1124,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1123,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1127,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1128,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1129,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1134,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1134,1
    - Dst: BlocksState::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1134,1
    - Dst: Result::checked_add
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1137,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1137,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1143,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1147,1
    - Dst: resize_with
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1148,1
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1165,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1167,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1167,1
    - Dst: SystemAllocator::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1168,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1169,1
    - Dst: GsiApic::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1174,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1168,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1189,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1191,1
    - Dst: Arc::lock
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1192,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1192,1
    - Dst: allocate_platform_mmio_addresses
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1192,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1192,1
    - Dst: GuestAddress::unchecked_sub
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1203,1
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1204,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1204,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1204,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1210,1
    - Dst: AtomicU32::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1210,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1211,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1211,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1211,1
    - Dst: MemoryRangeTable::default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1229,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1231,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1242,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1242,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1242,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 229
    argCount: 7
    argNames:
    - vm
    - config
    - prefault
    - phys_bits
    - tdx_enabled
    - restore_data
    - existing_memory_files
    argTypes:
    - Arc<dyn hypervisor::Vm>
    - '&MemoryConfig'
    - Option<bool>
    - u8
    - bool
    - Option<&MemoryManagerSnapshotData>
    - HashMap<u32, File>
    constantsTouched: []
    func_position:
      end: 1243
      start: 993
    functionDepth: 19
    functionLinenumber: 993
    functionLinenumberEnd: 1243
    functionName: MemoryManager::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 3
    functionsReached:
    - Self::restore_memory_regions_and_zones
    - AtomicU32::new
    - map_err
    - GuestMemoryAtomic::new
    - ok_or
    - SystemAllocator::new
    - Arc::clone
    - Result::map
    - Ok
    - '&MemoryZones::get_mut'
    - Vec::new
    - arch::arch_memory_regions
    - MemoryManager::create_ram_region
    - Arc::new
    - GuestMemoryAtomic::insert_region
    - Arc::lock
    - GuestMemoryAtomic::clone
    - Option<bool>::unwrap_or
    - MemoryManager::start_addr
    - GsiApic::new
    - vm_memory::GuestAddress
    - impl Iterator::map
    - mmio_address_space_size
    - GuestMemoryMmap::from_arc_regions
    - Some
    - AddressAllocator::new
    - tracer::trace_scoped
    - Result::len
    - Result::checked_add
    - Err
    - div_ceil
    - Mutex::new
    - unwrap
    - Vec::iter
    - Self::collect
    - Option::ok_or
    - clone
    - Result::iter
    - BlocksState::new
    - unchecked_sub
    - unwrap_or
    - allocate_platform_mmio_addresses
    - unwrap_or_default
    - MemoryRangeTable::default
    - Self::validate_memory_config
    - impl Iterator::filter
    - Option::unwrap
    - resize_with
    - GuestAddress::unchecked_sub
    - Self::create_memory_regions_from_zones
    - GuestAddress::checked_add
    - Vec::with_capacity
    - GuestMemoryAtomic::last_addr
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(vm: Arc<dyn hypervisor::Vm>,config: &MemoryConfig,prefault:
      Option<bool>,phys_bits: u8,#[cfg(feature = "tdx")] tdx_enabled: bool,restore_data:
      Option<&MemoryManagerSnapshotData>,existing_memory_files: HashMap<u32, File>,)
      -> Result<Arc<Mutex<MemoryManager>>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: migration::url_to_path
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1254,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1254,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1255,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1255,1
    - Dst: ApiResult::to_state
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1258,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1258,1
    - Dst: MemoryManager::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1260,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1263,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1267,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1268,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1271,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1271,1
    - Dst: fill_saved_regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1271,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1275,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 6
    argNames:
    - snapshot
    - vm
    - config
    - source_url
    - prefault
    - phys_bits
    argTypes:
    - '&Snapshot'
    - Arc<dyn hypervisor::Vm>
    - '&MemoryConfig'
    - Option<&str>
    - bool
    - u8
    constantsTouched: []
    func_position:
      end: 1279
      start: 1245
    functionDepth: 18
    functionLinenumber: 1245
    functionLinenumberEnd: 1279
    functionName: MemoryManager::new_from_snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - Result::lock
    - fill_saved_regions
    - migration::url_to_path
    - ApiResult::to_state
    - std::result::Result::map_err
    - MemoryManager::new
    - Some
    - push
    - Default::default
    - Err
    - Result::map_err
    - unwrap
    - String::from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new_from_snapshot(snapshot: &Snapshot,vm: Arc<dyn hypervisor::Vm>,config:
      &MemoryConfig,source_url: Option<&str>,prefault: bool,phys_bits: u8,) -> Result<Arc<Mutex<MemoryManager>>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1283,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1283,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1286,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1286,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - '&ffi::CStr'
    - u32
    constantsTouched: []
    func_position:
      end: 1290
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1290
    functionName: MemoryManager::memfd_create
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Result::as_ptr
    - Err
    - libc::syscall
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn memfd_create(name: &ffi::CStr, flags: u32) -> Result<RawFd, io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1302,1
    - Dst: '&[u64]::as_ptr'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1307,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1314,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1314,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - addr
    - len
    - mode
    - nodemask
    - maxnode
    - flags
    argTypes:
    - '*mut u8'
    - u64
    - u32
    - '&[u64]'
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 1318
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1318
    functionName: MemoryManager::mbind
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - '&[u64]::as_ptr'
    - Err
    - libc::syscall
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn mbind(addr: *mut u8,len: u64,mode: u32,nodemask: &[u64],maxnode:
      u64,flags: u32,) -> Result<(), io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::memfd_create
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1325,1
    - Dst: ffi::CString::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1326,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1326,1
    - Dst: Option<u64>::trailing_zeros
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1341,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1325,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1353,1
    - Dst: Result::set_len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1354,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1354,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1356,1
    - Dst: FileOffset::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - size
    - hugepages
    - hugepage_size
    argTypes:
    - usize
    - bool
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 1357
      start: 1320
    functionDepth: 5
    functionLinenumber: 1320
    functionLinenumberEnd: 1357
    functionName: MemoryManager::create_anonymous_file
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Option<u64>::trailing_zeros
    - std::result::Result::map_err
    - ffi::CString::new
    - File::from_raw_fd
    - std::io::Result::map_err
    - FileOffset::new
    - Ok
    - Result::unwrap
    - Self::memfd_create
    - Result::set_len
    linkageType: ''
    returnType: Result
    signature: 'fn create_anonymous_file(size: usize,hugepages: bool,hugepage_size:
      Option<u64>,) -> Result<FileOffset, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_dir
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1360,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1361,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1363,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1363,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1363,1
    - Dst: IoResult::open
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1363,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1363,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1369,1
    - Dst: FileOffset::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - backing_file
    - file_offset
    argTypes:
    - '&PathBuf'
    - u64
    constantsTouched: []
    func_position:
      end: 1371
      start: 1359
    functionDepth: 8
    functionLinenumber: 1359
    functionLinenumberEnd: 1371
    functionName: MemoryManager::open_backing_file
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - OpenOptions::new
    - map_err
    - FileOffset::new
    - IoResult::open
    - Err
    - IoResult::write
    - Result::read
    - is_dir
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn open_backing_file(backing_file: &PathBuf, file_offset: u64) ->
      Result<FileOffset, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1393,1
    - Dst: FileOffset::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1393,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1400,1
    - Dst: Self::open_backing_file
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1400,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1406,1
    - Dst: Self::create_anonymous_file
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1406,1
    - Dst: MmapRegion::build
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1412,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1412,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1417,1
    - Dst: Result::size
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1418,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1420,1
    - Dst: Result::resize
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1429,1
    - Dst: Self::mbind
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1443,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1443,1
    - Dst: Self::get_prefault_align_size
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1450,1
    - Dst: is_aligned
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1452,1
    - Dst: Self::get_prefault_num_threads
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1458,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1463,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1463,1
    - Dst: thread::scope
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1464,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1467,1
    - Dst: FdtWriterResult::spawn
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1468,1
    - Dst: Self::wait
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1471,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1474,1
    - Dst: u64::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1477,1
    - Dst: '*const T::add'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1477,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1478,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1481,1
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1489,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1489,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1496,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1496,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1498,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1503,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 128
    argCount: 10
    argNames:
    - backing_file
    - file_offset
    - size
    - prefault
    - shared
    - hugepages
    - hugepage_size
    - host_numa_node
    - existing_memory_file
    - thp
    argTypes:
    - '&Option<PathBuf>'
    - u64
    - usize
    - bool
    - bool
    - bool
    - Option<u64>
    - Option<u32>
    - Option<File>
    - bool
    constantsTouched: []
    func_position:
      end: 1504
      start: 1374
    functionDepth: 16
    functionLinenumber: 1374
    functionLinenumberEnd: 1504
    functionName: MemoryManager::create_ram_region_raw
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - std::cmp::min
    - '*const T::add'
    - MmapRegion::build
    - libc::madvise
    - is_aligned
    - Result::resize
    - FdtWriterResult::spawn
    - Result::size
    - Arc::clone
    - io::Error::last_os_error
    - Ok
    - Self::wait
    - Vec::new
    - Arc::new
    - Barrier::new
    - Result::file_offset
    - Self::get_prefault_align_size
    - Self::get_prefault_num_threads
    - FileOffset::new
    - Result::as_ptr
    - Self::mbind
    - u64::as_ptr
    - thread::scope
    - Self::create_anonymous_file
    - is_none
    - Result::map_err
    - Self::open_backing_file
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn create_ram_region_raw(backing_file: &Option<PathBuf>,file_offset:
      u64,size: usize,prefault: bool,shared: bool,hugepages: bool,hugepage_size: Option<u64>,host_numa_node:
      Option<u32>,existing_memory_file: Option<File>,thp: bool,) -> Result<MmapRegion<AtomicBitmap>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::create_ram_region_raw
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1520,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1533,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1533,1
    - Dst: GuestRegionMmap::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1534,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 11
    argNames:
    - backing_file
    - file_offset
    - start_addr
    - size
    - prefault
    - shared
    - hugepages
    - hugepage_size
    - host_numa_node
    - existing_memory_file
    - thp
    argTypes:
    - '&Option<PathBuf>'
    - u64
    - GuestAddress
    - usize
    - bool
    - bool
    - bool
    - Option<u64>
    - Option<u32>
    - Option<File>
    - bool
    constantsTouched: []
    func_position:
      end: 1536
      start: 1507
    functionDepth: 17
    functionLinenumber: 1507
    functionLinenumberEnd: 1536
    functionName: MemoryManager::create_ram_region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 5
    functionsReached:
    - Self::create_ram_region_raw
    - Arc::new
    - GuestRegionMmap::new
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn create_ram_region(backing_file: &Option<PathBuf>,file_offset:
      u64,start_addr: GuestAddress,size: usize,prefault: bool,shared: bool,hugepages:
      bool,hugepage_size: Option<u64>,host_numa_node: Option<u32>,existing_memory_file:
      Option<File>,thp: bool,) -> Result<Arc<GuestRegionMmap>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::sysconf
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1545,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1547,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1548,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1557,1
    - Dst: map_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1557,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1559,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1560,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1560,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1562,1
    - Dst: statfs_get_bsize
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1562,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - backing_file
    - hugepages
    - hugepage_size
    argTypes:
    - '&Option<PathBuf>'
    - bool
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 1566
      start: 1539
    functionDepth: 2
    functionLinenumber: 1539
    functionLinenumberEnd: 1566
    functionName: MemoryManager::get_prefault_align_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - map_or
    - std::cmp::max
    - as_ref
    - statfs_get_bsize
    - libc::sysconf
    - to_str
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn get_prefault_align_size(backing_file: &Option<PathBuf>,hugepages:
      bool,hugepage_size: Option<u64>,) -> Result<u64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::sysconf
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1573,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1575,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1579,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1582,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - page_size
    - num_pages
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 1588
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1588
    functionName: MemoryManager::get_prefault_num_threads
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - std::cmp::min
    - std::cmp::max
    - libc::sysconf
    linkageType: ''
    returnType: usize
    signature: 'fn get_prefault_num_threads(page_size: usize, num_pages: usize) ->
      usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1592,1
    - Dst: insert_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1592,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1592,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1597,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1597,1
    - Dst: replace
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1597,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - region
    argTypes:
    - Arc<GuestRegionMmap>
    constantsTouched: []
    func_position:
      end: 1600
      start: 1591
    functionDepth: 13
    functionLinenumber: 1591
    functionLinenumberEnd: 1600
    functionName: MemoryManager::add_region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - lock
    - replace
    - unwrap
    - insert_region
    - memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_region(&mut self, region: Arc<GuestRegionMmap>) -> Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1611,1
    - Dst: Result::checked_add
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1616,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1616,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1622,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - mem_end
    - allow_mem_hotplug
    argTypes:
    - GuestAddress
    - bool
    constantsTouched: []
    func_position:
      end: 1626
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1626
    functionName: MemoryManager::start_addr
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 2
    functionsReached:
    - ok_or
    - vm_memory::GuestAddress
    - Result::checked_add
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn start_addr(mem_end: GuestAddress, allow_mem_hotplug: bool) -> Result<GuestAddress,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::create_ram_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1634,1
    - Dst: MemoryManager::create_userspace_mapping
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1651,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1652,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1653,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1653,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1653,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1654,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1660,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1661,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1661,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1662,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1664,1
    - Dst: MemoryManager::add_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1669,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1669,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 2
    argNames:
    - start_addr
    - size
    argTypes:
    - GuestAddress
    - usize
    constantsTouched: []
    func_position:
      end: 1672
      start: 1628
    functionDepth: 18
    functionLinenumber: 1628
    functionLinenumberEnd: 1672
    functionName: MemoryManager::add_ram_region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - MemoryManager::add_region
    - MemoryManager::create_userspace_mapping
    - usize::try_into
    - Result::raw_value
    - MemoryManager::create_ram_region
    - Result::start_addr
    - Result::len
    - std::result::Result::unwrap
    - Result::as_ptr
    - push
    - to_string
    - Arc::clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_ram_region(&mut self,start_addr: GuestAddress,size: usize,)
      -> Result<Arc<GuestRegionMmap>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1679,1
    - Dst: usize::is_multiple_of
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1683,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1684,1
    - Dst: MemoryManager::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1687,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1687,1
    - Dst: last_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1687,1
    - Dst: Result::checked_add
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1689,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1690,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1690,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1689,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1694,1
    - Dst: MemoryManager::add_ram_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1697,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1701,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1702,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1702,1
    - Dst: allocate
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1706,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1707,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1706,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1714,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1715,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1719,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 88
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1720
      start: 1674
    functionDepth: 19
    functionLinenumber: 1674
    functionLinenumberEnd: 1720
    functionName: MemoryManager::hotplug_ram_region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - last_addr
    - try_into
    - Some
    - push
    - Result::start_addr
    - Result::len
    - Result::checked_add
    - Err
    - usize::is_multiple_of
    - get_mut
    - unwrap
    - allocate
    - ok_or
    - MemoryManager::add_ram_region
    - Arc::clone
    - MemoryManager::start_addr
    - memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn hotplug_ram_region(&mut self, size: usize) -> Result<Arc<GuestRegionMmap>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1722
    functionDepth: 3
    functionLinenumber: 1722
    functionLinenumberEnd: 1724
    functionName: MemoryManager::guest_memory
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - clone
    linkageType: ''
    returnType: GuestMemoryAtomic
    signature: pub fn guest_memory(&self) -> GuestMemoryAtomic<GuestMemoryMmap>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1726
    functionDepth: 3
    functionLinenumber: 1726
    functionLinenumberEnd: 1728
    functionName: MemoryManager::boot_guest_memory
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: GuestMemoryMmap
    signature: pub fn boot_guest_memory(&self) -> GuestMemoryMmap
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1730
    functionDepth: 3
    functionLinenumber: 1730
    functionLinenumberEnd: 1732
    functionName: MemoryManager::allocator
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Arc
    signature: pub fn allocator(&self) -> Arc<Mutex<SystemAllocator>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1736
    functionName: MemoryManager::start_of_device_area
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GuestAddress
    signature: pub fn start_of_device_area(&self) -> GuestAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: MemoryManager::end_of_device_area
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GuestAddress
    signature: pub fn end_of_device_area(&self) -> GuestAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1743,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1744,1
    - Dst: MemorySlotAllocator::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1742
    functionDepth: 3
    functionLinenumber: 1742
    functionLinenumberEnd: 1746
    functionName: MemoryManager::memory_slot_allocator
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - Arc::clone
    - MemorySlotAllocator::new
    linkageType: ''
    returnType: MemorySlotAllocator
    signature: pub fn memory_slot_allocator(&mut self) -> MemorySlotAllocator
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::memory_slot_allocator
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1749,1
    - Dst: MemorySlotAllocator::next_memory_slot
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1748
    functionDepth: 14
    functionLinenumber: 1748
    functionLinenumberEnd: 1750
    functionName: MemoryManager::allocate_memory_slot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 2
    functionsReached:
    - MemoryManager::memory_slot_allocator
    - MemorySlotAllocator::next_memory_slot
    linkageType: ''
    returnType: u32
    signature: pub fn allocate_memory_slot(&mut self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::allocate_memory_slot
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1765,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1774,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1774,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1789,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1796,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1805,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1812,1
    - Dst: raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1815,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1815,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1830,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 6
    argNames:
    - guest_phys_addr
    - memory_size
    - userspace_addr
    - mergeable
    - readonly
    - log_dirty
    argTypes:
    - u64
    - usize
    - '*mut u8'
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1831
      start: 1756
    functionDepth: 15
    functionLinenumber: 1756
    functionLinenumberEnd: 1831
    functionName: MemoryManager::create_userspace_mapping
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 2
    functionsReached:
    - map_err
    - libc::madvise
    - raw_os_error
    - MemoryManager::allocate_memory_slot
    - create_user_memory_region
    - unwrap
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub unsafe fn create_userspace_mapping(&mut self,guest_phys_addr:
      u64,memory_size: usize,userspace_addr: *mut u8,mergeable: bool,readonly: bool,log_dirty:
      bool,) -> Result<u32, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remove_user_memory_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1852,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1852,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1870,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1877,1
    - Dst: raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1880,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1880,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - guest_phys_addr
    - memory_size
    - userspace_addr
    - mergeable
    - slot
    argTypes:
    - u64
    - usize
    - '*mut u8'
    - bool
    - u32
    constantsTouched: []
    func_position:
      end: 1896
      start: 1842
    functionDepth: 9
    functionLinenumber: 1842
    functionLinenumberEnd: 1896
    functionName: MemoryManager::remove_userspace_mapping
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - remove_user_memory_region
    - map_err
    - libc::madvise
    - raw_os_error
    - unwrap
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub unsafe fn remove_userspace_mapping(&mut self,guest_phys_addr:
      u64,memory_size: usize,userspace_addr: *mut u8,mergeable: bool,slot: u32,) ->
      Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1899,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1901,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1902,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1902,1
    - Dst: resize
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1902,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1902,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1913,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1916,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 2
    argNames:
    - id
    - size
    argTypes:
    - '&str'
    - u64
    constantsTouched: []
    func_position:
      end: 1921
      start: 1898
    functionDepth: 13
    functionLinenumber: 1898
    functionLinenumberEnd: 1921
    functionName: MemoryManager::virtio_mem_resize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 2
    functionsReached:
    - map_err
    - as_ref
    - Err
    - get_mut
    - lock
    - unwrap
    - resize
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn virtio_mem_resize(&mut self, id: &str, size: u64) -> Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1933,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1941,1
    - Dst: MemoryManager::virtio_mem_resize
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1944,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1951,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1955,1
    - Dst: MemoryManager::hotplug_ram_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1955,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 55
    argCount: 1
    argNames:
    - desired_ram
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1961
      start: 1927
    functionDepth: 14
    functionLinenumber: 1927
    functionLinenumberEnd: 1961
    functionName: MemoryManager::resize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Err
    - MemoryManager::virtio_mem_resize
    - MemoryManager::hotplug_ram_region
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize(&mut self, desired_ram: u64) -> Result<Option<Arc<GuestRegionMmap>>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1969,1
    - Dst: MemoryManager::virtio_mem_resize
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - id
    - virtio_mem_size
    argTypes:
    - '&str'
    - u64
    constantsTouched: []
    func_position:
      end: 1973
      start: 1963
    functionDepth: 14
    functionLinenumber: 1963
    functionLinenumberEnd: 1973
    functionName: MemoryManager::resize_zone
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - MemoryManager::virtio_mem_resize
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize_zone(&mut self, id: &str, virtio_mem_size: u64) -> Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::MaybeUninit::<libc::stat>::uninit
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1976,1
    - Dst: libc::fstat
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1978,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1978,1
    - Dst: as_mut_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1978,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:1985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&File'
    constantsTouched: []
    func_position:
      end: 1986
      start: 1975
    functionDepth: 2
    functionLinenumber: 1975
    functionLinenumberEnd: 1986
    functionName: MemoryManager::is_hardlink
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - std::mem::MaybeUninit::<libc::stat>::uninit
    - libc::fstat
    - as_mut_ptr
    - Result::as_raw_fd
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_hardlink(f: &File) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1988
    functionDepth: 0
    functionLinenumber: 1988
    functionLinenumberEnd: 1990
    functionName: MemoryManager::memory_zones
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&MemoryZones'
    signature: pub fn memory_zones(&self) -> &MemoryZones
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 1994
    functionName: MemoryManager::memory_zones_mut
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut MemoryZones'
    signature: pub fn memory_zones_mut(&mut self) -> &mut MemoryZones
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryRangeTable::default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2000,1
    - Dst: values
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2002,1
    - Dst: virtio_mem_zone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2003,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2004,1
    - Dst: '&Option::plugged_ranges'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2004,1
    - Dst: regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2007,1
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2009,1
    - Dst: Result::flags
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2010,1
    - Dst: Self::is_hardlink
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2011,1
    - Dst: file
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2011,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2025,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2026,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2026,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2027,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2032,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2033
      start: 1996
    functionDepth: 14
    functionLinenumber: 1996
    functionLinenumberEnd: 2033
    functionName: MemoryManager::memory_range_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 2
    functionsReached:
    - regions
    - Self::is_hardlink
    - Result::push
    - Result::raw_value
    - Result::flags
    - Result::start_addr
    - Result::len
    - values
    - Result::file_offset
    - file
    - Ok
    - virtio_mem_zone
    - MemoryRangeTable::default
    - '&Option::plugged_ranges'
    - Result::extend
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn memory_range_table(&self,snapshot: bool,) -> std::result::Result<MemoryRangeTable,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2037,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2038,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2042,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2043,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2035
    functionDepth: 3
    functionLinenumber: 2035
    functionLinenumberEnd: 2048
    functionName: MemoryManager::snapshot_data
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 1
    functionsReached:
    - load
    - clone
    linkageType: ''
    returnType: MemoryManagerSnapshotData
    signature: pub fn snapshot_data(&self) -> MemoryManagerSnapshotData
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2051,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2054,1
    - Dst: GuestMemoryAtomic::find_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2055,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2056,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2055,1
    - Dst: file_offset
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2055,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2055,1
    - Dst: file
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2055,1
    - Dst: HashMap::insert
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2061,1
    - Dst: Vec::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2050
    functionDepth: 9
    functionLinenumber: 2050
    functionLinenumberEnd: 2064
    functionName: MemoryManager::memory_slot_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - vm_memory::GuestAddress
    - Vec::as_raw_fd
    - Option::unwrap
    - HashMap::insert
    - file_offset
    - unwrap
    - file
    - memory
    - GuestMemoryAtomic::find_region
    linkageType: ''
    returnType: HashMap
    signature: pub fn memory_slot_fds(&self) -> HashMap<u32, RawFd>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2068
    functionName: MemoryManager::acpi_address
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn acpi_address(&self) -> Option<GuestAddress>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2070
    functionDepth: 1
    functionLinenumber: 2070
    functionLinenumberEnd: 2072
    functionName: MemoryManager::num_guest_ram_mappings
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: u32
    signature: pub fn num_guest_ram_mappings(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2076,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2076,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2075
    functionDepth: 3
    functionLinenumber: 2075
    functionLinenumberEnd: 2077
    functionName: MemoryManager::uefi_flash
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - clone
    - unwrap
    linkageType: ''
    returnType: GuestMemoryAtomic
    signature: pub fn uefi_flash(&self) -> GuestMemoryAtomic<GuestMemoryMmap>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2081,1
    - Dst: sort_by_key
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2082,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2085,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2086,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - mem_offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 2098
      start: 2080
    functionDepth: 8
    functionLinenumber: 2080
    functionLinenumberEnd: 2098
    functionName: MemoryManager::coredump_memory_regions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - sort_by_key
    - BTreeMap::new
    - clone
    - Result::insert
    linkageType: ''
    returnType: CoredumpMemoryRegions
    signature: 'pub fn coredump_memory_regions(&self, mem_offset: u64) -> CoredumpMemoryRegions'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::memory_range_table
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2105,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2105,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2107,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2107,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2109,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2110,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2113,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2113,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2115,1
    - Dst: regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2118,1
    - Dst: GuestMemoryAtomic::write_volatile_to
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2121,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2123,1
    - Dst: as_fd
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2124,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2121,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2127,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2127,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 1
    argNames:
    - dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 2139
      start: 2101
    functionDepth: 15
    functionLinenumber: 2101
    functionLinenumberEnd: 2139
    functionName: MemoryManager::coredump_iterate_save_mem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - regions
    - is_empty
    - vm_memory::GuestAddress
    - map_err
    - std::result::Result::map_err
    - as_ref
    - MemoryManager::memory_range_table
    - GuestMemoryAtomic::write_volatile_to
    - unwrap
    - as_fd
    - usize::into
    - GuestDebuggableError::Coredump
    - memory
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn coredump_iterate_save_mem(&mut self,dump_state: &DumpState,)
      -> std::result::Result<(), GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::guest_memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2149,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2150,1
    - Dst: super::Result::regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2152,1
    - Dst: GuestMemoryMmap::read_volatile_from
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2160,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2162,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2160,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2167,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - ranges
    - fd
    argTypes:
    - '&MemoryRangeTable'
    - '&mut F'
    constantsTouched: []
    func_position:
      end: 2180
      start: 2141
    functionDepth: 4
    functionLinenumber: 2141
    functionLinenumberEnd: 2180
    functionName: MemoryManager::receive_memory_regions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - MemoryManager::guest_memory
    - vm_memory::GuestAddress
    - map_err
    - super::Result::regions
    - MigratableError::MigrateReceive
    - GuestMemoryAtomic::memory
    - GuestMemoryMmap::read_volatile_from
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn receive_memory_regions<F>(&mut self,ranges: &MemoryRangeTable,fd:
      &mut F,) -> std::result::Result<(), MigratableError>whereF: ReadVolatile,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Path::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2189,1
    - Dst: aml::If::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2190,1
    - Dst: aml::Equal::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2191,1
    - Dst: aml::Arg
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2191,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2195
      start: 2188
    functionDepth: 8
    functionLinenumber: 2188
    functionLinenumberEnd: 2195
    functionName: MemoryNotify::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Result::to_aml_bytes
    - aml::If::new
    - aml::Path::new
    - aml::Arg
    - aml::Equal::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2204,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2205,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2205,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2242
      start: 2203
    functionDepth: 7
    functionLinenumber: 2203
    functionLinenumberEnd: 2242
    functionName: MemorySlot::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - as_str
    - Self::to_aml_bytes
    - aml::Device::new
    - into
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2254
      start: 2250
    functionDepth: 8
    functionLinenumber: 2250
    functionLinenumberEnd: 2254
    functionName: MemorySlots::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - to_aml_bytes
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2264,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2266,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2269,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2270,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2271,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2274,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2274,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2274,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2277,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2278,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2277,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2323,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2324,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2323,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2347,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2348,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2425
      start: 2262
    functionDepth: 5
    functionLinenumber: 2262
    functionLinenumberEnd: 2425
    functionName: MemoryMethods::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - Result::to_aml_bytes
    - Vec::new
    - aml::Method::new
    - Result::iter
    - '&str::into'
    - Result::push
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2432,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2433,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2432,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2512,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2513,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2523
      start: 2429
    functionDepth: 7
    functionLinenumber: 2429
    functionLinenumberEnd: 2523
    functionName: MemoryManager::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Self::to_aml_bytes
    - aml::Device::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2543
    functionDepth: 2
    functionLinenumber: 2543
    functionLinenumberEnd: 2545
    functionName: MemoryManager::id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::memory_range_table
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2548,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2560,1
    - Dst: Snapshot::from_data
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2560,1
    - Dst: SnapshotData::new_from_state
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2560,1
    - Dst: MemoryManager::snapshot_data
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2547
    functionDepth: 15
    functionLinenumber: 2547
    functionLinenumberEnd: 2563
    functionName: MemoryManager::snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - MemoryManager::snapshot_data
    - MemoryManager::memory_range_table
    - SnapshotData::new_from_state
    - Ok
    - Snapshot::from_data
    linkageType: ''
    returnType: result::Result
    signature: fn snapshot(&mut self) -> result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2572,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2573,1
    - Dst: migration::url_to_path
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2576,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2577,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2577,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2580,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2580,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2580,1
    - Dst: IoResult::create_new
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2580,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2580,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2580,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2585,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2585,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2587,1
    - Dst: regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2589,1
    - Dst: GuestMemoryAtomic::write_volatile_to
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2597,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2599,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2597,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2603,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2603,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 68
    argCount: 2
    argNames:
    - _snapshot
    - destination_url
    argTypes:
    - '&Snapshot'
    - '&str'
    constantsTouched: []
    func_position:
      end: 2612
      start: 2567
    functionDepth: 8
    functionLinenumber: 2567
    functionLinenumberEnd: 2612
    functionName: MemoryManager::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - regions
    - is_empty
    - OpenOptions::new
    - vm_memory::GuestAddress
    - migration::url_to_path
    - map_err
    - open
    - push
    - GuestMemoryAtomic::write_volatile_to
    - IoResult::write
    - Result::read
    - usize::into
    - IoResult::create_new
    - String::from
    - MigratableError::MigrateSend
    - memory
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn send(&self,_snapshot: &Snapshot,destination_url: &str,) -> result::Result<(),
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2621,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2621,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2622,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2625,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2625,1
    - Dst: bitmap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2626,1
    - Dst: reset
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2626,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2620
    functionDepth: 9
    functionLinenumber: 2620
    functionLinenumberEnd: 2630
    functionName: MemoryManager::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - reset
    - map_err
    - bitmap
    - start_dirty_log
    - MigratableError::MigrateSend
    - memory
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2633,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2633,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2634,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2632
    functionDepth: 9
    functionLinenumber: 2632
    functionLinenumberEnd: 2638
    functionName: MemoryManager::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - MigratableError::MigrateSend
    - stop_dirty_log
    - map_err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryRangeTable::default
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2643,1
    - Dst: get_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2645,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2645,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2646,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2648,1
    - Dst: find_region
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2648,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2648,1
    - Dst: bitmap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2653,1
    - Dst: get_and_reset
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2653,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2656,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2656,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2663,1
    - Dst: zip
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2663,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2665,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2663,1
    - Dst: MemoryRangeTable::from_dirty_bitmap
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2668,1
    - Dst: Self::regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2670,1
    - Dst: Vec::is_empty
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2670,1
    - Dst: Self::regions
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2674,1
    - Dst: Result::extend
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2679,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/memory_manager.rs:2681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2642
    functionDepth: 6
    functionLinenumber: 2642
    functionLinenumberEnd: 2682
    functionName: MemoryManager::dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/memory_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - vm_memory::GuestAddress
    - map_err
    - zip
    - get_and_reset
    - get_dirty_log
    - Err
    - find_region
    - Self::regions
    - Ok
    - Vec::is_empty
    - bitmap
    - MemoryRangeTable::from_dirty_bitmap
    - MemoryRangeTable::default
    - MigratableError::MigrateSend
    - memory
    - Result::extend
    linkageType: ''
    returnType: std::result::Result
    signature: fn dirty_log(&mut self) -> std::result::Result<MemoryRangeTable, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:32,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - migratable
    argTypes:
    - String
    - Option<Arc<Mutex<dyn Migratable>>>
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: DeviceNode::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 2
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: String, migratable: Option<Arc<Mutex<dyn Migratable>>>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceNode::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:2,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:3,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:4,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: device_node
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 23
    functionsReached:
    - Some
    - Arc::clone
    - clone
    - DeviceNode::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceTree
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:60,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: DeviceTree::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 2
    functionsReached:
    - HashMap::new
    - DeviceTree
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_key
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: DeviceTree::contains_key
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - contains_key
    linkageType: ''
    returnType: bool
    signature: 'pub fn contains_key(&self, k: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: DeviceTree::get
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub fn get(&self, k: &str) -> Option<&DeviceNode>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: DeviceTree::get_mut
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - get_mut
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_mut(&mut self, k: &str) -> Option<&mut DeviceNode>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - k
    - v
    argTypes:
    - String
    - DeviceNode
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 9
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: DeviceTree::insert
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: Option
    signature: 'pub fn insert(&mut self, k: String, v: DeviceNode) -> Option<DeviceNode>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 9
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: DeviceTree::remove
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - remove
    linkageType: ''
    returnType: Option
    signature: 'pub fn remove(&mut self, k: &str) -> Option<DeviceNode>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: DeviceTree::iter
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - iter
    linkageType: ''
    returnType: std::collections::hash_map::Iter
    signature: pub fn iter(&self) -> std::collections::hash_map::Iter<'_, String,
      DeviceNode>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BftIter::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 9
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: DeviceTree::breadth_first_traversal
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - BftIter::new
    linkageType: ''
    returnType: BftIter
    signature: pub fn breadth_first_traversal(&self) -> BftIter<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: values
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:84,1
    - Dst: filter
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:84,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:86,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:86,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 6
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: DeviceTree::pci_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - is_some
    - filter
    - collect
    - values
    linkageType: ''
    returnType: Vec
    signature: pub fn pci_devices(&self) -> Vec<&DeviceNode>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:92,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:93,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:94,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:94,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - pci_bdf
    argTypes:
    - PciBdf
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 9
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: DeviceTree::remove_node_by_pci_bdf
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - iter
    - Some
    - remove
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn remove_node_by_pci_bdf(&mut self, pci_bdf: PciBdf) -> Option<DeviceNode>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:114,1
    - Dst: '&''a HashMap<String, DeviceNode>::len'
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:114,1
    - Dst: '&''a HashMap<String, DeviceNode>::iter'
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:117,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:118,1
    - Dst: FdtWriterResult::push
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:119,1
    - Dst: FdtWriterResult::len
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:123,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:124,1
    - Dst: '&''a HashMap<String, DeviceNode>::get'
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:125,1
    - Dst: FdtWriterResult::push
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - hash_map
    argTypes:
    - '&''a HashMap<String, DeviceNode>'
    constantsTouched: []
    func_position:
      end: 133
      start: 113
    functionDepth: 8
    functionLinenumber: 113
    functionLinenumberEnd: 133
    functionName: BftIter::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 1
    functionsReached:
    - iter
    - '&''a HashMap<String, DeviceNode>::iter'
    - is_none
    - FdtWriterResult::len
    - '&''a HashMap<String, DeviceNode>::get'
    - FdtWriterResult::push
    - Vec::with_capacity
    - '&''a HashMap<String, DeviceNode>::len'
    linkageType: ''
    returnType: Self
    signature: 'fn new(hash_map: &''a HashMap<String, DeviceNode>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:140,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:143,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 9
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: BftIter::next
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - Some
    - remove
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: BftIter::next_back
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - pop
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceTree::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:161,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:165,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:166,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:166,1
    - Dst: DeviceNode::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:166,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:166,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:168,1
    - Dst: FdtWriterResult::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:170,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:174,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:179,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:179,1
    - Dst: clone_from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:180,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:181,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:181,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:185,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:185,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:190,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:191,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:192,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:198,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:199,1
    - Dst: DeviceTree::new
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:219,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:220,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:221,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:222,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:223,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:224,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:225,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:226,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:227,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:228,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:229,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:230,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:231,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:232,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:232,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:233,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:233,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:234,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:234,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:236,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:236,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:238,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:238,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:248,1
    - Dst: breadth_first_traversal
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:250,1
    - Dst: "breadth_first_traversal()\n            .collect::<Vec<&DeviceNode>>"
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:250,1
    - Dst: breadth_first_traversal
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:261,1
    - Dst: BftIter::rev
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:261,1
    - Dst: "breadth_first_traversal()\n            .rev()\n            .collect::<Vec<&DeviceNode>>"
      Src: /src/cloud-hypervisor/vmm/src/device_tree.rs:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 159
    functionDepth: 8
    functionLinenumber: 159
    functionLinenumberEnd: 272
    functionName: unit_tests::test_device_tree
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_tree.rs
    functionUses: 0
    functionsReached:
    - extend
    - Result::unwrap
    - String::from
    - "breadth_first_traversal()\n            .collect::<Vec<&DeviceNode>>"
    - insert
    - u32::clone
    - BftIter::rev
    - get
    - Self::clone
    - iter
    - Some
    - clone_from
    - unwrap
    - DeviceTree::new
    - breadth_first_traversal
    - remove
    - Option::unwrap
    - "breadth_first_traversal()\n            .rev()\n            .collect::<Vec<&DeviceNode>>"
    - get_mut
    - device_node
    - FdtWriterResult::unwrap
    - DeviceNode::new
    linkageType: ''
    returnType: void
    signature: fn test_device_tree()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: default_cpuconfig_max_phys_bits
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn default_cpuconfig_max_phys_bits() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuFeatures::default
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: CpusConfig::default
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 1
    functionsReached:
    - CpuFeatures::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: default_platformconfig_num_pci_segments
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn default_platformconfig_num_pci_segments() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: default_platformconfig_iommu_address_width_bits
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn default_platformconfig_iommu_address_width_bits() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: default_pci_segment_aperture_weight
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn default_pci_segment_aperture_weight() -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:166,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: MemoryZoneConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: default_memoryconfig_thp
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn default_memoryconfig_thp() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: default_cpusconfig_nested
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn default_cpusconfig_nested() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: MemoryConfig::default
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:292,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: DiskConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: default_diskconfig_num_queues
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn default_diskconfig_num_queues() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: default_diskconfig_queue_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn default_diskconfig_queue_size() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: default_netconfig_true
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn default_netconfig_true() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: default_netconfig_tap
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn default_netconfig_tap() -> Option<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MacAddr::local_random
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: default_netconfig_mac
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - MacAddr::local_random
    linkageType: ''
    returnType: MacAddr
    signature: pub fn default_netconfig_mac() -> MacAddr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: default_netconfig_num_queues
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn default_netconfig_num_queues() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: default_netconfig_queue_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn default_netconfig_queue_size() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::deserialize
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:383,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:388,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:388,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - D
    constantsTouched: []
    func_position:
      end: 392
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 392
    functionName: deserialize_netconfig_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - Some
    - Option::deserialize
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn deserialize_netconfig_fds<''de, D>(d: D) -> Result<Option<Vec<i32>>,
      D::Error>whereD: serde::Deserializer<''de>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: RngConfig::default
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 1
    functionsReached:
    - PathBuf::from
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:415,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: RngConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: default_fsconfig_num_queues
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn default_fsconfig_num_queues() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: default_fsconfig_queue_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn default_fsconfig_queue_size() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:459,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: FsConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:482,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: PmemConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: default_consoleconfig_file
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn default_consoleconfig_file() -> Option<PathBuf>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:514,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:517,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 520
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 520
    functionName: ConsoleConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 541
    functionName: DebugConsoleConfig::default
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 5
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:547,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: DebugConsoleConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read_link
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:568,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:568,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:568,1
    - Dst: file_name
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:569,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:570,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:570,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:570,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:575,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:576,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:577,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 580
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 580
    functionName: DeviceConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - Self::push
    - map_err
    - PathBuf::from
    - as_path
    - file_name
    - to_str
    - fs::read_link
    - ok_or
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:594,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: UserDeviceConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 614
    functionName: default_vdpaconfig_num_queues
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn default_vdpaconfig_num_queues() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:618,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 620
      start: 617
    functionDepth: 4
    functionLinenumber: 617
    functionLinenumberEnd: 620
    functionName: VdpaConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parent
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:637,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:638,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:641,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 644
      start: 636
    functionDepth: 4
    functionLinenumber: 636
    functionLinenumberEnd: 644
    functionName: VsockConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - parent
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::new
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 664
    functionName: IvshmemConfig::default
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - PathBuf::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 750
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 750
    functionName: FwCfgConfig::default
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::trim
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:779,1
    - Dst: strip_prefix
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:779,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:779,1
    - Dst: FdtWriterResult::strip_suffix
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:782,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:779,1
    - Dst: FwCfgItemError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:783,1
    - Dst: FdtWriterResult::to_string
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:783,1
    - Dst: String::split
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:786,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:786,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:788,1
    - Dst: FwCfgItem::parse
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:789,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:789,1
    - Dst: FwCfgItemError::InvalidValue
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:790,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:790,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 796
      start: 778
    functionDepth: 12
    functionLinenumber: 778
    functionLinenumberEnd: 796
    functionName: FwCfgItemList::from_str
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::trim
    - ok_or_else
    - String::split
    - collect
    - strip_prefix
    - push
    - FwCfgItem::parse
    - and_then
    - FdtWriterResult::strip_suffix
    - Result::map_err
    - Result::to_string
    - FwCfgItemError::InvalidValue
    - Ok
    - FdtWriterResult::to_string
    linkageType: ''
    returnType: Result
    signature: 'fn from_str(s: &str) -> Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:807,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:808,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:808,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:809,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:811,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:815,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:817,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:821,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:825,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:827,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:828,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:831,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 832
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 832
    functionName: PayloadConfig::validate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - is_some
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: pub fn validate(&mut self) -> Result<(), PayloadConfigError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:839,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:843,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:847,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:852,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:855,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 856
      start: 836
    functionDepth: 4
    functionLinenumber: 836
    functionLinenumberEnd: 856
    functionName: PayloadConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 866
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 866
    functionName: default_serial
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ConsoleConfig
    signature: pub fn default_serial() -> ConsoleConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 875
    functionName: default_console
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ConsoleConfig
    signature: pub fn default_console() -> ConsoleConfig
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:884,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 886
      start: 883
    functionDepth: 4
    functionLinenumber: 883
    functionLinenumberEnd: 886
    functionName: TpmConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - add_rule_with_access
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:897,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:897,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:897,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - landlock
    argTypes:
    - '&mut Landlock'
    constantsTouched: []
    func_position:
      end: 899
      start: 896
    functionDepth: 5
    functionLinenumber: 896
    functionLinenumberEnd: 899
    functionName: LandlockConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - as_str
    - add_rule_with_access
    - clone
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: 'fn apply_landlock(&self, landlock: &mut Landlock) -> LandlockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Landlock::new
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:963,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:967,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:967,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:971,1
    - Dst: ApiResult::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:972,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:978,1
    - Dst: ApiResult::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:979,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:983,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:986,1
    - Dst: Result::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:987,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:992,1
    - Dst: Result::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:993,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:997,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:998,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1002,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1006,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1006,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1008,1
    - Dst: String::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1009,1
    - Dst: DeviceManagerResult::iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1014,1
    - Dst: DeviceManagerResult::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1015,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1020,1
    - Dst: Result::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1021,1
    - Dst: Result::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1026,1
    - Dst: Result::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1030,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1034,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1037,1
    - Dst: add_rule_with_access
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1038,1
    - Dst: Path::new
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1038,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1042,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1043,1
    - Dst: restrict_self
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1047,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1049,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 186
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 962
    functionDepth: 15
    functionLinenumber: 962
    functionLinenumberEnd: 1050
    functionName: VmConfig::apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - is_some
    - iter
    - DeviceManagerResult::iter
    - Path::new
    - String::apply_landlock
    - DeviceManagerResult::apply_landlock
    - apply_landlock
    - ApiResult::apply_landlock
    - restrict_self
    - Result::apply_landlock
    - add_rule_with_access
    - Landlock::new
    - Ok
    linkageType: ''
    returnType: LandlockResult
    signature: pub(crate) fn apply_landlock(&self) -> LandlockResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arch::x86_64::get_max_x2apic_id
      Src: /src/cloud-hypervisor/vmm/src/vm_config.rs:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1064
    functionName: VmConfig::max_apic_id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm_config.rs
    functionUses: 0
    functionsReached:
    - arch::x86_64::get_max_x2apic_id
    linkageType: ''
    returnType: u32
    signature: pub(crate) fn max_apic_id(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: EpollDispatch::from
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(v: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:134,1
    - Dst: libc::isatty
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:138,1
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:140,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:142,1
    - Dst: Error::DupFd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:142,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:142,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:145,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:148,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:148,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:150,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:150,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:154,1
    - Dst: Error::SetNonBlocking
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:154,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:154,1
    - Dst: ConsoleOutput::Tty
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:157,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:157,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:160,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:165,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:165,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:167,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:169,1
    - Dst: epoll::create
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:172,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:172,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:173,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:173,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:175,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:178,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:179,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:175,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:189,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:193,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:189,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:199,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:199,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:200,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:200,1
    - Dst: Vec::try_clone
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:201,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:201,1
    - Dst: SerialBuffer::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:202,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:202,1
    - Dst: Vec::as_ref
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:203,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:203,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:203,1
    - Dst: set_out
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:203,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:207,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:207,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:212,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:214,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:214,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 107
    argCount: 4
    argNames:
    - serial
    - serial
    - output
    - socket
    argTypes:
    - Arc<Mutex<Serial>>
    - Arc<Mutex<Pl011>>
    - ConsoleOutput
    - Option<PathBuf>
    constantsTouched: []
    func_position:
      end: 223
      start: 125
    functionDepth: 14
    functionLinenumber: 125
    functionLinenumberEnd: 223
    functionName: SerialManager::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/serial_manager.rs
    functionUses: 1
    functionsReached:
    - libc::dup
    - map_err
    - epoll::create
    - File::from_raw_fd
    - EventFd::new
    - Error::SetNonBlocking
    - AtomicBool::new
    - SerialBuffer::new
    - libc::fcntl
    - Result::as_raw_fd
    - Ok
    - Arc::new
    - epoll::Event::new
    - as_raw_fd
    - libc::isatty
    - Vec::try_clone
    - std::io::Error::last_os_error
    - Error::DupFd
    - epoll::ctl
    - std::io::Result::map_err
    - Err
    - lock
    - Box::new
    - unwrap
    - Result::clone
    - set_out
    - clone
    - Vec::as_ref
    - ConsoleOutput::Tty
    - Result::map_err
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(#[cfg(any(target_arch = "x86_64", target_arch = "riscv64"))]
      serial: Arc<Mutex<Serial>>,#[cfg(target_arch = "aarch64")] serial: Arc<Mutex<Pl011>>,mut
      output: ConsoleOutput,socket: Option<PathBuf>,) -> Result<Option<Self>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option<&Arc<AtomicBool>>::load
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:235,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:236,1
    - Dst: Option<&Arc<AtomicBool>>::store
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:239,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:241,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:241,1
    - Dst: flush_output
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:241,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:241,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - serial
    - serial
    - pty_write_out
    argTypes:
    - '&Arc<Mutex<Serial>>'
    - '&Arc<Mutex<Pl011>>'
    - Option<&Arc<AtomicBool>>
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 16
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: SerialManager::trigger_pty_flush
    functionSourceFile: /src/cloud-hypervisor/vmm/src/serial_manager.rs
    functionUses: 0
    functionsReached:
    - Option<&Arc<AtomicBool>>::load
    - map_err
    - flush_output
    - unwrap
    - Option<&Arc<AtomicBool>>::store
    - Vec::lock
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn trigger_pty_flush(#[cfg(any(target_arch = "x86_64", target_arch
      = "riscv64"))] serial: &Arc<Mutex<Serial>>,#[cfg(target_arch = "aarch64")] serial:
      &Arc<Mutex<Pl011>>,pty_write_out: Option<&Arc<AtomicBool>>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:253,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:255,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:258,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:259,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:260,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:261,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:270,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:272,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:272,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:273,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:272,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:275,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:275,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:277,1
    - Dst: epoll::Events::empty
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:277,1
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:280,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:283,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:293,1
    - Dst: Error::Epoll
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:293,1
    - Dst: Self::trigger_pty_flush
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:302,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:302,1
    - Dst: bool::iter
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:306,1
    - Dst: impl Iterator::take
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:306,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:307,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:317,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:317,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:329,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:329,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:331,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:331,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:333,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:336,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:337,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:333,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:344,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:345,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:345,1
    - Dst: set_out
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:345,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:345,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:345,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:352,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:353,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:353,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:358,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:358,1
    - Dst: Vec::as_ref
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:362,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:362,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:362,1
    - Dst: set_out
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:362,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:374,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:374,1
    - Dst: Vec::as_ref
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:386,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:386,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:386,1
    - Dst: queue_input_bytes
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:386,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:386,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:395,1
    - Dst: std::thread::sleep
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:400,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:400,1
    - Dst: Self::trigger_pty_flush
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:405,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:405,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:410,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:275,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:418,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:418,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:275,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:272,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:423,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:424,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 243
    argCount: 1
    argNames:
    - exit_evt
    argTypes:
    - EventFd
    constantsTouched: []
    func_position:
      end: 425
      start: 251
    functionDepth: 17
    functionLinenumber: 251
    functionLinenumberEnd: 425
    functionName: SerialManager::start_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/serial_manager.rs
    functionUses: 0
    functionsReached:
    - epoll::wait
    - Result::name
    - std::result::Result::accept
    - map_err
    - as_ref
    - io::Result::map_err
    - '&str::to_string'
    - queue_input_bytes
    - shutdown
    - Vec::lock
    - usize::kind
    - Ok
    - std::time::Duration::from_millis
    - try_clone
    - Self::trigger_pty_flush
    - into
    - store
    - Result::spawn
    - epoll::Event::new
    - std::panic::AssertUnwindSafe
    - as_raw_fd
    - Result::as_ref
    - bool::iter
    - is_some
    - Error::Epoll
    - std::thread::sleep
    - epoll::ctl
    - Err
    - lock
    - Box::new
    - unwrap
    - read
    - set_out
    - clone
    - Vec::as_ref
    - ok
    - std::panic::catch_unwind
    - EventFd::write
    - impl Iterator::take
    - thread::Builder::new
    - IoResult::ok
    - Some
    - epoll::Events::empty
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_thread(&mut self, exit_evt: EventFd) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:430,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:430,1
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:431,1
    - Dst: result::Result::join
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:432,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:432,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:435,1
    - Dst: std::fs::remove_file
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:437,1
    - Dst: as_os_str
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:437,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:437,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/serial_manager.rs:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 429
    functionDepth: 8
    functionLinenumber: 429
    functionLinenumberEnd: 441
    functionName: SerialManager::drop
    functionSourceFile: /src/cloud-hypervisor/vmm/src/serial_manager.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - ok
    - take
    - result::Result::join
    - as_os_str
    - std::fs::remove_file
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:35,1
    - Dst: f
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:35,1
    - Dst: Result::borrow
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:35,1
    - Dst: IovecBufferBorrowed::as_ref
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:35,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: with_tx
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 2
    functionsReached:
    - IovecBufferBorrowed::as_ref
    - Result::borrow
    - with
    - unwrap
    - f
    linkageType: ''
    returnType: R
    signature: 'fn with_tx<R, F: FnOnce(&File) -> R>(f: F) -> R'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_tx
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:41,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:41,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:42,1
    - Dst: std::process::exit
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:43,1
    - Dst: std::process::exit
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: notify
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 7
    functionsReached:
    - with_tx
    - std::process::exit
    - Result::write_all
    - usize::kind
    linkageType: ''
    returnType: void
    signature: fn notify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notify
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _signo
    - _info
    - _unused
    argTypes:
    - c_int
    - '*mut siginfo_t'
    - '*mut c_void'
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: sigwinch_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 0
    functionsReached:
    - notify
    linkageType: ''
    returnType: void
    signature: 'extern "C" fn sigwinch_handler(_signo: c_int, _info: *mut siginfo_t,
      _unused: *mut c_void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MaybeUninit::uninit
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:54,1
    - Dst: libc::sigemptyset
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:56,1
    - Dst: Result::as_mut_ptr
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:56,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:57,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:57,1
    - Dst: Result::assume_init
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:60,1
    - Dst: libc::sigprocmask
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:63,1
    - Dst: std::ptr::null_mut
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:63,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:64,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:64,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: unblock_all_signals
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - MaybeUninit::uninit
    - libc::sigemptyset
    - libc::sigprocmask
    - std::ptr::null_mut
    - Result::assume_init
    - Err
    - Result::as_mut_ptr
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: fn unblock_all_signals() -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read_dir
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:80,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:80,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:80,1
    - Dst: filter_map
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:80,1
    - Dst: FdtWriterResult::file_name
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:83,1
    - Dst: '[u8; FILE_NAME_SIZE]::into_string'
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:83,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:83,1
    - Dst: parse
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:83,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:83,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:80,1
    - Dst: difference
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:86,1
    - Dst: libc::close
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - keep_fds
    argTypes:
    - '&BTreeSet<RawFd>'
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 11
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: close_fds_fallback
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - '[u8; FILE_NAME_SIZE]::into_string'
    - map
    - filter_map
    - FdtWriterResult::file_name
    - libc::close
    - std::fs::read_dir
    - parse
    - ok
    - unwrap
    - difference
    - collect
    linkageType: ''
    returnType: void
    signature: 'unsafe fn close_fds_fallback(keep_fds: &BTreeSet<RawFd>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [RawFd]::sort'
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:99,1
    - Dst: '&mut [RawFd]::iter'
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:102,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:102,1
    - Dst: std::iter::once
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:103,1
    - Dst: chain
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:103,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:103,1
    - Dst: '&mut [RawFd]::get'
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:106,1
    - Dst: vm::Result::map_or
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:107,1
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:114,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:117,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:118,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:118,1
    - Dst: close_fds_fallback
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:120,1
    - Dst: '&mut [RawFd]::iter'
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:120,1
    - Dst: impl Iterator::copied
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:120,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 1
    argNames:
    - keep_fds
    argTypes:
    - '&mut [RawFd]'
    constantsTouched: []
    func_position:
      end: 126
      start: 98
    functionDepth: 12
    functionLinenumber: 98
    functionLinenumberEnd: 126
    functionName: close_unused_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - '&mut [RawFd]::sort'
    - chain
    - impl Iterator::map
    - '&mut [RawFd]::iter'
    - '&mut [RawFd]::get'
    - Some
    - impl Iterator::copied
    - std::iter::once
    - libc::syscall
    - usize::raw_os_error
    - vm::Result::map_or
    - enumerate
    - close_fds_fallback
    - io::Error::last_os_error
    - collect
    linkageType: ''
    returnType: void
    signature: 'unsafe fn close_unused_fds(keep_fds: &mut [RawFd])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::getpgrp
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:130,1
    - Dst: libc::tcgetpgrp
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:132,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:132,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:135,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:136,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:136,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:137,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:141,1
    - Dst: libc::setsid
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:145,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:147,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:147,1
    - Dst: libc::ioctl
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:152,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:152,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:153,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:153,1
    - Dst: tcsetpgrp
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:158,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:158,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:159,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:159,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:162,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 58
    argCount: 1
    argNames:
    - tty
    argTypes:
    - '&File'
    constantsTouched: []
    func_position:
      end: 163
      start: 128
    functionDepth: 10
    functionLinenumber: 128
    functionLinenumberEnd: 163
    functionName: set_foreground_process_group
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - libc::getpgrp
    - Some
    - libc::setsid
    - tcsetpgrp
    - libc::ioctl
    - Err
    - usize::raw_os_error
    - as_raw_fd
    - libc::tcgetpgrp
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn set_foreground_process_group(tty: &File) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close_unused_fds
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:169,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:169,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:169,1
    - Dst: with
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:172,1
    - Dst: replace
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:172,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:172,1
    - Dst: unblock_all_signals
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:174,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:174,1
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:176,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:177,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:177,1
    - Dst: vmm_sys_util::signal::register_signal_handler
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:180,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:180,1
    - Dst: set_foreground_process_group
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:182,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:182,1
    - Dst: drop
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:183,1
    - Dst: notify
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:185,1
    - Dst: with_tx
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:188,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:190,1
    - Dst: poll
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:196,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:197,1
    - Dst: std::process::exit
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 60
    argCount: 3
    argNames:
    - seccomp_filter
    - tx
    - tty
    argTypes:
    - BpfProgramRef
    - File
    - File
    constantsTouched: []
    func_position:
      end: 208
      start: 165
    functionDepth: 13
    functionLinenumber: 165
    functionLinenumberEnd: 208
    functionName: sigwinch_listener_main
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - drop
    - io::Error::last_os_error
    - Result::as_raw_fd
    - Result::is_empty
    - set_foreground_process_group
    - replace
    - unblock_all_signals
    - as_raw_fd
    - seccompiler::apply_filter
    - with_tx
    - Some
    - close_unused_fds
    - notify
    - unwrap
    - poll
    - with
    - std::process::exit
    - io::Result::unwrap
    - vmm_sys_util::signal::register_signal_handler
    linkageType: ''
    returnType: '!'
    signature: 'fn sigwinch_listener_main(seccomp_filter: BpfProgramRef, tx: File,
      tty: File) -> !'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:216,1
    - Dst: clone3::clone3
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:220,1
    - Dst: size_of::<clone_args>
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:220,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:222,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:222,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:222,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:224,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:225,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:225,1
    - Dst: usize::raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:225,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:225,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:226,1
    - Dst: libc::fork
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:232,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:234,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:234,1
    - Dst: libc::signal
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:239,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:242,1
    - Dst: u64::try_into
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:242,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 213
    functionDepth: 13
    functionLinenumber: 213
    functionLinenumberEnd: 243
    functionName: clone_clear_sighand
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - clone3::clone3
    - libc::fork
    - Default::default
    - Some
    - std::result::Result::unwrap
    - Err
    - libc::signal
    - size_of::<clone_args>
    - u64::try_into
    - usize::raw_os_error
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: unsafe fn clone_clear_sighand() -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::pipe2
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:248,1
    - Dst: Result::as_mut_ptr
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:248,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:249,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:249,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:253,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:255,1
    - Dst: clone_clear_sighand
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:258,1
    - Dst: sigwinch_listener_main
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:259,1
    - Dst: drop
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:262,1
    - Dst: (MacAddr, Box::read_exact
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:265,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - seccomp_filter
    - tty_sub
    argTypes:
    - BpfProgramRef
    - File
    constantsTouched: []
    func_position:
      end: 268
      start: 245
    functionDepth: 14
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: start_sigwinch_listener
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - drop
    - (MacAddr, Box::read_exact
    - File::from_raw_fd
    - sigwinch_listener_main
    - Err
    - libc::pipe2
    - Result::as_mut_ptr
    - io::Error::last_os_error
    - clone_clear_sighand
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn start_sigwinch_listener(seccomp_filter: BpfProgramRef, tty_sub:
      File) -> io::Result<File>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:276,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:276,1
    - Dst: start_sigwinch_listener
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:278,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pty_sub
    - seccomp_action
    - hypervisor_type
    argTypes:
    - File
    - '&SeccompAction'
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 15
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: listen_for_sigwinch_on_tty
    functionSourceFile: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
    functionUses: 1
    functionsReached:
    - Result::unwrap
    - seccomp_filters::get_seccomp_filter
    - start_sigwinch_listener
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn listen_for_sigwinch_on_tty(pty_sub: File,seccomp_action: &SeccompAction,hypervisor_type:
      HypervisorType,) -> std::io::Result<File>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: extract_bits_64
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: extract_bits_64_without_offset
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: round_up
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:433,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:433,1
    - Dst: Error::VcpuCreate
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:435,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:435,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - id
    - apic_id
    - vm
    - vm_ops
    - cpu_vendor
    argTypes:
    - u32
    - u32
    - '&dyn hypervisor::Vm'
    - Option<Arc<dyn VmOps>>
    - CpuVendor
    constantsTouched: []
    func_position:
      end: 446
      start: 426
    functionDepth: 8
    functionLinenumber: 426
    functionLinenumberEnd: 446
    functionName: Vcpu::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - Error::VcpuCreate
    - create_vcpu
    - usize::into
    - vm::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: u32,apic_id: u32,vm: &dyn hypervisor::Vm,vm_ops: Option<Arc<dyn
      VmOps>>,#[cfg(target_arch = "x86_64")] cpu_vendor: CpuVendor,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vcpu::init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:466,1
    - Dst: arch::configure_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:467,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:467,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:467,1
    - Dst: arch::configure_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:471,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:471,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:471,1
    - Dst: arch::configure_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:475,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:476,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:475,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 6
    argNames:
    - vm
    - boot_setup
    - cpuid
    - kvm_hyperv
    - topology
    - nested
    argTypes:
    - '&dyn hypervisor::Vm'
    - Option<(EntryPoint, &GuestMemoryAtomic<GuestMemoryMmap>)>
    - Vec<CpuIdEntry>
    - bool
    - (u16, u16, u16, u16)
    - bool
    constantsTouched: []
    func_position:
      end: 488
      start: 455
    functionDepth: 9
    functionLinenumber: 455
    functionLinenumberEnd: 488
    functionName: Vcpu::configure
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - super::Result::map_err
    - Vcpu::init
    - arch::configure_vcpu
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn configure(&mut self,#[cfg(target_arch = "aarch64")] vm: &dyn
      hypervisor::Vm,boot_setup: Option<(EntryPoint, &GuestMemoryAtomic<GuestMemoryMmap>)>,#[cfg(target_arch
      = "x86_64")] cpuid: Vec<CpuIdEntry>,#[cfg(target_arch = "x86_64")] kvm_hyperv:
      bool,#[cfg(target_arch = "x86_64")] topology: (u16, u16, u16, u16),#[cfg(target_arch
      = "x86_64")] nested: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: Vcpu::get_mpidr
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn get_mpidr(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: Vcpu::get_saved_state
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Option
    signature: pub fn get_saved_state(&self) -> Option<CpuState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:509,1
    - Dst: get_preferred_target
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:512,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:512,1
    - Dst: vcpu_set_processor_features
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:515,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:515,1
    - Dst: vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:519,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:519,1
    - Dst: vcpu_get_finalized_features
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:522,1
    - Dst: vcpu_finalize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:523,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:523,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 1
    argNames:
    - vm
    argTypes:
    - '&dyn hypervisor::Vm'
    constantsTouched: []
    func_position:
      end: 528
      start: 504
    functionDepth: 8
    functionLinenumber: 504
    functionLinenumberEnd: 528
    functionName: Vcpu::init
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - vcpu_finalize
    - vcpu_init
    - map_err
    - get_preferred_target
    - create_vcpu_init
    - vcpu_set_processor_features
    - vcpu_get_finalized_features
    - vm::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn init(&self, vm: &dyn hypervisor::Vm) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 10
    functionLinenumber: 534
    functionLinenumberEnd: 536
    functionName: Vcpu::run
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - run
    linkageType: ''
    returnType: std::result::Result
    signature: pub fn run(&mut self) -> std::result::Result<VmExit, HypervisorCpuError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 567
    functionName: Vcpu::id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:570,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:570,1
    - Dst: MigratableError::Snapshot
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:573,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:575,1
    - Dst: u8::clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:575,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:577,1
    - Dst: Snapshot::from_data
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:577,1
    - Dst: SnapshotData::new_from_state
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 7
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: Vcpu::snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - map_err
    - u8::clone
    - SnapshotData::new_from_state
    - MigratableError::Snapshot
    - state
    - Some
    - Snapshot::from_data
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::fill
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:625,1
    - Dst: core::mem::size_of::<u32>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:630,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:630,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:631,1
    - Dst: CpuManager::max_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:634,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:635,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:635,1
    - Dst: String::active
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:636,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 653
      start: 623
    functionDepth: 7
    functionLinenumber: 623
    functionLinenumberEnd: 653
    functionName: CpuManager::read
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - core::mem::size_of::<u32>
    - to_le_bytes
    - usize::try_from
    - String::active
    - copy_from_slice
    - Result::unwrap
    - CpuManager::max_vcpus
    - String::fill
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:660,1
    - Dst: core::mem::size_of::<u32>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:660,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:660,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:660,1
    - Dst: CpuManager::max_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:663,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:664,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:664,1
    - Dst: CpuManager::remove_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 69
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 692
      start: 655
    functionDepth: 17
    functionLinenumber: 655
    functionLinenumberEnd: 692
    functionName: CpuManager::write
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - core::mem::size_of::<u32>
    - try_into
    - CpuManager::remove_vcpu
    - usize::try_from
    - u32::from_le_bytes
    - unwrap
    - Result::unwrap
    - CpuManager::max_vcpus
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 710
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 710
    functionName: VcpuState::active
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - is_some
    linkageType: ''
    returnType: bool
    signature: fn active(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:717,1
    - Dst: libc::pthread_kill
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:720,1
    - Dst: result::Result::as_pthread_t
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:720,1
    - Dst: vmm_sys_util::signal::SIGRTMIN
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 723
    functionName: VcpuState::signal_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - libc::pthread_kill
    - vmm_sys_util::signal::SIGRTMIN
    - result::Result::as_pthread_t
    linkageType: ''
    returnType: void
    signature: fn signal_thread(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:730,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:733,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:734,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:738,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:738,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:741,1
    - Dst: VcpuState::signal_thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:744,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 749
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 749
    functionName: VcpuState::wait_until_signal_acknowledged
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - VcpuState::signal_thread
    - load
    - as_ref
    - thread::sleep
    - std::time::Duration::from_millis
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn wait_until_signal_acknowledged(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:752,1
    - Dst: result::Result::join
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:753,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:753,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 757
    functionName: VcpuState::join_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - map_err
    - result::Result::join
    linkageType: ''
    returnType: Result
    signature: fn join_thread(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:760,1
    - Dst: result::Result::thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:761,1
    - Dst: Vec::unpark
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 763
    functionName: VcpuState::unpark_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Vec::unpark
    - result::Result::thread
    linkageType: ''
    returnType: void
    signature: fn unpark_thread(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::get_max_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:782,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:783,1
    - Dst: Error::MaximumVcpusExceeded
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:783,1
    - Dst: Result::get_max_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:785,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:789,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:789,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:790,1
    - Dst: resize_with
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:791,1
    - Dst: Result::hypervisor_type
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:792,1
    - Dst: Result::get_cpu_vendor
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:794,1
    - Dst: Result::enable_amx_state_components
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:798,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:798,1
    - Dst: Error::AmxEnable
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:800,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:800,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:804,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:805,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:806,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:807,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:803,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:803,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:815,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:816,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:816,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:818,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:816,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:821,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:829,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:829,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:829,1
    - Dst: Vec::clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:830,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:833,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:835,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:835,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:836,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:836,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:837,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:837,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 91
    argCount: 11
    argNames:
    - config
    - vm
    - exit_evt
    - reset_evt
    - vm_debug_evt
    - hypervisor
    - seccomp_action
    - vm_ops
    - tdx_enabled
    - numa_nodes
    - sev_snp_enabled
    argTypes:
    - '&CpusConfig'
    - Arc<dyn hypervisor::Vm>
    - EventFd
    - EventFd
    - EventFd
    - Arc<dyn hypervisor::Hypervisor>
    - SeccompAction
    - Arc<dyn VmOps>
    - bool
    - '&NumaNodes'
    - bool
    constantsTouched: []
    func_position:
      end: 855
      start: 769
    functionDepth: 7
    functionLinenumber: 769
    functionLinenumberEnd: 855
    functionName: CpuManager::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - AtomicBool::new
    - Result::get_cpu_vendor
    - Vec::clone
    - Result::hypervisor_type
    - Result::unwrap
    - Ok
    - Vec::new
    - Arc::new
    - Result::get_max_vcpus
    - Error::MaximumVcpusExceeded
    - usize::into
    - Result::push
    - iter
    - impl Iterator::map
    - Err
    - Mutex::new
    - Self::collect
    - clone
    - resize_with
    - usize::try_from
    - Result::map_err
    - Result::enable_amx_state_components
    - Error::AmxEnable
    - into_iter
    - BTreeMap::new
    - Vec::with_capacity
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(config: &CpusConfig,vm: Arc<dyn hypervisor::Vm>,exit_evt:
      EventFd,reset_evt: EventFd,#[cfg(feature = "guest_debug")] vm_debug_evt: EventFd,hypervisor:
      Arc<dyn hypervisor::Hypervisor>,seccomp_action: SeccompAction,vm_ops: Arc<dyn
      VmOps>,#[cfg(feature = "tdx")] tdx_enabled: bool,numa_nodes: &NumaNodes,#[cfg(feature
      = "sev_snp")] sev_snp_enabled: bool,) -> Result<Arc<Mutex<CpuManager>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::physical_bits
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:864,1
    - Dst: arch::generate_common_cpuid
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:865,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:865,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - hypervisor
    - tdx
    argTypes:
    - '&dyn hypervisor::Hypervisor'
    - bool
    constantsTouched: []
    func_position:
      end: 879
      start: 858
    functionDepth: 16
    functionLinenumber: 858
    functionLinenumberEnd: 879
    functionName: CpuManager::populate_cpuid
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - arch::generate_common_cpuid
    - vm::physical_bits
    - super::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn populate_cpuid(&mut self,hypervisor: &dyn hypervisor::Hypervisor,#[cfg(feature
      = "tdx")] tdx: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::get_vcpu_topology
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:889,1
    - Dst: arch::x86_64::get_x2apic_id
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:891,1
    - Dst: Vcpu::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:895,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:898,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:899,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:899,1
    - Dst: get_cpu_vendor
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:901,1
    - Dst: super::Result::init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:907,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:907,1
    - Dst: ApiResult::to_state
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:909,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:909,1
    - Dst: Error::VcpuCreate
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:910,1
    - Dst: set_state
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:912,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:912,1
    - Dst: Error::VcpuCreate
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:914,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:916,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:919,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:919,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:922,1
    - Dst: super::Result::clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:922,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 2
    argNames:
    - cpu_id
    - snapshot
    argTypes:
    - u32
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 925
      start: 881
    functionDepth: 9
    functionLinenumber: 881
    functionLinenumberEnd: 925
    functionName: CpuManager::create_vcpu
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - set_state
    - map_err
    - ApiResult::to_state
    - as_ref
    - Error::VcpuCreate
    - Arc::new
    - push
    - clone
    - Mutex::new
    - CpuManager::get_vcpu_topology
    - arch::x86_64::get_x2apic_id
    - get_cpu_vendor
    - Result::map_err
    - Vcpu::new
    - Some
    - super::Result::clone
    - super::Result::init
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_vcpu(&mut self,cpu_id: u32,snapshot: Option<&Snapshot>,)
      -> Result<Arc<Mutex<Vcpu>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::Result::set_sev_control_register
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:935,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:942,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:949,1
    - Dst: map_or_else
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:949,1
    - Dst: u16::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:953,1
    - Dst: CpuManager::boot_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:953,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:953,1
    - Dst: super::Result::configure
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:968,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:970,1
    - Dst: super::Result::configure
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:977,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:977,1
    - Dst: super::Result::configure
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:980,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:982,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 2
    argNames:
    - vcpu
    - boot_setup
    argTypes:
    - '&mut Vcpu'
    - Option<(EntryPoint, &GuestMemoryAtomic<GuestMemoryMmap>)>
    constantsTouched: []
    func_position:
      end: 983
      start: 927
    functionDepth: 7
    functionLinenumber: 927
    functionLinenumberEnd: 983
    functionName: CpuManager::configure_vcpu
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - map_or_else
    - super::Result::set_sev_control_register
    - u16::try_from
    - super::Result::configure
    - as_ref
    - CpuManager::boot_vcpus
    - Result::unwrap
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn configure_vcpu(&self,vcpu: &mut Vcpu,boot_setup: Option<(EntryPoint,
      &GuestMemoryAtomic<GuestMemoryMmap>)>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1001,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1005,1
    - Dst: String::push
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1006,1
    - Dst: CpuManager::create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1006,1
    - Dst: snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1010,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1010,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1010,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - desired_vcpus
    - snapshot
    argTypes:
    - u32
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 1015
      start: 986
    functionDepth: 10
    functionLinenumber: 986
    functionLinenumberEnd: 1015
    functionName: CpuManager::create_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 2
    functionsReached:
    - as_str
    - CpuManager::create_vcpu
    - Err
    - len
    - to_string
    - String::push
    - snapshot_from_id
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_vcpus(&mut self,desired_vcpus: u32,snapshot: Option<&Snapshot>,)
      -> Result<Vec<Arc<Mutex<Vcpu>>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1019,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1020,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1020,1
    - Dst: has_pmu_support
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1022,1
    - Dst: init_pmu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1023,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1023,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1029,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - irq
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1034
      start: 1018
    functionDepth: 9
    functionLinenumber: 1018
    functionLinenumberEnd: 1034
    functionName: CpuManager::init_pmu
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - iter
    - super::Result::lock
    - map_err
    - has_pmu_support
    - unwrap
    - init_pmu
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn init_pmu(&self, irq: u32) -> Result<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1036
    functionDepth: 3
    functionLinenumber: 1036
    functionLinenumberEnd: 1038
    functionName: CpuManager::vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Vec
    signature: pub fn vcpus(&self) -> Vec<Arc<Mutex<Vcpu>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1047,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1047,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1048,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1048,1
    - Dst: hypervisor_type
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1050,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1052,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1052,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1053,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1053,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1054,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1055,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1056,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1058,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1058,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1058,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1061,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1061,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1061,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1064,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1065,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1065,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1065,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1070,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1070,1
    - Dst: std::mem::zeroed
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1072,1
    - Dst: libc::CPU_ZERO
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1074,1
    - Dst: libc::CPU_SET
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1077,1
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1083,1
    - Dst: hypervisor_type
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1086,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1083,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1091,1
    - Dst: cloned
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1091,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1095,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1096,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1096,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1096,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1100,1
    - Dst: libc::sched_setaffinity
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1103,1
    - Dst: std::mem::size_of::<libc::cpu_set_t>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1105,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1121,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1122,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1122,1
    - Dst: vmm_sys_util::signal::register_signal_handler
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1130,1
    - Dst: vmm_sys_util::signal::SIGRTMIN
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1130,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1130,1
    - Dst: Arc<Barrier>::wait
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1133,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1135,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1149,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1167,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1167,1
    - Dst: set_immediate_exit
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1167,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1172,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1172,1
    - Dst: set_immediate_exit
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1172,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1175,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1177,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1178,1
    - Dst: thread::park
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1179,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1181,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1182,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1185,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1186,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1188,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1188,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1188,1
    - Dst: nmi
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1188,1
    - Dst: '&Arc::load'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1198,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1199,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1201,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1205,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1205,1
    - Dst: super::Result::run
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1207,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1214,1
    - Dst: gdb::get_raw_tid
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1215,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1216,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1216,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1224,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1224,1
    - Dst: end_of_interrupt
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1224,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1234,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1235,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1235,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1240,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1241,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1241,1
    - Dst: get_tdx_exit_details
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1246,1
    - Dst: set_tdx_status
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1255,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1261,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1262,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1262,1
    - Dst: '&Arc::load'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1268,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1269,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1271,1
    - Dst: or_else
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1135,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1277,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1279,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1135,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1096,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1288,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1288,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1289,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1289,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1291,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 334
    argCount: 4
    argNames:
    - vcpu
    - vcpu_id
    - vcpu_thread_barrier
    - inserting
    argTypes:
    - Arc<Mutex<Vcpu>>
    - u32
    - Arc<Barrier>
    - bool
    constantsTouched: []
    func_position:
      end: 1292
      start: 1040
    functionDepth: 16
    functionLinenumber: 1040
    functionLinenumberEnd: 1292
    functionName: CpuManager::start_vcpu
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - super::Result::lock
    - expect
    - Result::name
    - map_err
    - nmi
    - as_ref
    - io::Result::map_err
    - libc::CPU_SET
    - Result::unwrap
    - or_else
    - Ok
    - set_tdx_status
    - thread::park
    - end_of_interrupt
    - try_clone
    - super::Result::run
    - store
    - Result::spawn
    - get
    - vmm_sys_util::signal::register_signal_handler
    - is_empty
    - seccompiler::apply_filter
    - load
    - libc::sched_setaffinity
    - lock
    - seccomp_filters::get_seccomp_filter
    - unwrap
    - std::mem::zeroed
    - get_tdx_exit_details
    - set_immediate_exit
    - cloned
    - clone
    - Arc<Barrier>::wait
    - hypervisor_type
    - map
    - std::mem::size_of::<libc::cpu_set_t>
    - ok
    - usize::try_from
    - libc::CPU_ZERO
    - Result::map_err
    - std::panic::catch_unwind
    - '&Arc::load'
    - gdb::get_raw_tid
    - thread::Builder::new
    - vmm_sys_util::signal::SIGRTMIN
    - Some
    - write
    linkageType: ''
    returnType: Result
    signature: 'fn start_vcpu(&mut self,vcpu: Arc<Mutex<Vcpu>>,vcpu_id: u32,vcpu_thread_barrier:
      Arc<Barrier>,inserting: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1302,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1305,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1305,1
    - Dst: CpuManager::present_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1306,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1310,1
    - Dst: CpuManager::present_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1322,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1323,1
    - Dst: CpuManager::start_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1324,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1324,1
    - Dst: Result::wait
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1328,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 3
    argNames:
    - desired_vcpus
    - inserting
    - paused
    argTypes:
    - u32
    - bool
    - Option<bool>
    constantsTouched: []
    func_position:
      end: 1330
      start: 1295
    functionDepth: 16
    functionLinenumber: 1295
    functionLinenumberEnd: 1330
    functionName: CpuManager::activate_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 3
    functionsReached:
    - Arc::new
    - Result::wait
    - CpuManager::start_vcpu
    - Err
    - store
    - Barrier::new
    - Result::clone
    - CpuManager::present_vcpus
    - Arc::clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn activate_vcpus(&mut self,desired_vcpus: u32,inserting: bool,paused:
      Option<bool>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::present_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1334,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1335,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1335,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1336,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1336,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - desired_vcpus
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1340
      start: 1332
    functionDepth: 16
    functionLinenumber: 1332
    functionLinenumberEnd: 1340
    functionName: CpuManager::mark_vcpus_for_removal
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - usize::try_from
    - CpuManager::present_vcpus
    - Result::unwrap
    - store
    linkageType: ''
    returnType: void
    signature: 'fn mark_vcpus_for_removal(&mut self, desired_vcpus: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1343,1
    - Dst: String::active
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1344,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1342
    functionDepth: 3
    functionLinenumber: 1342
    functionLinenumberEnd: 1349
    functionName: CpuManager::check_pending_removed_vcpu
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - iter
    - String::active
    - load
    linkageType: ''
    returnType: bool
    signature: pub fn check_pending_removed_vcpu(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1353,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1353,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1354,1
    - Dst: String::signal_thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1355,1
    - Dst: String::wait_until_signal_acknowledged
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1356,1
    - Dst: String::join_thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1357,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1361,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1362,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1365
      start: 1351
    functionDepth: 16
    functionLinenumber: 1351
    functionLinenumberEnd: 1365
    functionName: CpuManager::remove_vcpu
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - usize::try_from
    - store
    - String::signal_thread
    - String::join_thread
    - String::wait_until_signal_acknowledged
    - Result::unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn remove_vcpu(&mut self, cpu_id: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1371,1
    - Dst: CpuManager::create_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1373,1
    - Dst: CpuManager::boot_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 1374
      start: 1367
    functionDepth: 11
    functionLinenumber: 1367
    functionLinenumberEnd: 1374
    functionName: CpuManager::create_boot_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - CpuManager::boot_vcpus
    - CpuManager::create_vcpus
    - tracer::trace_scoped
    linkageType: ''
    returnType: Result
    signature: 'pub fn create_boot_vcpus(&mut self,snapshot: Option<&Snapshot>,) ->
      Result<Vec<Arc<Mutex<Vcpu>>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::activate_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1378,1
    - Dst: CpuManager::boot_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1378,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - paused
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1379
      start: 1377
    functionDepth: 17
    functionLinenumber: 1377
    functionLinenumberEnd: 1379
    functionName: CpuManager::start_boot_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - CpuManager::boot_vcpus
    - CpuManager::activate_vcpus
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_boot_vcpus(&mut self, paused: bool) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_any
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1383,1
    - Dst: vm.as_any().downcast_ref::<hypervisor::mshv::MshvVm>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1383,1
    - Dst: set_partition_property
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1390,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1390,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1382
    functionDepth: 2
    functionLinenumber: 1382
    functionLinenumberEnd: 1398
    functionName: CpuManager::set_processors_per_socket_property
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - map_err
    - set_partition_property
    - vm.as_any().downcast_ref::<hypervisor::mshv::MshvVm>
    - as_any
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn set_processors_per_socket_property(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::activate_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1401,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1401,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1401,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1401,1
    - Dst: Error::StartRestoreVcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1403,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1400
    functionDepth: 17
    functionLinenumber: 1400
    functionLinenumberEnd: 1407
    functionName: CpuManager::start_restored_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - CpuManager::activate_vcpus
    - Error::StartRestoreVcpu
    - len
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn start_restored_vcpus(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::cmp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1410,1
    - Dst: CpuManager::present_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1410,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1411,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1415,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1419,1
    - Dst: CpuManager::check_pending_removed_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1422,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1423,1
    - Dst: u32::cmp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1426,1
    - Dst: CpuManager::present_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1426,1
    - Dst: CpuManager::create_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1428,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1430,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1430,1
    - Dst: CpuManager::configure_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1431,1
    - Dst: CpuManager::activate_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1433,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1434,1
    - Dst: CpuManager::mark_vcpus_for_removal
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1437,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1438,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1440,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 62
    argCount: 1
    argNames:
    - desired_vcpus
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1442
      start: 1409
    functionDepth: 15
    functionLinenumber: 1409
    functionLinenumberEnd: 1442
    functionName: CpuManager::resize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::lock
    - CpuManager::create_vcpus
    - CpuManager::check_pending_removed_vcpu
    - CpuManager::configure_vcpu
    - Err
    - u32::cmp
    - CpuManager::mark_vcpus_for_removal
    - CpuManager::activate_vcpus
    - unwrap
    - CpuManager::present_vcpus
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize(&mut self, desired_vcpus: u32) -> Result<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1451,1
    - Dst: String::signal_thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1452,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1454,1
    - Dst: String::wait_until_signal_acknowledged
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1455,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1448
    functionDepth: 3
    functionLinenumber: 1448
    functionLinenumberEnd: 1459
    functionName: CpuManager::signal_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 3
    functionsReached:
    - String::wait_until_signal_acknowledged
    - iter
    - String::signal_thread
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn signal_vcpus(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1463,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1466,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1469,1
    - Dst: String::unpark_thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1470,1
    - Dst: CpuManager::signal_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1473,1
    - Dst: drain
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1476,1
    - Dst: String::join_thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1477,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1461
    functionDepth: 16
    functionLinenumber: 1461
    functionLinenumberEnd: 1481
    functionName: CpuManager::shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - iter
    - CpuManager::signal_vcpus
    - drain
    - String::unpark_thread
    - store
    - String::join_thread
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn shutdown(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1486,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1486,1
    - Dst: tdx_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1486,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1486,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - hob_address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1493
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1493
    functionName: CpuManager::initialize_tdx
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::lock
    - map_err
    - unwrap
    - tdx_init
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn initialize_tdx(&self, hob_address: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1497
    functionName: CpuManager::boot_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn boot_vcpus(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1501
    functionName: CpuManager::max_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn max_vcpus(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1507
    functionName: CpuManager::common_cpuid
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Vec
    signature: pub fn common_cpuid(&self) -> Vec<CpuIdEntry>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1510,1
    - Dst: fold
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1510,1
    - Dst: String::active
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1513
    functionName: CpuManager::present_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 4
    functionsReached:
    - iter
    - String::active
    - fold
    linkageType: ''
    returnType: u32
    signature: fn present_vcpus(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1517,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1517,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1519,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1519,1
    - Dst: get_mpidr
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1519,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1516
    functionDepth: 3
    functionLinenumber: 1516
    functionLinenumberEnd: 1521
    functionName: CpuManager::get_mpidrs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - super::Result::lock
    - get_mpidr
    - unwrap
    - collect
    linkageType: ''
    returnType: Vec
    signature: pub fn get_mpidrs(&self) -> Vec<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1525,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1525,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1527,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1527,1
    - Dst: get_saved_state
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1527,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1527,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1524
    functionDepth: 4
    functionLinenumber: 1524
    functionLinenumberEnd: 1529
    functionName: CpuManager::get_saved_states
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - super::Result::lock
    - get_saved_state
    - unwrap
    - collect
    linkageType: ''
    returnType: Vec
    signature: pub fn get_saved_states(&self) -> Vec<CpuState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1532,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1531
    functionDepth: 3
    functionLinenumber: 1531
    functionLinenumberEnd: 1540
    functionName: CpuManager::get_vcpu_topology
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 4
    functionsReached:
    - map
    - clone
    linkageType: ''
    returnType: Option
    signature: pub fn get_vcpu_topology(&self) -> Option<(u16, u16, u16, u16)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1548,1
    - Dst: Sdt::write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1551,1
    - Dst: arch::x86_64::get_x2apic_id
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1554,1
    - Dst: CpuManager::get_vcpu_topology
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1554,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1568,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1571,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1577,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1580,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1601,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1601,1
    - Dst: get_mpidr
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1601,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1632,1
    - Dst: Gic::create_default_config
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1634,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1634,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1647,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1657,1
    - Dst: vm::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1659,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1659,1
    - Dst: msi_compatibility
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1659,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1671,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1682,1
    - Dst: Sdt::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1685,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1715,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1732,1
    - Dst: Sdt::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 127
    argCount: 1
    argNames:
    - vgic
    argTypes:
    - Arc<Mutex<dyn Vgic>>
    constantsTouched: []
    func_position:
      end: 1738
      start: 1543
    functionDepth: 8
    functionLinenumber: 1543
    functionLinenumberEnd: 1738
    functionName: CpuManager::create_madt
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Sdt::append
    - super::Result::lock
    - Default::default
    - Sdt::write
    - vm::Result::lock
    - msi_compatibility
    - get_mpidr
    - into
    - arch::x86_64::get_x2apic_id
    - CpuManager::get_vcpu_topology
    - unwrap
    - Sdt::update_checksum
    - Gic::create_default_config
    - Sdt::new
    linkageType: ''
    returnType: Sdt
    signature: 'pub fn create_madt(&self, #[cfg(target_arch = "aarch64")] vgic: Arc<Mutex<dyn
      Vgic>>) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::get_vcpu_topology
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1748,1
    - Dst: Option::unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1748,1
    - Dst: u16::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1750,1
    - Dst: CpuManager::max_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1750,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1750,1
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1753,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1757,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1767,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1770,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1782,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1794,1
    - Dst: Sdt::append
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1807,1
    - Dst: Sdt::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1741
    functionDepth: 7
    functionLinenumber: 1741
    functionLinenumberEnd: 1817
    functionName: CpuManager::create_pptt
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Sdt::new
    - Sdt::append
    - u16::try_from
    - Sdt::len
    - Option::unwrap_or
    - CpuManager::get_vcpu_topology
    - Sdt::update_checksum
    - Result::unwrap
    - CpuManager::max_vcpus
    linkageType: ''
    returnType: Sdt
    signature: pub fn create_pptt(&self) -> Sdt
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1821,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1821,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1821,1
    - Dst: create_standard_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 1826
      start: 1820
    functionDepth: 13
    functionLinenumber: 1820
    functionLinenumberEnd: 1826
    functionName: CpuManager::create_standard_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - usize::from
    - create_standard_regs
    linkageType: ''
    returnType: StandardRegisters
    signature: 'fn create_standard_regs(&self, cpu_id: u8) -> StandardRegisters'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1830,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1830,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1830,1
    - Dst: get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1830,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 1836
      start: 1829
    functionDepth: 13
    functionLinenumber: 1829
    functionLinenumberEnd: 1836
    functionName: CpuManager::get_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 2
    functionsReached:
    - usize::from
    - map_err
    - lock
    - unwrap
    - get_regs
    linkageType: ''
    returnType: Result
    signature: 'fn get_regs(&self, cpu_id: u8) -> Result<StandardRegisters>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1840,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1840,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1840,1
    - Dst: set_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1840,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - cpu_id
    - regs
    argTypes:
    - u8
    - '&StandardRegisters'
    constantsTouched: []
    func_position:
      end: 1846
      start: 1839
    functionDepth: 13
    functionLinenumber: 1839
    functionLinenumberEnd: 1846
    functionName: CpuManager::set_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - usize::from
    - map_err
    - lock
    - set_regs
    - unwrap
    linkageType: ''
    returnType: Result
    signature: 'fn set_regs(&self, cpu_id: u8, regs: &StandardRegisters) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1850,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1850,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1850,1
    - Dst: get_sregs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1850,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 1856
      start: 1849
    functionDepth: 13
    functionLinenumber: 1849
    functionLinenumberEnd: 1856
    functionName: CpuManager::get_sregs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - get_sregs
    - usize::from
    - map_err
    - lock
    - unwrap
    linkageType: ''
    returnType: Result
    signature: 'fn get_sregs(&self, cpu_id: u8) -> Result<SpecialRegisters>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1860,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1860,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1860,1
    - Dst: set_sregs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1860,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - cpu_id
    - sregs
    argTypes:
    - u8
    - '&SpecialRegisters'
    constantsTouched: []
    func_position:
      end: 1866
      start: 1859
    functionDepth: 13
    functionLinenumber: 1859
    functionLinenumberEnd: 1866
    functionName: CpuManager::set_sregs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - set_sregs
    - usize::from
    - map_err
    - lock
    - unwrap
    linkageType: ''
    returnType: Result
    signature: 'fn set_sregs(&self, cpu_id: u8, sregs: &SpecialRegisters) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1907,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1907,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1907,1
    - Dst: get_sys_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1907,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1907,1
    - Dst: Error::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1912,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1912,1
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1913,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1913,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1913,1
    - Dst: get_sys_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1913,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1913,1
    - Dst: Error::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1918,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1918,1
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1919,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1919,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1919,1
    - Dst: get_sys_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1919,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1919,1
    - Dst: Error::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1924,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1924,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1928,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1931,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1935,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1937,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1939,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1943,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1958,1
    - Dst: extract_bits_64_without_offset
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1959,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1962,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1973,1
    - Dst: Error::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1973,1
    - Dst: extract_bits_64_without_offset
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1992,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:1996,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2007,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2007,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2009,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2007,1
    - Dst: Error::TranslateVirtualAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2010,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2010,1
    - Dst: u64::from_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2011,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2023,1
    - Dst: extract_bits_64
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2026,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2047,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 184
    argCount: 3
    argNames:
    - guest_memory
    - cpu_id
    - gva
    argTypes:
    - '&GuestMemoryAtomic<GuestMemoryMmap>'
    - u8
    - u64
    constantsTouched: []
    func_position:
      end: 2048
      start: 1901
    functionDepth: 13
    functionLinenumber: 1901
    functionLinenumberEnd: 2048
    functionName: CpuManager::translate_gva
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 2
    functionsReached:
    - extract_bits_64
    - vm_memory::GuestAddress
    - usize::from
    - map_err
    - Error::TranslateVirtualAddress
    - usize::into
    - std::cmp::min
    - IoResult::map_err
    - u64::from_le_bytes
    - GuestMemoryAtomic::memory
    - Err
    - lock
    - extract_bits_64_without_offset
    - unwrap
    - Result::read
    - get_sys_reg
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn translate_gva(&self,guest_memory: &GuestMemoryAtomic<GuestMemoryMmap>,cpu_id:
      u8,gva: u64,) -> Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - acpi_address
    argTypes:
    - GuestAddress
    constantsTouched: []
    func_position:
      end: 2052
      start: 2050
    functionDepth: 0
    functionLinenumber: 2050
    functionLinenumberEnd: 2052
    functionName: CpuManager::set_acpi_address
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn set_acpi_address(&mut self, acpi_address: GuestAddress)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interrupt_controller
    argTypes:
    - Arc<Mutex<dyn InterruptController>>
    constantsTouched: []
    func_position:
      end: 2059
      start: 2054
    functionDepth: 0
    functionLinenumber: 2054
    functionLinenumberEnd: 2059
    functionName: CpuManager::set_interrupt_controller
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn set_interrupt_controller(&mut self,interrupt_controller:
      Arc<Mutex<dyn InterruptController>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2061
    functionDepth: 0
    functionLinenumber: 2061
    functionLinenumberEnd: 2063
    functionName: CpuManager::vcpus_kill_signalled
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Arc'
    signature: pub(crate) fn vcpus_kill_signalled(&self) -> &Arc<AtomicBool>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2074,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2074,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2074,1
    - Dst: get_cpuid_values
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2074,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2074,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - cpu_id
    - eax
    - ecx
    - xfem
    - xss
    argTypes:
    - u8
    - u32
    - u32
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 2081
      start: 2066
    functionDepth: 13
    functionLinenumber: 2066
    functionLinenumberEnd: 2081
    functionName: CpuManager::get_cpuid_leaf
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - usize::from
    - lock
    - unwrap
    - get_cpuid_values
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn get_cpuid_leaf(&self,cpu_id: u8,eax: u32,ecx: u32,xfem:
      u64,xss: u64,) -> Result<[u32; 4]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2086
    functionName: CpuManager::sev_snp_enabled
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn sev_snp_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2089,1
    - Dst: CpuManager::signal_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2090,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2091,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2088
    functionDepth: 16
    functionLinenumber: 2088
    functionLinenumberEnd: 2094
    functionName: CpuManager::nmi
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - store
    - CpuManager::signal_vcpus
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn nmi(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arch::x86_64::get_x2apic_id
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2114,1
    - Dst: as_mut_ptr
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2130
    functionName: Cpu::generate_mat
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 1
    functionsReached:
    - arch::x86_64::get_x2apic_id
    - as_mut_ptr
    linkageType: ''
    returnType: Vec
    signature: fn generate_mat(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cpu::generate_mat
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2136,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2139,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2140,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2140,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2139,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2189,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2190,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2190,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2217
      start: 2134
    functionDepth: 7
    functionLinenumber: 2134
    functionLinenumberEnd: 2217
    functionName: Cpu::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - as_str
    - into
    - aml::Device::new
    - Self::to_aml_bytes
    - Cpu::generate_mat
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Path::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2226,1
    - Dst: aml::If::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2227,1
    - Dst: aml::Equal::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2228,1
    - Dst: aml::Arg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2228,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2232
      start: 2225
    functionDepth: 8
    functionLinenumber: 2225
    functionLinenumberEnd: 2232
    functionName: CpuNotify::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Result::to_aml_bytes
    - aml::If::new
    - aml::Path::new
    - aml::Arg
    - aml::Equal::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2244,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2245,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2244,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2267,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2269,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2272,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2274,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2274,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2274,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2277,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2277,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2277,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2279,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2280,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2279,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2294,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2295,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2294,1
    - Dst: aml::Method::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2348,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2348,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2350
      start: 2241
    functionDepth: 7
    functionLinenumber: 2241
    functionLinenumberEnd: 2350
    functionName: CpuMethods::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Result::to_aml_bytes
    - Vec::new
    - aml::Method::new
    - '&str::into'
    - usize::try_from
    - Result::unwrap
    - Result::push
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2358,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2359,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2358,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2414,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2414,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2415,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2415,1
    - Dst: aml::EISAName::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2415,1
    - Dst: CpuManager::get_vcpu_topology
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2424,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2425,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2427,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2427,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2436,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2439,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2440,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2443,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2443,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 56
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 2444
      start: 2354
    functionDepth: 7
    functionLinenumber: 2354
    functionLinenumberEnd: 2444
    functionName: CpuManager::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - unwrap_or
    - push
    - Result::iter
    - '&str::into'
    - CpuManager::get_vcpu_topology
    - aml::Device::new
    - aml::Name::new
    - get
    - Self::to_aml_bytes
    - Result::push
    - aml::EISAName::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2450,1
    - Dst: CpuManager::signal_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2452,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2452,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2453,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2456,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2457,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2457,1
    - Dst: notify_guest_clock_paused
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2459,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2459,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2460,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2469,1
    - Dst: String::active
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2470,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2472,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2474,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2474,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2448
    functionDepth: 16
    functionLinenumber: 2448
    functionLinenumberEnd: 2480
    functionName: CpuManager::pause
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - iter
    - CpuManager::signal_vcpus
    - super::Result::lock
    - load
    - map_err
    - thread::sleep
    - std::time::Duration::from_millis
    - store
    - Result::map_err
    - notify_guest_clock_paused
    - String::active
    - unwrap
    - MigratableError::Pause
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2485,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2490,1
    - Dst: String::unpark_thread
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2491,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2496,1
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2498,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2500,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2500,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2482
    functionDepth: 16
    functionLinenumber: 2482
    functionLinenumberEnd: 2505
    functionName: CpuManager::resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - iter
    - load
    - String::unpark_thread
    - thread::sleep
    - std::time::Duration::from_millis
    - store
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2509
    functionDepth: 2
    functionLinenumber: 2509
    functionLinenumberEnd: 2511
    functionName: CpuManager::id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2514,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2518,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2518,1
    - Dst: Self::add_snapshot
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2519,1
    - Dst: super::Result::id
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2519,1
    - Dst: super::Result::snapshot
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2519,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2513
    functionDepth: 9
    functionLinenumber: 2513
    functionLinenumberEnd: 2523
    functionName: CpuManager::snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::lock
    - super::Result::id
    - Snapshot::default
    - super::Result::snapshot
    - unwrap
    - Self::add_snapshot
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2538,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2538,1
    - Dst: set_guest_debug
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2538,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - cpu_id
    - addrs
    - singlestep
    argTypes:
    - usize
    - '&[GuestAddress]'
    - bool
    constantsTouched: []
    func_position:
      end: 2544
      start: 2532
    functionDepth: 13
    functionLinenumber: 2532
    functionLinenumberEnd: 2544
    functionName: CpuManager::set_guest_debug
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - lock
    - set_guest_debug
    - unwrap
    - map_err
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn set_guest_debug(&self,cpu_id: usize,addrs: &[GuestAddress],singlestep:
      bool,) -> std::result::Result<(), DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2546
    functionDepth: 0
    functionLinenumber: 2546
    functionLinenumberEnd: 2548
    functionName: CpuManager::debug_pause
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn debug_pause(&mut self) -> std::result::Result<(), DebuggableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2550
    functionDepth: 0
    functionLinenumber: 2550
    functionLinenumberEnd: 2552
    functionName: CpuManager::debug_resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn debug_resume(&mut self) -> std::result::Result<(), DebuggableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2610,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2610,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2613,1
    - Dst: get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2614,1
    - Dst: get_sp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2615,1
    - Dst: get_pc
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2616,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 2619
      start: 2609
    functionDepth: 14
    functionLinenumber: 2609
    functionLinenumberEnd: 2619
    functionName: CpuManager::read_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - CpuManager::get_regs
    - Default::default
    - get_pc
    - Result::map_err
    - get_sp
    - get_regs
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn read_regs(&self, cpu_id: usize) -> std::result::Result<CoreRegs,
      DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2680,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2680,1
    - Dst: set_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2684,1
    - Dst: set_sp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2685,1
    - Dst: set_pc
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2686,1
    - Dst: CpuManager::set_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2688,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2688,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - cpu_id
    - regs
    argTypes:
    - usize
    - '&CoreRegs'
    constantsTouched: []
    func_position:
      end: 2692
      start: 2675
    functionDepth: 14
    functionLinenumber: 2675
    functionLinenumberEnd: 2692
    functionName: CpuManager::write_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - CpuManager::get_regs
    - set_pc
    - set_regs
    - Result::map_err
    - CpuManager::set_regs
    - set_sp
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_regs(&self,cpu_id: usize,regs: &CoreRegs,) -> std::result::Result<(),
      DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::translate_gva
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2706,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2709,1
    - Dst: DebuggableError::TranslateGva
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2709,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2712,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2713,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2713,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2717,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2713,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 4
    argNames:
    - guest_memory
    - cpu_id
    - vaddr
    - len
    argTypes:
    - '&GuestMemoryAtomic<GuestMemoryMmap>'
    - usize
    - GuestAddress
    - usize
    constantsTouched: []
    func_position:
      end: 2723
      start: 2694
    functionDepth: 14
    functionLinenumber: 2694
    functionLinenumberEnd: 2723
    functionName: CpuManager::read_mem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - DebuggableError::TranslateGva
    - vm_memory::GuestAddress
    - std::cmp::min
    - IoResult::map_err
    - GuestMemoryAtomic::memory
    - CpuManager::translate_gva
    - Err
    - Result::read
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn read_mem(&self,guest_memory: &GuestMemoryAtomic<GuestMemoryMmap>,cpu_id:
      usize,vaddr: GuestAddress,len: usize,) -> std::result::Result<Vec<u8>, DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2734,1
    - Dst: CpuManager::translate_gva
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2736,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2739,1
    - Dst: DebuggableError::TranslateGva
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2739,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2742,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2743,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2746,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2746,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2750,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2746,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 4
    argNames:
    - guest_memory
    - cpu_id
    - vaddr
    - data
    argTypes:
    - '&GuestMemoryAtomic<GuestMemoryMmap>'
    - usize
    - '&GuestAddress'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2756
      start: 2725
    functionDepth: 14
    functionLinenumber: 2725
    functionLinenumberEnd: 2756
    functionName: CpuManager::write_mem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - DebuggableError::TranslateGva
    - vm_memory::GuestAddress
    - Result::write
    - std::cmp::min
    - IoResult::map_err
    - GuestMemoryAtomic::memory
    - CpuManager::translate_gva
    - Err
    - String::len
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_mem(&self,guest_memory: &GuestMemoryAtomic<GuestMemoryMmap>,cpu_id:
      usize,vaddr: &GuestAddress,data: &[u8],) -> std::result::Result<(), DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CpuManager::present_vcpus
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2758
    functionDepth: 4
    functionLinenumber: 2758
    functionLinenumberEnd: 2760
    functionName: CpuManager::active_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - CpuManager::present_vcpus
    linkageType: ''
    returnType: usize
    signature: fn active_vcpus(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2772,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2772,1
    - Dst: CpuManager::get_note_size
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2774,1
    - Dst: size_of::<X86_64ElfPrStatus>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2777,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2778,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2778,1
    - Dst: std::result::Result::as_slice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2786,1
    - Dst: Self::splice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2787,1
    - Dst: '&[u8]::to_vec'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2787,1
    - Dst: round_up
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2788,1
    - Dst: Self::resize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2789,1
    - Dst: Self::splice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2790,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2790,1
    - Dst: String::into_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2790,1
    - Dst: round_up
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2792,1
    - Dst: Self::resize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2793,1
    - Dst: u64::as_slice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2795,1
    - Dst: Self::splice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2796,1
    - Dst: '&[u8]::to_vec'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2796,1
    - Dst: size_of::<X86_64UserRegs>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2798,1
    - Dst: size_of::<u64>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2798,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2801,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2801,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2801,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2801,1
    - Dst: get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2801,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2801,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2806,1
    - Dst: get_r15
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2809,1
    - Dst: get_r14
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2810,1
    - Dst: get_r13
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2811,1
    - Dst: get_r12
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2812,1
    - Dst: get_rbp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2813,1
    - Dst: get_rbx
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2814,1
    - Dst: get_r11
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2815,1
    - Dst: get_r10
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2816,1
    - Dst: get_r9
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2819,1
    - Dst: get_r8
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2820,1
    - Dst: get_rax
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2821,1
    - Dst: get_rcx
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2822,1
    - Dst: get_rdx
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2823,1
    - Dst: get_rsi
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2824,1
    - Dst: get_rdi
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2825,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2829,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2829,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2829,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2829,1
    - Dst: get_sregs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2829,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2829,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2834,1
    - Dst: get_rip
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2849,1
    - Dst: get_rflags
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2851,1
    - Dst: get_rsp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2852,1
    - Dst: Result::as_slice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2863,1
    - Dst: Self::resize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2864,1
    - Dst: Self::splice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2865,1
    - Dst: '&[u8]::to_vec'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2865,1
    - Dst: Self::resize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2866,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2868,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2868,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2873,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 182
    argCount: 1
    argNames:
    - dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 2874
      start: 2768
    functionDepth: 16
    functionLinenumber: 2768
    functionLinenumberEnd: 2874
    functionName: CpuManager::cpu_write_elf64_note
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::lock
    - map_err
    - as_ref
    - '&str::to_string'
    - get_r15
    - get_rbx
    - Result::unwrap
    - std::result::Result::as_slice
    - get_r8
    - Ok
    - get_rbp
    - String::into_bytes
    - size_of::<u64>
    - get_rsi
    - get_rip
    - get_r13
    - get_r11
    - get_rdx
    - Result::as_slice
    - get_r14
    - GuestDebuggableError::Coredump
    - get_rsp
    - u64::as_slice
    - CpuManager::get_note_size
    - get_r9
    - size_of::<X86_64UserRegs>
    - lock
    - get_rdi
    - Self::splice
    - unwrap
    - get_rcx
    - get_regs
    - get_sregs
    - '&[u8]::to_vec'
    - get_r12
    - Self::resize
    - usize::try_from
    - get_rflags
    - get_r10
    - round_up
    - get_rax
    - size_of::<X86_64ElfPrStatus>
    - write
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn cpu_write_elf64_note(&mut self,dump_state: &DumpState,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2880,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2880,1
    - Dst: CpuManager::get_note_size
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2882,1
    - Dst: size_of::<DumpCpusState>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2885,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2886,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2886,1
    - Dst: std::result::Result::as_slice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2894,1
    - Dst: Self::splice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2895,1
    - Dst: '&[u8]::to_vec'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2895,1
    - Dst: round_up
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2896,1
    - Dst: Self::resize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2898,1
    - Dst: Self::splice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2899,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2899,1
    - Dst: String::into_bytes
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2899,1
    - Dst: round_up
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2901,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2903,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2903,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2903,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2903,1
    - Dst: get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2903,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2903,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2908,1
    - Dst: get_rax
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2911,1
    - Dst: get_rbx
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2912,1
    - Dst: get_rcx
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2913,1
    - Dst: get_rdx
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2914,1
    - Dst: get_rsi
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2915,1
    - Dst: get_rdi
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2916,1
    - Dst: get_rsp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2917,1
    - Dst: get_rbp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2918,1
    - Dst: get_r8
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2922,1
    - Dst: get_r9
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2923,1
    - Dst: get_r10
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2924,1
    - Dst: get_r11
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2925,1
    - Dst: get_r12
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2926,1
    - Dst: get_r13
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2927,1
    - Dst: get_r14
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2928,1
    - Dst: get_r15
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2929,1
    - Dst: usize::try_from
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2932,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2932,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2932,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2932,1
    - Dst: get_sregs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2932,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2932,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2937,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2944,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2944,1
    - Dst: get_msrs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2944,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2944,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2949,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2952,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2953,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2954,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2955,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2956,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2957,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2958,1
    - Dst: CpuSegment::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2959,1
    - Dst: CpuSegment::new_from_table
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2960,1
    - Dst: CpuSegment::new_from_table
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2961,1
    - Dst: size_of::<DumpCpusState>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2965,1
    - Dst: get_rip
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2968,1
    - Dst: get_rflags
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2969,1
    - Dst: Result::as_slice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2984,1
    - Dst: Self::resize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2985,1
    - Dst: Self::splice
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2986,1
    - Dst: '&[u8]::to_vec'
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2986,1
    - Dst: Self::resize
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2987,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2989,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2989,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:2994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 186
    argCount: 1
    argNames:
    - dump_state
    argTypes:
    - '&DumpState'
    constantsTouched: []
    func_position:
      end: 2995
      start: 2876
    functionDepth: 16
    functionLinenumber: 2876
    functionLinenumberEnd: 2995
    functionName: CpuManager::cpu_write_vmm_note
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::lock
    - size_of::<DumpCpusState>
    - map_err
    - as_ref
    - '&str::to_string'
    - get_r15
    - get_rbx
    - Result::unwrap
    - std::result::Result::as_slice
    - get_r8
    - Ok
    - get_rbp
    - String::into_bytes
    - get_rip
    - get_rsi
    - get_r13
    - get_r11
    - get_rdx
    - Result::as_slice
    - get_rsp
    - GuestDebuggableError::Coredump
    - get_r14
    - CpuManager::get_note_size
    - get_r9
    - lock
    - get_rdi
    - Self::splice
    - unwrap
    - get_rcx
    - get_msrs
    - get_regs
    - CpuSegment::new
    - get_sregs
    - '&[u8]::to_vec'
    - get_r12
    - CpuSegment::new_from_table
    - Self::resize
    - usize::try_from
    - get_rflags
    - get_r10
    - round_up
    - get_rax
    - write
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn cpu_write_vmm_note(&mut self,dump_state: &DumpState,) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3010,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3010,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3011,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3012,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3011,1
    - Dst: Result::check_required_extensions
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3014,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3014,1
    - Dst: create_irq_chip
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3016,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3016,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3017,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3017,1
    - Dst: super::Result::get_lapic
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3018,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3018,1
    - Dst: get_klapic_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3021,1
    - Dst: get_klapic_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3022,1
    - Dst: set_apic_delivery_mode
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3023,1
    - Dst: set_apic_delivery_mode
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3024,1
    - Dst: set_lint
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3026,1
    - Dst: super::Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3026,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3026,1
    - Dst: super::Result::get_lapic
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3029,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3029,1
    - Dst: get_klapic_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3030,1
    - Dst: get_klapic_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3009
    functionDepth: 5
    functionLinenumber: 3009
    functionLinenumberEnd: 3034
    functionName: unit_tests::test_setlint
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - set_lint
    - super::Result::as_ref
    - cpu::Result::unwrap
    - Result::create_vm
    - hypervisor::new
    - set_apic_delivery_mode
    - super::Result::get_lapic
    - Result::check_required_extensions
    - create_vcpu
    - HypervisorVmConfig::default
    - create_irq_chip
    - Result::unwrap
    - hypervisor::Result::expect
    - get_klapic_reg
    linkageType: ''
    returnType: void
    signature: fn test_setlint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3038,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3038,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3039,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3040,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3039,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3042,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3042,1
    - Dst: setup_fpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3043,1
    - Dst: super::Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3043,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3043,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3048,1
    - Dst: super::Result::get_fpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3050,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3037
    functionDepth: 5
    functionLinenumber: 3037
    functionLinenumberEnd: 3058
    functionName: unit_tests::test_setup_fpu
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - setup_fpu
    - vm::Result::unwrap
    - super::Result::as_ref
    - Default::default
    - super::Result::get_fpu
    - cpu::Result::unwrap
    - Result::create_vm
    - hypervisor::new
    - create_vcpu
    - HypervisorVmConfig::default
    - Result::unwrap
    - hypervisor::Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_setup_fpu()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3064,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3064,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3065,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3066,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3065,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3068,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3068,1
    - Dst: setup_msrs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3069,1
    - Dst: super::Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3069,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3069,1
    - Dst: super::Result::get_msrs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3080,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3080,1
    - Dst: super::Result::boot_msr_entries
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3061
    functionDepth: 5
    functionLinenumber: 3061
    functionLinenumberEnd: 3088
    functionName: unit_tests::test_setup_msrs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - super::Result::as_ref
    - setup_msrs
    - super::Result::get_msrs
    - cpu::Result::unwrap
    - Result::create_vm
    - hypervisor::new
    - create_vcpu
    - super::Result::boot_msr_entries
    - HypervisorVmConfig::default
    - Result::unwrap
    - hypervisor::Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_setup_msrs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3092,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3092,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3093,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3094,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3093,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3096,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3096,1
    - Dst: super::Result::create_standard_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3098,1
    - Dst: StandardRegisters::set_rflags
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3099,1
    - Dst: StandardRegisters::set_rbx
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3100,1
    - Dst: StandardRegisters::set_rip
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3101,1
    - Dst: setup_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3103,1
    - Dst: super::Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3104,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3106,1
    - Dst: StandardRegisters::get_rip
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3106,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3103,1
    - Dst: super::Result::get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3112,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3091
    functionDepth: 5
    functionLinenumber: 3091
    functionLinenumberEnd: 3114
    functionName: unit_tests::test_setup_regs_for_pvh
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::get_regs
    - vm_memory::GuestAddress
    - vm::Result::unwrap
    - StandardRegisters::set_rip
    - super::Result::as_ref
    - StandardRegisters::set_rbx
    - cpu::Result::unwrap
    - Result::create_vm
    - hypervisor::new
    - StandardRegisters::get_rip
    - create_vcpu
    - super::Result::create_standard_regs
    - HypervisorVmConfig::default
    - Result::unwrap
    - setup_regs
    - hypervisor::Result::expect
    - StandardRegisters::set_rflags
    linkageType: ''
    returnType: void
    signature: fn test_setup_regs_for_pvh()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3118,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3118,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3119,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3120,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3119,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3122,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3122,1
    - Dst: super::Result::create_standard_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3124,1
    - Dst: StandardRegisters::set_rflags
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3125,1
    - Dst: StandardRegisters::set_rip
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3126,1
    - Dst: StandardRegisters::set_rsp
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3127,1
    - Dst: StandardRegisters::set_rsi
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3128,1
    - Dst: setup_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3130,1
    - Dst: super::Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3131,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3133,1
    - Dst: StandardRegisters::get_rip
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3133,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3134,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3135,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3130,1
    - Dst: super::Result::get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3141,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3143
      start: 3117
    functionDepth: 5
    functionLinenumber: 3117
    functionLinenumberEnd: 3143
    functionName: unit_tests::test_setup_regs_for_bzimage
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::as_ref
    - cpu::Result::unwrap
    - StandardRegisters::get_rip
    - Result::unwrap
    - super::Result::create_standard_regs
    - StandardRegisters::set_rflags
    - StandardRegisters::set_rsi
    - Default::default
    - hypervisor::new
    - HypervisorVmConfig::default
    - setup_regs
    - hypervisor::Result::expect
    - super::Result::get_regs
    - vm_memory::GuestAddress
    - vm::Result::unwrap
    - StandardRegisters::set_rip
    - Result::create_vm
    - create_vcpu
    - Some
    - StandardRegisters::set_rsp
    linkageType: ''
    returnType: void
    signature: fn test_setup_regs_for_bzimage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3166,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3166,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3167,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3167,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3167,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3168,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3168,1
    - Dst: super::Result::setup_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3171,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3171,1
    - Dst: super::Result::create_vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3173,1
    - Dst: get_preferred_target
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3174,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3174,1
    - Dst: super::Result::vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3175,1
    - Dst: crate::VcpuInit::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3175,1
    - Dst: super::Result::setup_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3177,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3165
    functionDepth: 5
    functionLinenumber: 3165
    functionLinenumberEnd: 3178
    functionName: unit_tests::test_setup_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::setup_regs
    - vm::Result::unwrap
    - super::Result::create_vcpu_init
    - get_preferred_target
    - Result::create_vm
    - hypervisor::new
    - crate::VcpuInit::unwrap
    - create_vcpu
    - HypervisorVmConfig::default
    - Result::unwrap
    - hypervisor::Result::unwrap
    - super::Result::vcpu_init
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_setup_regs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3182,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3182,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3183,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3183,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3183,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3184,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3184,1
    - Dst: super::Result::create_vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3185,1
    - Dst: get_preferred_target
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3186,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3186,1
    - Dst: super::Result::get_sys_reg
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3189,1
    - Dst: cpu::Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3189,1
    - Dst: super::Result::vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3191,1
    - Dst: crate::VcpuInit::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3181
    functionDepth: 5
    functionLinenumber: 3181
    functionLinenumberEnd: 3193
    functionName: unit_tests::test_read_mpidr
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - super::Result::create_vcpu_init
    - get_preferred_target
    - cpu::Result::unwrap_err
    - Result::create_vm
    - hypervisor::new
    - super::Result::get_sys_reg
    - crate::VcpuInit::unwrap
    - create_vcpu
    - HypervisorVmConfig::default
    - Result::unwrap
    - hypervisor::Result::unwrap
    - super::Result::vcpu_init
    linkageType: ''
    returnType: void
    signature: fn test_read_mpidr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arm64_core_reg_id
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3197
    functionDepth: 9
    functionLinenumber: 3197
    functionLinenumberEnd: 3203
    functionName: unit_tests::test_is_system_register
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - arm64_core_reg_id
    linkageType: ''
    returnType: void
    signature: fn test_is_system_register()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::chain
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3214,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3214,1
    - Dst: Option::expect
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3214,1
    - Dst: downcast_ref::<vmm_sys_util::errno::Error>
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3215,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3215,1
    - Dst: errno
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - error
    argTypes:
    - '&anyhow::Error'
    constantsTouched: []
    func_position:
      end: 3219
      start: 3213
    functionDepth: 9
    functionLinenumber: 3213
    functionLinenumberEnd: 3219
    functionName: u::n::i::t::_::t::e::s::t::s::::::::t::e::s::t::_::s::a::v::e::_::r::e::s::t::o::r::e::_::c::o::r::e::_::r::e::g::s::hypervisor_cpu_error_to_raw_os_error
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - downcast_ref::<vmm_sys_util::errno::Error>
    - Result::next
    - errno
    - Self::chain
    - Option::expect
    - unwrap_or_else
    linkageType: ''
    returnType: libc::c_int
    signature: 'fn hypervisor_cpu_error_to_raw_os_error(error: &anyhow::Error) ->
      libc::c_int'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3207,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3207,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3208,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3208,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3208,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3209,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3209,1
    - Dst: super::Result::create_vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3210,1
    - Dst: get_preferred_target
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3211,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3211,1
    - Dst: super::Result::get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3223,1
    - Dst: cpu::Result::expect_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3223,1
    - Dst: hypervisor_cpu_error_to_raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3227,1
    - Dst: super::Result::create_standard_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3235,1
    - Dst: super::Result::set_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3237,1
    - Dst: cpu::Result::expect_err
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3237,1
    - Dst: hypervisor_cpu_error_to_raw_os_error
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3241,1
    - Dst: super::Result::vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3248,1
    - Dst: crate::VcpuInit::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3248,1
    - Dst: super::Result::get_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3249,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3249,1
    - Dst: super::Result::set_regs
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3252,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3206
    functionDepth: 5
    functionLinenumber: 3206
    functionLinenumberEnd: 3253
    functionName: unit_tests::test_save_restore_core_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - super::Result::get_regs
    - vm::Result::unwrap
    - super::Result::create_vcpu_init
    - get_preferred_target
    - cpu::Result::unwrap
    - Result::create_vm
    - hypervisor::new
    - cpu::Result::expect_err
    - crate::VcpuInit::unwrap
    - create_vcpu
    - super::Result::create_standard_regs
    - HypervisorVmConfig::default
    - Result::unwrap
    - super::Result::set_regs
    - hypervisor::Result::unwrap
    - super::Result::vcpu_init
    - hypervisor_cpu_error_to_raw_os_error
    linkageType: ''
    returnType: void
    signature: fn test_save_restore_core_regs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3257,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3257,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3258,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3258,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3258,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3259,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3259,1
    - Dst: super::Result::create_vcpu_init
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3260,1
    - Dst: get_preferred_target
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3261,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3261,1
    - Dst: super::Result::get_mp_state
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3263,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3263,1
    - Dst: super::Result::set_mp_state
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3264,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/cpu.rs:3264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3256
    functionDepth: 5
    functionLinenumber: 3256
    functionLinenumberEnd: 3265
    functionName: unit_tests::test_get_set_mpstate
    functionSourceFile: /src/cloud-hypervisor/vmm/src/cpu.rs
    functionUses: 0
    functionsReached:
    - vm::Result::unwrap
    - super::Result::create_vcpu_init
    - get_preferred_target
    - super::Result::set_mp_state
    - super::Result::get_mp_state
    - Result::create_vm
    - hypervisor::new
    - cpu::Result::unwrap
    - create_vcpu
    - HypervisorVmConfig::default
    - Result::unwrap
    - hypervisor::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_get_set_mpstate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::syscall
      Src: /src/cloud-hypervisor/vmm/src/clone3.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - args
    - size
    argTypes:
    - '&mut clone_args'
    - size_t
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: clone3
    functionSourceFile: /src/cloud-hypervisor/vmm/src/clone3.rs
    functionUses: 1
    functionsReached:
    - libc::syscall
    linkageType: ''
    returnType: c_long
    signature: 'pub unsafe fn clone3(args: &mut clone_args, size: size_t) -> c_long'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:398,1
    - Dst: Error::InvalidStateTransition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:398,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:400,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:406,1
    - Dst: Error::InvalidStateTransition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:406,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:408,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:413,1
    - Dst: Error::InvalidStateTransition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:413,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:415,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:420,1
    - Dst: Error::InvalidStateTransition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:420,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:422,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:425,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:426,1
    - Dst: Error::InvalidStateTransition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - new_state
    argTypes:
    - VmState
    constantsTouched: []
    func_position:
      end: 429
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 429
    functionName: VmState::valid_transition
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Error::InvalidStateTransition
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn valid_transition(self, new_state: VmState) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:441,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:441,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:443,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:441,1
    - Dst: HypervisorVmError::GuestMemWrite
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:444,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - gpa
    - buf
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 8
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: VmOpsHandler::guest_mem_write
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - HypervisorVmError::GuestMemWrite
    - usize::into
    - memory
    - write
    linkageType: ''
    returnType: result::Result
    signature: 'fn guest_mem_write(&self, gpa: u64, buf: &[u8]) -> result::Result<usize,
      HypervisorVmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:448,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:448,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:450,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:448,1
    - Dst: HypervisorVmError::GuestMemRead
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:451,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - gpa
    - buf
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 452
      start: 447
    functionDepth: 8
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: VmOpsHandler::guest_mem_read
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - HypervisorVmError::GuestMemRead
    - read
    - usize::into
    - memory
    linkageType: ''
    returnType: result::Result
    signature: 'fn guest_mem_read(&self, gpa: u64, buf: &mut [u8]) -> result::Result<usize,
      HypervisorVmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:455,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - gpa
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 8
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: VmOpsHandler::mmio_read
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Ok
    - read
    linkageType: ''
    returnType: result::Result
    signature: 'fn mmio_read(&self, gpa: u64, data: &mut [u8]) -> result::Result<(),
      HypervisorVmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:462,1
    - Dst: wait
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:468,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - gpa
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 474
      start: 461
    functionDepth: 8
    functionLinenumber: 461
    functionLinenumberEnd: 474
    functionName: VmOpsHandler::mmio_write
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - wait
    - Ok
    - write
    linkageType: ''
    returnType: result::Result
    signature: 'fn mmio_write(&self, gpa: u64, data: &[u8]) -> result::Result<(),
      HypervisorVmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:478,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - port
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 482
      start: 477
    functionDepth: 8
    functionLinenumber: 477
    functionLinenumberEnd: 482
    functionName: VmOpsHandler::pio_read
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Ok
    - read
    linkageType: ''
    returnType: result::Result
    signature: 'fn pio_read(&self, port: u64, data: &mut [u8]) -> result::Result<(),
      HypervisorVmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:486,1
    - Dst: wait
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:492,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - port
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 8
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: VmOpsHandler::pio_write
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - wait
    - Ok
    - write
    linkageType: ''
    returnType: result::Result
    signature: 'fn pio_write(&self, port: u64, data: &[u8]) -> result::Result<(),
      HypervisorVmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arch::get_host_cpu_phys_bits
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:502,1
    - Dst: cmp::min
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hypervisor
    - max_phys_bits
    argTypes:
    - '&dyn hypervisor::Hypervisor'
    - u8
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: physical_bits
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 6
    functionsReached:
    - arch::get_host_cpu_phys_bits
    - cmp::min
    linkageType: ''
    returnType: u8
    signature: 'pub fn physical_bits(hypervisor: &dyn hypervisor::Hypervisor, max_phys_bits:
      u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:552,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:554,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:554,1
    - Dst: validate
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:554,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:554,1
    - Dst: Self::create_numa_nodes
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:564,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:564,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:564,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:564,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:567,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:567,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:567,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:569,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:569,1
    - Dst: is_sev_snp_enabled
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:569,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:578,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:578,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:582,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:582,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:582,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:583,1
    - Dst: Bus::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:583,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:584,1
    - Dst: Bus::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:584,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:586,1
    - Dst: '&Arc::clone'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:589,1
    - Dst: '&Arc::clone'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:590,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:593,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:593,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:593,1
    - Dst: cpu::CpuManager::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:594,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:596,1
    - Dst: EventFd::try_clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:597,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:597,1
    - Dst: EventFd::try_clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:598,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:598,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:601,1
    - Dst: '&SeccompAction::clone'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:602,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:594,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:613,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:613,1
    - Dst: populate_cpuid
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:613,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:617,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:613,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:627,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:627,1
    - Dst: common_cpuid
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:627,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:628,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:628,1
    - Dst: max_vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:628,1
    - Dst: tdx_init
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:629,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:629,1
    - Dst: DeviceManager::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:649,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:652,1
    - Dst: Vec::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:653,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:654,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:655,1
    - Dst: EventFd::try_clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:656,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:656,1
    - Dst: '&SeccompAction::clone'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:658,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:659,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:665,1
    - Dst: DeviceManagerResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:649,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:675,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:675,1
    - Dst: create_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:675,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:675,1
    - Dst: init
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:681,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:681,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:683,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:683,1
    - Dst: create_devices
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:683,1
    - Dst: Option<ConsoleInfo>::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:687,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:688,1
    - Dst: Arc<Mutex<Option<termios>>>::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:689,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:683,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:696,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:696,1
    - Dst: allocate_address_space
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:696,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:696,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:703,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:703,1
    - Dst: add_uefi_flash
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:703,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:703,1
    - Dst: ApiResult::is_none
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:714,1
    - Dst: Self::load_payload_async
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:715,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:727,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:727,1
    - Dst: create_boot_vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:727,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:730,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:727,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:739,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:739,1
    - Dst: create_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:739,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:739,1
    - Dst: init
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:745,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:745,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:747,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:747,1
    - Dst: create_devices
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:747,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:747,1
    - Dst: sev_snp_init
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:760,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:760,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:765,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:765,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:765,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:765,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:770,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:772,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:772,1
    - Dst: create_fw_cfg_device
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:772,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:772,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:781,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:781,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:781,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:781,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:786,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:786,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:781,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:781,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:781,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:791,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:791,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:791,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:791,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:796,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:796,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:791,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:791,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:791,1
    - Dst: ApiResult::as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:802,1
    - Dst: migration::get_vm_snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:803,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:803,1
    - Dst: ApiResult::is_some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:809,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:815,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:821,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:822,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 334
    argCount: 14
    argNames:
    - config
    - memory_manager
    - vm
    - exit_evt
    - reset_evt
    - vm_debug_evt
    - seccomp_action
    - hypervisor
    - activate_evt
    - timestamp
    - console_info
    - console_resize_pipe
    - original_termios
    - snapshot
    argTypes:
    - Arc<Mutex<VmConfig>>
    - Arc<Mutex<MemoryManager>>
    - Arc<dyn hypervisor::Vm>
    - EventFd
    - EventFd
    - EventFd
    - '&SeccompAction'
    - Arc<dyn hypervisor::Hypervisor>
    - EventFd
    - Instant
    - Option<ConsoleInfo>
    - Option<Arc<File>>
    - Arc<Mutex<Option<termios>>>
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 835
      start: 536
    functionDepth: 16
    functionLinenumber: 536
    functionLinenumberEnd: 835
    functionName: Vm::new_from_memory_manager
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 2
    functionsReached:
    - map_err
    - ApiResult::as_ref
    - as_ref
    - std::result::Result::map_err
    - RwLock::new
    - ApiResult::is_none
    - is_sev_snp_enabled
    - ApiResult::is_some
    - max_vcpus
    - Vec::clone
    - guest_memory
    - Vec::lock
    - vm_migration::snapshot_from_id
    - Ok
    - '&Arc::clone'
    - DeviceManagerResult::map_err
    - '&SeccompAction::clone'
    - create_boot_vcpus
    - EventFd::try_clone
    - transpose
    - common_cpuid
    - Arc::new
    - Arc<Mutex<Option<termios>>>::clone
    - is_tdx_enabled
    - DeviceManager::new
    - Result::as_ref
    - Self::create_numa_nodes
    - as_deref
    - add_uefi_flash
    - is_some
    - sev_snp_init
    - is_some_and
    - validate
    - std::io::Result::map_err
    - tracer::trace_scoped
    - lock
    - unwrap
    - create_fw_cfg_device
    - tdx_init
    - Result::clone
    - clone
    - Option<ConsoleInfo>::clone
    - Result::lock
    - Self::load_payload_async
    - map
    - unwrap_or_default
    - create_devices
    - populate_cpuid
    - create_interrupt_controller
    - Option::clone
    - migration::get_vm_snapshot
    - cpu::CpuManager::new
    - Result::map_err
    - init
    - allocate_address_space
    - Vec::with_capacity
    - Bus::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn new_from_memory_manager(config: Arc<Mutex<VmConfig>>,memory_manager:
      Arc<Mutex<MemoryManager>>,vm: Arc<dyn hypervisor::Vm>,exit_evt: EventFd,reset_evt:
      EventFd,#[cfg(feature = "guest_debug")] vm_debug_evt: EventFd,seccomp_action:
      &SeccompAction,hypervisor: Arc<dyn hypervisor::Hypervisor>,activate_evt: EventFd,#[cfg(not(target_arch
      = "riscv64"))] timestamp: Instant,console_info: Option<ConsoleInfo>,console_resize_pipe:
      Option<Arc<File>>,original_termios: Arc<Mutex<Option<termios>>>,snapshot: Option<&Snapshot>,)
      -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:845,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:845,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:845,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:849,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:849,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:849,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:849,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:854,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:854,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:849,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:849,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:849,1
    - Dst: Vm::generate_cmdline
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:862,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:863,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:863,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:863,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:863,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:862,1
    - Dst: as_cstring
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:862,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:862,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:870,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:874,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:874,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:874,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:874,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:879,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:879,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:874,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:874,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:874,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:890,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:891,1
    - Dst: devices::legacy::fw_cfg::FwCfgContent::File
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:893,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:895,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:895,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:899,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:902,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:902,1
    - Dst: fw_cfg
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:903,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:904,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:907,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:907,1
    - Dst: populate_fw_cfg
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:907,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:907,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:918,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 137
    argCount: 3
    argNames:
    - fw_cfg_config
    - device_manager
    - config
    argTypes:
    - '&FwCfgConfig'
    - '&Arc<Mutex<DeviceManager>>'
    - '&Arc<Mutex<VmConfig>>'
    constantsTouched: []
    func_position:
      end: 919
      start: 838
    functionDepth: 13
    functionLinenumber: 838
    functionLinenumberEnd: 919
    functionName: Vm::populate_fw_cfg
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - devices::legacy::fw_cfg::FwCfgContent::File
    - as_ref
    - populate_fw_cfg
    - push
    - Vec::lock
    - Ok
    - transpose
    - '&Arc<Mutex<DeviceManager>>::lock'
    - fw_cfg
    - Err
    - lock
    - unwrap
    - clone
    - Vm::generate_cmdline
    - as_cstring
    - map
    - unwrap_or_default
    - File::open
    - Result::map_err
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn populate_fw_cfg(fw_cfg_config: &FwCfgConfig,device_manager: &Arc<Mutex<DeviceManager>>,config:
      &Arc<Mutex<VmConfig>>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:925,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:925,1
    - Dst: Result::memory_zones
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:926,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:927,1
    - Dst: Option<&[NumaConfig]>::iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:930,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:931,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:933,1
    - Dst: NumaNode::default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:936,1
    - Dst: '&MemoryZones::iter'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:939,1
    - Dst: '&MemoryZones::get'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:940,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:941,1
    - Dst: regions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:941,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:941,1
    - Dst: virtio_mem_zone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:942,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:943,1
    - Dst: region
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:943,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:943,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:945,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:945,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:948,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:954,1
    - Dst: extend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:958,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:962,1
    - Dst: Option<&[NumaConfig]>::iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:966,1
    - Dst: impl Iterator::any
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:966,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:968,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:971,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:973,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:976,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:980,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:984,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 126
    argCount: 2
    argNames:
    - configs
    - memory_manager
    argTypes:
    - Option<&[NumaConfig]>
    - '&Arc<Mutex<MemoryManager>>'
    constantsTouched: []
    func_position:
      end: 985
      start: 921
    functionDepth: 13
    functionLinenumber: 921
    functionLinenumberEnd: 985
    functionName: Vm::create_numa_nodes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Result::memory_zones
    - push
    - extend
    - contains_key
    - region
    - Option<&[NumaConfig]>::iter
    - Ok
    - insert
    - '&MemoryZones::iter'
    - virtio_mem_zone
    - NumaNode::default
    - regions
    - Err
    - unwrap
    - Result::iter
    - clone
    - Result::lock
    - '&MemoryZones::get'
    - BTreeMap::new
    - impl Iterator::any
    linkageType: ''
    returnType: Result
    signature: 'fn create_numa_nodes(configs: Option<&[NumaConfig]>,memory_manager:
      &Arc<Mutex<MemoryManager>>,) -> Result<NumaNodes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1003,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1006,1
    - Dst: ApiResult::is_some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1009,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1012,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1012,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1012,1
    - Dst: Self::create_hypervisor_vm
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1015,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1016,1
    - Dst: std::result::Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1017,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1017,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1017,1
    - Dst: deref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1017,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1017,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1021,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1021,1
    - Dst: max_apic_id
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1021,1
    - Dst: enable_x2apic_api
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1022,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1022,1
    - Dst: physical_bits
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1025,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1026,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1027,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1027,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1031,1
    - Dst: MemoryManager::new_from_snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1032,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1034,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1035,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1035,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1035,1
    - Dst: Option<bool>::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1037,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1032,1
    - Dst: MemoryManager::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1042,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1043,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1044,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1044,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1044,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1050,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1042,1
    - Dst: Vm::new_from_memory_manager
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1055,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 82
    argCount: 13
    argNames:
    - vm_config
    - exit_evt
    - reset_evt
    - vm_debug_evt
    - seccomp_action
    - hypervisor
    - activate_evt
    - console_info
    - console_resize_pipe
    - original_termios
    - snapshot
    - source_url
    - prefault
    argTypes:
    - Arc<Mutex<VmConfig>>
    - EventFd
    - EventFd
    - EventFd
    - '&SeccompAction'
    - Arc<dyn hypervisor::Hypervisor>
    - EventFd
    - Option<ConsoleInfo>
    - Option<Arc<File>>
    - Arc<Mutex<Option<termios>>>
    - Option<&Snapshot>
    - Option<&str>
    - Option<bool>
    constantsTouched: []
    func_position:
      end: 1073
      start: 988
    functionDepth: 17
    functionLinenumber: 988
    functionLinenumberEnd: 1073
    functionName: Vm::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 2
    functionsReached:
    - Instant::now
    - ApiResult::is_some
    - max_apic_id
    - std::result::Result::as_ref
    - Vm::new_from_memory_manager
    - Result::unwrap
    - vm_migration::snapshot_from_id
    - Default::default
    - Self::create_hypervisor_vm
    - into
    - is_tdx_enabled
    - Result::as_ref
    - std::result::Result::lock
    - tracer::trace_scoped
    - lock
    - unwrap
    - clone
    - enable_x2apic_api
    - MemoryManager::new
    - MemoryManager::new_from_snapshot
    - deref
    - Option<bool>::unwrap
    - Result::map_err
    - physical_bits
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(vm_config: Arc<Mutex<VmConfig>>,exit_evt: EventFd,reset_evt:
      EventFd,#[cfg(feature = "guest_debug")] vm_debug_evt: EventFd,seccomp_action:
      &SeccompAction,hypervisor: Arc<dyn hypervisor::Hypervisor>,activate_evt: EventFd,console_info:
      Option<ConsoleInfo>,console_resize_pipe: Option<Arc<File>>,original_termios:
      Arc<Mutex<Option<termios>>>,snapshot: Option<&Snapshot>,source_url: Option<&str>,prefault:
      Option<bool>,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::check_required_extensions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1079,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1079,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1081,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1081,1
    - Dst: set_identity_map_address
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1085,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1085,1
    - Dst: set_tss_address
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1087,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1087,1
    - Dst: enable_split_irq
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1088,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1088,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - hypervisor
    - config
    argTypes:
    - '&dyn hypervisor::Hypervisor'
    - HypervisorVmConfig
    constantsTouched: []
    func_position:
      end: 1092
      start: 1075
    functionDepth: 8
    functionLinenumber: 1075
    functionLinenumberEnd: 1092
    functionName: Vm::create_hypervisor_vm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - vm::Result::unwrap
    - set_identity_map_address
    - Result::create_vm
    - enable_split_irq
    - set_tss_address
    - Result::check_required_extensions
    - Result::unwrap
    - hypervisor::Result::unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn create_hypervisor_vm(hypervisor: &dyn hypervisor::Hypervisor,config:
      HypervisorVmConfig,) -> Result<Arc<dyn hypervisor::Vm>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1095,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1095,1
    - Dst: seek
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1096,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1097,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1096,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1096,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1096,1
    - Dst: rewind
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1101,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1101,1
    - Dst: arch::initramfs_load_addr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1104,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1104,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1105,1
    - Dst: GuestMemoryMmap::read_volatile_from
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1107,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1107,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - guest_mem
    argTypes:
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 1113
      start: 1094
    functionDepth: 7
    functionLinenumber: 1094
    functionLinenumberEnd: 1113
    functionName: Vm::load_initramfs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - arch::initramfs_load_addr
    - vm_memory::GuestAddress
    - try_into
    - map_err
    - as_mut
    - SeekFrom::End
    - seek
    - std::io::Result::map_err
    - super::Result::map_err
    - GuestMemoryMmap::read_volatile_from
    - unwrap
    - rewind
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn load_initramfs(&mut self, guest_mem: &GuestMemoryMmap) -> Result<arch::InitramfsConfig>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmdline::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1121,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1121,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1122,1
    - Dst: insert_str
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1123,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1123,1
    - Dst: "&Arc<\n            Mutex<DeviceManager>,\n        >::lock"
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1127,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1127,1
    - Dst: cmdline_additions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1127,1
    - Dst: insert_str
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1128,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1128,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - payload
    - device_manager
    argTypes:
    - '&PayloadConfig'
    - "&Arc<\n            Mutex<DeviceManager>,\n        >"
    constantsTouched: []
    func_position:
      end: 1131
      start: 1115
    functionDepth: 13
    functionLinenumber: 1115
    functionLinenumberEnd: 1131
    functionName: Vm::generate_cmdline
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - Cmdline::new
    - map_err
    - as_ref
    - "&Arc<\n            Mutex<DeviceManager>,\n        >::lock"
    - cmdline_additions
    - Result::map_err
    - unwrap
    - insert_str
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn generate_cmdline(payload: &PayloadConfig,#[cfg(any(target_arch
      = "aarch64", target_arch = "riscv64"))] device_manager: &Arc<Mutex<DeviceManager>,>,)
      -> Result<Cmdline>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1139,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1139,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1139,1
    - Dst: uefi_flash
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1139,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1140,1
    - Dst: arch::uefi::load_uefi
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1141,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1141,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1141,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - firmware
    - memory_manager
    argTypes:
    - '&File'
    - Arc<Mutex<MemoryManager>>
    constantsTouched: []
    func_position:
      end: 1146
      start: 1135
    functionDepth: 13
    functionLinenumber: 1135
    functionLinenumberEnd: 1146
    functionName: Vm::load_firmware
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Result::lock
    - GuestMemoryMmap::deref
    - as_ref
    - uefi_flash
    - Result::map_err
    - unwrap
    - arch::uefi::load_uefi
    - Result::memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn load_firmware(mut firmware: &File,memory_manager: Arc<Mutex<MemoryManager>>,)
      -> Result<EntryPoint>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1228,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1228,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1228,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1228,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1229,1
    - Dst: linux_loader::loader::elf::Elf::load
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1233,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1234,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1237,1
    - Dst: Result::or_else
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1233,1
    - Dst: BzImage::load
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1241,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1242,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1245,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1233,1
    - Dst: linux_loader::loader::load_cmdline
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1251,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1251,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1251,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1258,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1262,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1268,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 3
    argNames:
    - kernel
    - cmdline
    - memory_manager
    argTypes:
    - File
    - Option<Cmdline>
    - Arc<Mutex<MemoryManager>>
    constantsTouched: []
    func_position:
      end: 1275
      start: 1220
    functionDepth: 13
    functionLinenumber: 1220
    functionLinenumberEnd: 1275
    functionName: Vm::load_kernel
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Result::lock
    - GuestMemoryMmap::deref
    - Result::or_else
    - BzImage::load
    - is_some
    - map_err
    - as_ref
    - linux_loader::loader::elf::Elf::load
    - GuestMemoryAtomic::memory
    - Err
    - unwrap
    - guest_memory
    - linux_loader::loader::load_cmdline
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn load_kernel(mut kernel: File,cmdline: Option<Cmdline>,memory_manager:
      Arc<Mutex<MemoryManager>>,) -> Result<EntryPoint>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: igvm_loader::load_igvm
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1191,1
    - Dst: Arc<Mutex<cpu::CpuManager>>::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1194,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1191,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - igvm
    - memory_manager
    - cpu_manager
    - host_data
    argTypes:
    - File
    - Arc<Mutex<MemoryManager>>
    - Arc<Mutex<cpu::CpuManager>>
    - '&Option<String>'
    constantsTouched: []
    func_position:
      end: 1213
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1213
    functionName: Vm::load_igvm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Arc<Mutex<cpu::CpuManager>>::clone
    - igvm_loader::load_igvm
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn load_igvm(igvm: File,memory_manager: Arc<Mutex<MemoryManager>>,cpu_manager:
      Arc<Mutex<cpu::CpuManager>>,#[cfg(feature = "sev_snp")] host_data: &Option<String>,)
      -> Result<EntryPoint>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1321,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1321,1
    - Dst: Self::load_firmware
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1322,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1325,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1325,1
    - Dst: Self::load_kernel
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - payload
    - memory_manager
    argTypes:
    - '&PayloadConfig'
    - Arc<Mutex<MemoryManager>>
    constantsTouched: []
    func_position:
      end: 1332
      start: 1315
    functionDepth: 14
    functionLinenumber: 1315
    functionLinenumberEnd: 1332
    functionName: Vm::load_payload
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - File::open
    - Self::load_firmware
    - Self::load_kernel
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn load_payload(payload: &PayloadConfig,memory_manager: Arc<Mutex<MemoryManager>>,)
      -> Result<EntryPoint>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1342,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1342,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1342,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1343,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1346,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1346,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1346,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1346,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1352,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1353,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1355,1
    - Dst: std::thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1357,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1357,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1358,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1357,1
    - Dst: Self::load_payload
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1360,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1357,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 4
    argNames:
    - memory_manager
    - config
    - cpu_manager
    - sev_snp_enabled
    argTypes:
    - '&Arc<Mutex<MemoryManager>>'
    - '&Arc<Mutex<VmConfig>>'
    - '&Arc<Mutex<cpu::CpuManager>>'
    - bool
    constantsTouched: []
    func_position:
      end: 1372
      start: 1334
    functionDepth: 13
    functionLinenumber: 1334
    functionLinenumberEnd: 1372
    functionName: Vm::load_payload_async
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::name
    - transpose
    - as_ref
    - io::Result::map_err
    - '&str::into'
    - Result::spawn
    - is_tdx_enabled
    - unwrap
    - Self::clone
    - Result::clone
    - std::thread::Builder::new
    - Self::load_payload
    - Vec::lock
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn load_payload_async(memory_manager: &Arc<Mutex<MemoryManager>>,config:
      &Arc<Mutex<VmConfig>>,#[cfg(feature = "igvm")] cpu_manager: &Arc<Mutex<cpu::CpuManager>>,#[cfg(feature
      = "sev_snp")] sev_snp_enabled: bool,) -> Result<Option<thread::JoinHandle<Result<EntryPoint>>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::generate_cmdline
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1528,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1529,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1529,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1529,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1529,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1532,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1532,1
    - Dst: vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1532,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1532,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1533,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1533,1
    - Dst: boot_guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1533,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1534,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1536,1
    - Dst: Vm::load_initramfs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1536,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1540,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1540,1
    - Dst: get_device_info
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1540,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1540,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1547,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1547,1
    - Dst: pci_segments
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1547,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1547,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1556,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: get_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: get_vaia
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1561,1
    - Dst: Error::ConfigureSystem
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1571,1
    - Dst: arch::Error::PlatformSpecific
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1571,1
    - Dst: arch::configure_system
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1578,1
    - Dst: as_cstring
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1580,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1580,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1580,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1580,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1578,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1589,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1527
    functionDepth: 14
    functionLinenumber: 1527
    functionLinenumberEnd: 1590
    functionName: Vm::configure_system
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - Self::generate_cmdline
    - to_str
    - arch::Error::PlatformSpecific
    - vcpus
    - Ok
    - Error::ConfigureSystem
    - Vec::new
    - len
    - Result::push
    - get_device_info
    - iter
    - pci_segments
    - super::Result::map_err
    - get_interrupt_controller
    - lock
    - unwrap
    - boot_guest_memory
    - clone
    - as_cstring
    - get_vaia
    - arch::configure_system
    - Some
    - Vm::load_initramfs
    linkageType: ''
    returnType: Result
    signature: fn configure_system(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1593,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1593,1
    - Dst: console_resize_pipe
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1592
    functionDepth: 13
    functionLinenumber: 1592
    functionLinenumberEnd: 1594
    functionName: Vm::console_resize_pipe
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - console_resize_pipe
    linkageType: ''
    returnType: Option
    signature: pub fn console_resize_pipe(&self) -> Option<Arc<File>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1597,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1597,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1600,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1603,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1603,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1603,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1603,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1609,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1609,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1609,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1609,1
    - Dst: drain
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1616,1
    - Dst: Vec::join
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1617,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1617,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1596
    functionDepth: 13
    functionLinenumber: 1596
    functionLinenumberEnd: 1622
    functionName: Vm::shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - drain
    - String::valid_transition
    - lock
    - resume
    - try_write
    - unwrap
    - Vec::join
    - shutdown
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn shutdown(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1630,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1633,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1633,1
    - Dst: resize
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1633,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1633,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1640,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1640,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1640,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1640,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1646,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1646,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1650,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1650,1
    - Dst: resize
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1650,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1650,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1657,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1657,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1660,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1660,1
    - Dst: update_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1660,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1660,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1668,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1668,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1668,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1668,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1685,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1694,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1694,1
    - Dst: resize_balloon
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1694,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1694,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1702,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1702,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1707,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1709,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 128
    argCount: 3
    argNames:
    - desired_vcpus
    - desired_memory
    - desired_balloon
    argTypes:
    - Option<u32>
    - Option<u64>
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 1710
      start: 1624
    functionDepth: 14
    functionLinenumber: 1624
    functionLinenumberEnd: 1710
    functionName: Vm::resize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - update_memory
    - resize_balloon
    - event_monitor::event
    - lock
    - Ok
    - unwrap
    - resize
    - Some
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize(&mut self,desired_vcpus: Option<u32>,desired_memory:
      Option<u64>,desired_balloon: Option<u64>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1713,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1713,1
    - Dst: resize_disk
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1713,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1713,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - id
    - desired_size
    argTypes:
    - '&str'
    - u64
    constantsTouched: []
    func_position:
      end: 1720
      start: 1712
    functionDepth: 13
    functionLinenumber: 1712
    functionLinenumberEnd: 1720
    functionName: Vm::resize_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - resize_disk
    - map_err
    - lock
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize_disk(&mut self, id: &str, desired_size: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1723,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1723,1
    - Dst: Result::iter_mut
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1726,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1730,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1730,1
    - Dst: resize_zone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1730,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1730,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1739,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1741,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1748,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 2
    argNames:
    - id
    - desired_memory
    argTypes:
    - '&str'
    - u64
    constantsTouched: []
    func_position:
      end: 1755
      start: 1722
    functionDepth: 13
    functionLinenumber: 1722
    functionLinenumberEnd: 1755
    functionName: Vm::resize_zone
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Result::iter_mut
    - Err
    - lock
    - unwrap
    - resize_zone
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize_zone(&mut self, id: &str, desired_memory: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1758,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1758,1
    - Dst: add_device
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1758,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1758,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1768,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1768,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1769,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1772,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1772,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1772,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1772,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - DeviceConfig
    constantsTouched: []
    func_position:
      end: 1779
      start: 1757
    functionDepth: 13
    functionLinenumber: 1757
    functionLinenumberEnd: 1779
    functionName: Vm::add_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - config::add_to_config
    - map_err
    - add_device
    - lock
    - Ok
    - unwrap
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_device(&mut self, mut device_cfg: DeviceConfig) -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1782,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1782,1
    - Dst: add_user_device
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1782,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1782,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1792,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1792,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1793,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1796,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1796,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1796,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1796,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - UserDeviceConfig
    constantsTouched: []
    func_position:
      end: 1803
      start: 1781
    functionDepth: 13
    functionLinenumber: 1781
    functionLinenumberEnd: 1803
    functionName: Vm::add_user_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - config::add_to_config
    - map_err
    - lock
    - Ok
    - unwrap
    - add_user_device
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_user_device(&mut self, mut device_cfg: UserDeviceConfig)
      -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1806,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1806,1
    - Dst: remove_device
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1806,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1806,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1814,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1814,1
    - Dst: remove_device
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1814,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1816,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1816,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1816,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1816,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - id
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1822
      start: 1805
    functionDepth: 13
    functionLinenumber: 1805
    functionLinenumberEnd: 1822
    functionName: Vm::remove_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - remove_device
    - lock
    - Ok
    - unwrap
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn remove_device(&mut self, id: &str) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1825,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1825,1
    - Dst: add_disk
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1825,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1825,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1835,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1835,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1836,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1839,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1839,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1839,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1839,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - disk_cfg
    argTypes:
    - DiskConfig
    constantsTouched: []
    func_position:
      end: 1846
      start: 1824
    functionDepth: 13
    functionLinenumber: 1824
    functionLinenumberEnd: 1846
    functionName: Vm::add_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - config::add_to_config
    - map_err
    - lock
    - add_disk
    - Ok
    - unwrap
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_disk(&mut self, mut disk_cfg: DiskConfig) -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1849,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1849,1
    - Dst: add_fs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1849,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1849,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1859,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1859,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1860,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1863,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1863,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1863,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1863,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - fs_cfg
    argTypes:
    - FsConfig
    constantsTouched: []
    func_position:
      end: 1870
      start: 1848
    functionDepth: 13
    functionLinenumber: 1848
    functionLinenumberEnd: 1870
    functionName: Vm::add_fs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - config::add_to_config
    - map_err
    - add_fs
    - lock
    - Ok
    - unwrap
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_fs(&mut self, mut fs_cfg: FsConfig) -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1873,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1873,1
    - Dst: add_pmem
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1873,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1873,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1883,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1883,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1884,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1887,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1887,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1887,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1887,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - pmem_cfg
    argTypes:
    - PmemConfig
    constantsTouched: []
    func_position:
      end: 1894
      start: 1872
    functionDepth: 13
    functionLinenumber: 1872
    functionLinenumberEnd: 1894
    functionName: Vm::add_pmem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - add_pmem
    - config::add_to_config
    - map_err
    - lock
    - Ok
    - unwrap
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_pmem(&mut self, mut pmem_cfg: PmemConfig) -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1897,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1897,1
    - Dst: add_net
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1897,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1897,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1907,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1907,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1908,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1911,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1911,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1911,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1911,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - net_cfg
    argTypes:
    - NetConfig
    constantsTouched: []
    func_position:
      end: 1918
      start: 1896
    functionDepth: 13
    functionLinenumber: 1896
    functionLinenumberEnd: 1918
    functionName: Vm::add_net
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - config::add_to_config
    - map_err
    - lock
    - add_net
    - unwrap
    - Ok
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_net(&mut self, mut net_cfg: NetConfig) -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1921,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1921,1
    - Dst: add_vdpa
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1921,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1921,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1931,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1931,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1932,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1935,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1935,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1935,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1935,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - vdpa_cfg
    argTypes:
    - VdpaConfig
    constantsTouched: []
    func_position:
      end: 1942
      start: 1920
    functionDepth: 13
    functionLinenumber: 1920
    functionLinenumberEnd: 1942
    functionName: Vm::add_vdpa
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - config::add_to_config
    - map_err
    - lock
    - Ok
    - unwrap
    - add_vdpa
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_vdpa(&mut self, mut vdpa_cfg: VdpaConfig) -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1945,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1945,1
    - Dst: add_vsock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1945,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1945,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1955,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1955,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1956,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1959,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1959,1
    - Dst: notify_hotplug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1959,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1959,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - vsock_cfg
    argTypes:
    - VsockConfig
    constantsTouched: []
    func_position:
      end: 1966
      start: 1944
    functionDepth: 13
    functionLinenumber: 1944
    functionLinenumberEnd: 1966
    functionName: Vm::add_vsock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - lock
    - Ok
    - unwrap
    - Some
    - add_vsock
    - notify_hotplug
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_vsock(&mut self, mut vsock_cfg: VsockConfig) -> Result<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1969,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1969,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1969,1
    - Dst: counters
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1968
    functionDepth: 13
    functionLinenumber: 1968
    functionLinenumberEnd: 1970
    functionName: Vm::counters
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - counters
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn counters(&self) -> Result<HashMap<String, HashMap<&'static str,
      Wrapping<u64>>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1976,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1976,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1976,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1976,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1976,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1976,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1987,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1987,1
    - Dst: parse_tdvf_sections
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1990,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1973
    functionDepth: 13
    functionLinenumber: 1973
    functionLinenumberEnd: 1991
    functionName: Vm::extract_tdvf_sections
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - File::open
    - parse_tdvf_sections
    - lock
    - Result::map_err
    - unwrap
    - ok_or
    - clone
    linkageType: ''
    returnType: Result
    signature: fn extract_tdvf_sections(&mut self) -> Result<(Vec<TdvfSection>, bool)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:1998,1
    - Dst: Vec<TdvfSection>::pop
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2000,1
    - Dst: GuestMemoryAtomic::iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2004,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2005,1
    - Dst: Result::last_addr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2006,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2016,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2023,1
    - Dst: Vec<TdvfSection>::pop
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2026,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2044,1
    - Dst: Vec<TdvfSection>::pop
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2046,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2047,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 80
    argCount: 2
    argNames:
    - sorted_sections
    - guest_memory
    argTypes:
    - Vec<TdvfSection>
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 2051
      start: 1994
    functionDepth: 5
    functionLinenumber: 1994
    functionLinenumberEnd: 2051
    functionName: Vm::hob_memory_resources
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - Vec<TdvfSection>::pop
    - Vec::new
    - std::cmp::min
    - Result::last_addr
    - Result::start_addr
    - GuestMemoryAtomic::iter
    - Vec::push
    linkageType: ''
    returnType: Vec
    signature: 'fn hob_memory_resources(mut sorted_sections: Vec<TdvfSection>,guest_memory:
      &GuestMemoryMmap,) -> Vec<(u64, u64, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2061,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2061,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2061,1
    - Dst: boot_guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2061,1
    - Dst: GuestMemoryMmap::address_in_range
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2069,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2069,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2077,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2077,1
    - Dst: add_ram_region
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2077,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2080,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2077,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2085,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2085,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2085,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2085,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2085,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2085,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2095,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2095,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2099,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2099,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2099,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2099,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2100,1
    - Dst: seek
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2108,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2109,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2108,1
    - Dst: GuestMemoryMmap::read_volatile_from
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2111,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2112,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2111,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2119,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2123,1
    - Dst: seek
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2124,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2125,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2124,1
    - Dst: seek
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2128,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2129,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2128,1
    - Dst: linux_loader::bootparam::setup_header::default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2132,1
    - Dst: read_volatile
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2133,1
    - Dst: Self::as_bytes
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2134,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2133,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2138,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2144,1
    - Dst: rewind
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2147,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2147,1
    - Dst: GuestMemoryMmap::read_volatile_from
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2148,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2149,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2148,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2157,1
    - Dst: Self::generate_cmdline
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2165,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2166,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2166,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2166,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2166,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2168,1
    - Dst: as_cstring
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2169,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2169,1
    - Dst: as_bytes_with_nul
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2169,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2170,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2168,1
    - Dst: TdHob::start
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2179,1
    - Dst: None::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2179,1
    - Dst: Result::to_vec
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2181,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2182,1
    - Dst: sort_by_key
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2184,1
    - Dst: reverse
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2185,1
    - Dst: Vm::hob_memory_resources
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2187,1
    - Dst: u64::add_memory_resource
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2188,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2188,1
    - Dst: u64::add_mmio_resource
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2193,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2195,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2196,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2197,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2193,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2200,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2200,1
    - Dst: start_of_device_area
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2200,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2200,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2206,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2206,1
    - Dst: end_of_device_area
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2206,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2206,1
    - Dst: u64::add_mmio_resource
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2212,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2212,1
    - Dst: crate::acpi::create_acpi_tables_tdx
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2221,1
    - Dst: u64::add_acpi_table
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2227,1
    - Dst: Result::as_slice
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2227,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2227,1
    - Dst: u64::add_payload
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2233,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2233,1
    - Dst: u64::finish
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2237,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2237,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2239,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 296
    argCount: 2
    argNames:
    - sections
    - guid_found
    argTypes:
    - '&[TdvfSection]'
    - bool
    constantsTouched: []
    func_position:
      end: 2240
      start: 2054
    functionDepth: 13
    functionLinenumber: 2054
    functionLinenumberEnd: 2240
    functionName: Vm::populate_tdx_sections
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - linux_loader::bootparam::setup_header::default
    - TdHob::start
    - None::unwrap
    - map_err
    - as_ref
    - add_ram_region
    - Self::generate_cmdline
    - Result::to_vec
    - retain
    - Vm::hob_memory_resources
    - u64::add_acpi_table
    - guest_memory
    - ok_or
    - u64::finish
    - start_of_device_area
    - Ok
    - crate::acpi::create_acpi_tables_tdx
    - end_of_device_area
    - as_mut
    - SeekFrom::End
    - seek
    - GuestMemoryMmap::read_volatile_from
    - GuestMemoryMmap::address_in_range
    - reverse
    - Result::as_slice
    - rewind
    - raw_value
    - as_bytes_with_nul
    - vm_memory::GuestAddress
    - Err
    - lock
    - sort_by_key
    - unwrap
    - boot_guest_memory
    - clone
    - read_volatile
    - as_cstring
    - File::open
    - Self::as_bytes
    - GuestMemoryAtomic::memory
    - GuestMemoryMmap::write_slice
    - SeekFrom::Start
    - Result::map_err
    - u64::add_mmio_resource
    - u64::add_memory_resource
    - u64::add_payload
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn populate_tdx_sections(&mut self,sections: &[TdvfSection],guid_found:
      bool,) -> Result<Option<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2244,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2244,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2244,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2244,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2245,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2248,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2248,1
    - Dst: tdx_init_memory_region
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2251,1
    - Dst: virtio_devices::get_host_address_range
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2252,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2254,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2252,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2250,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 1
    argNames:
    - sections
    argTypes:
    - '&[TdvfSection]'
    constantsTouched: []
    func_position:
      end: 2268
      start: 2243
    functionDepth: 13
    functionLinenumber: 2243
    functionLinenumberEnd: 2268
    functionName: Vm::init_tdx_memory
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - vm_memory::GuestAddress
    - try_into
    - map_err
    - as_ref
    - Option::unwrap
    - GuestMemoryAtomic::memory
    - lock
    - unwrap
    - tdx_init_memory_region
    - guest_memory
    - virtio_devices::get_host_address_range
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn init_tdx_memory(&mut self, sections: &[TdvfSection]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2277,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2277,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2277,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2280,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2280,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2280,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2280,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2281,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2281,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2281,1
    - Dst: crate::acpi::create_acpi_tables
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2282,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2275
    functionDepth: 13
    functionLinenumber: 2275
    functionLinenumberEnd: 2293
    functionName: Vm::create_acpi_tables
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - is_some
    - crate::acpi::create_acpi_tables
    - lock
    - is_tdx_enabled
    - unwrap
    - guest_memory
    - Some
    - memory
    linkageType: ''
    returnType: Option
    signature: fn create_acpi_tables(&self) -> Option<GuestAddress>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2296,1
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2298,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2298,1
    - Dst: result::Result::join
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2300,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2300,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2295
    functionDepth: 3
    functionLinenumber: 2295
    functionLinenumberEnd: 2302
    functionName: Vm::entry_point
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - map
    - transpose
    - map_err
    - tracer::trace_scoped
    - result::Result::join
    - take
    linkageType: ''
    returnType: Result
    signature: fn entry_point(&mut self) -> Result<Option<EntryPoint>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2305,1
    - Dst: Vm::get_state
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2306,1
    - Dst: Vm::resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2308,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2308,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2313,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2313,1
    - Dst: try_lock_disks
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2313,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2313,1
    - Dst: valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2325,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2329,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2329,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2329,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2329,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2335,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2337,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2337,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2337,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2337,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2343,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2337,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2337,1
    - Dst: Self::populate_fw_cfg
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2346,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2349,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2349,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2349,1
    - Dst: crate::acpi::create_acpi_tables_for_fw_cfg
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2350,1
    - Dst: Vm::entry_point
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2381,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2384,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2384,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2384,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: get_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: get_vgic
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2387,1
    - Dst: vm::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2399,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2399,1
    - Dst: device_properties
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2399,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2402,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2402,1
    - Dst: vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2402,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2404,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2404,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2404,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2404,1
    - Dst: Result::map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2405,1
    - Dst: super::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2406,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2406,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2407,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2407,1
    - Dst: configure_vcpu
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2407,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2407,1
    - Dst: super::Result::set_gic_redistributor_addr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2414,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2414,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2420,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2420,1
    - Dst: set_processors_per_socket_property
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2420,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2420,1
    - Dst: Vm::extract_tdvf_sections
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2429,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2431,1
    - Dst: Vm::populate_tdx_sections
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2438,1
    - Dst: Vm::create_acpi_tables
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2446,1
    - Dst: Result::map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2454,1
    - Dst: Vm::configure_system
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2455,1
    - Dst: Self::transpose
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2454,1
    - Dst: Vm::configure_system
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2460,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2460,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2466,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2466,1
    - Dst: initialize_tdx
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2466,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2466,1
    - Dst: Vm::init_tdx_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2474,1
    - Dst: tdx_finalize
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2476,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2476,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2481,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2481,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2484,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2484,1
    - Dst: start_boot_vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2484,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2484,1
    - Dst: try_write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2490,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2490,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2492,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 277
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2304
    functionDepth: 15
    functionLinenumber: 2304
    functionLinenumberEnd: 2493
    functionName: Vm::boot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - super::Result::lock
    - map_err
    - std::result::Result::map_err
    - as_ref
    - device_properties
    - ok_or
    - try_lock_disks
    - Vm::entry_point
    - guest_memory
    - Result::unwrap
    - Result::map
    - vcpus
    - initialize_tdx
    - start_boot_vcpus
    - Ok
    - Self::transpose
    - Vec::new
    - resume
    - is_tdx_enabled
    - crate::acpi::create_acpi_tables_for_fw_cfg
    - valid_transition
    - is_some
    - tdx_finalize
    - configure_vcpu
    - is_some_and
    - Self::populate_fw_cfg
    - vm::Result::lock
    - Vm::init_tdx_memory
    - Vm::resume
    - tracer::trace_scoped
    - get_interrupt_controller
    - lock
    - unwrap
    - get_vgic
    - super::Result::set_gic_redistributor_addr
    - Vm::configure_system
    - clone
    - Vm::create_acpi_tables
    - map
    - unwrap_or_default
    - set_processors_per_socket_property
    - Vm::populate_tdx_sections
    - ok
    - Result::map_err
    - Vm::get_state
    - Vm::extract_tdvf_sections
    - try_write
    linkageType: ''
    returnType: Result
    signature: pub fn boot(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2496,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2499,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2499,1
    - Dst: try_lock_disks
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2499,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2499,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2506,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2506,1
    - Dst: start_restored_vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2506,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2506,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2512,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2495
    functionDepth: 15
    functionLinenumber: 2495
    functionLinenumberEnd: 2514
    functionName: Vm::restore
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - event_monitor::event
    - lock
    - unwrap
    - try_lock_disks
    - start_restored_vcpus
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn restore(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2517
    functionDepth: 3
    functionLinenumber: 2517
    functionLinenumberEnd: 2519
    functionName: Vm::get_config
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Arc::clone
    linkageType: ''
    returnType: Arc
    signature: pub fn get_config(&self) -> Arc<Mutex<VmConfig>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2523,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2523,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2522
    functionDepth: 3
    functionLinenumber: 2522
    functionLinenumberEnd: 2527
    functionName: Vm::get_state
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 4
    functionsReached:
    - try_read
    - map
    - map_err
    linkageType: ''
    returnType: Result
    signature: pub fn get_state(&self) -> Result<VmState>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2531,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2531,1
    - Dst: balloon_size
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2530
    functionDepth: 13
    functionLinenumber: 2530
    functionLinenumberEnd: 2532
    functionName: Vm::balloon_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - balloon_size
    - unwrap
    linkageType: ''
    returnType: u64
    signature: pub fn balloon_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2538,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2538,1
    - Dst: memory_slot_fds
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2538,1
    - Dst: drain
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2538,1
    - Dst: Request::memory_fd
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2545,1
    - Dst: std::mem::size_of_val
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2545,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2545,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2545,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2548,1
    - Dst: Result::send_with_fd
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2550,1
    - Dst: u32::to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2551,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2550,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2553,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2556,1
    - Dst: ok_or_abandon
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2556,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2558,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - socket
    argTypes:
    - '&mut UnixStream'
    constantsTouched: []
    func_position:
      end: 2563
      start: 2534
    functionDepth: 13
    functionLinenumber: 2534
    functionLinenumberEnd: 2563
    functionName: Vm::send_memory_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of_val
    - memory_slot_fds
    - MigratableError::MigrateSend
    - u32::to_le_bytes
    - map_err
    - drain
    - lock
    - Result::map_err
    - Response::read_from
    - Result::send_with_fd
    - unwrap
    - ok_or_abandon
    - Self::write_to
    - Request::memory_fd
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn send_memory_fds(&mut self,socket: &mut UnixStream,) -> std::result::Result<(),
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2573,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2573,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2573,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2573,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2574,1
    - Dst: super::Result::regions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2576,1
    - Dst: GuestMemoryMmap::write_volatile_to
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2584,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2586,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2584,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2591,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 2
    argNames:
    - ranges
    - fd
    argTypes:
    - '&MemoryRangeTable'
    - '&mut F'
    constantsTouched: []
    func_position:
      end: 2604
      start: 2565
    functionDepth: 13
    functionLinenumber: 2565
    functionLinenumberEnd: 2604
    functionName: Vm::send_memory_regions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - as_ref
    - super::Result::regions
    - GuestMemoryMmap::write_volatile_to
    - GuestMemoryAtomic::memory
    - lock
    - unwrap
    - guest_memory
    - MigratableError::MigrateSend
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn send_memory_regions<F>(&mut self,ranges: &MemoryRangeTable,fd:
      &mut F,) -> std::result::Result<(), MigratableError>whereF: WriteVolatile,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2607,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2607,1
    - Dst: memory_range_table
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2606
    functionDepth: 13
    functionLinenumber: 2606
    functionLinenumberEnd: 2611
    functionName: Vm::memory_range_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - memory_range_table
    linkageType: ''
    returnType: std::result::Result
    signature: pub fn memory_range_table(&self) -> std::result::Result<MemoryRangeTable,
      MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2614,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2614,1
    - Dst: device_tree
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2613
    functionDepth: 13
    functionLinenumber: 2613
    functionLinenumberEnd: 2615
    functionName: Vm::device_tree
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - device_tree
    - unwrap
    linkageType: ''
    returnType: Arc
    signature: pub fn device_tree(&self) -> Arc<Mutex<DeviceTree>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2624,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2624,1
    - Dst: release_disk_locks
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2624,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2624,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2623
    functionDepth: 13
    functionLinenumber: 2623
    functionLinenumberEnd: 2630
    functionName: Vm::release_disk_locks
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - map_err
    - release_disk_locks
    - lock
    - unwrap
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn release_disk_locks(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2633,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2633,1
    - Dst: activate_virtio_devices
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2633,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2632
    functionDepth: 13
    functionLinenumber: 2632
    functionLinenumberEnd: 2638
    functionName: Vm::activate_virtio_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - lock
    - activate_virtio_devices
    - unwrap
    - map_err
    linkageType: ''
    returnType: Result
    signature: pub fn activate_virtio_devices(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2660
    functionDepth: 0
    functionLinenumber: 2660
    functionLinenumberEnd: 2662
    functionName: Vm::power_button
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: pub fn power_button(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2665,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2665,1
    - Dst: snapshot_data
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2664
    functionDepth: 13
    functionLinenumber: 2664
    functionLinenumberEnd: 2666
    functionName: Vm::memory_manager_data
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - snapshot_data
    - unwrap
    linkageType: ''
    returnType: MemoryManagerSnapshotData
    signature: pub fn memory_manager_data(&self) -> MemoryManagerSnapshotData
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vm::set_guest_debug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2677,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2677,1
    - Dst: Vm::set_guest_debug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2681,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2681,1
    - Dst: Vm::debug_pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2685,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2685,1
    - Dst: Vm::debug_resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2688,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2688,1
    - Dst: Vm::read_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2691,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2691,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2692,1
    - Dst: GdbResponsePayload::RegValues
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2692,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2692,1
    - Dst: Vm::write_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2695,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2695,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2698,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2698,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2698,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2698,1
    - Dst: Vm::read_mem
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2699,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2699,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2702,1
    - Dst: GdbResponsePayload::MemoryRegion
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2702,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2705,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2705,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2705,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2705,1
    - Dst: Vm::write_mem
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2706,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2706,1
    - Dst: Vm::active_vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2710,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2711,1
    - Dst: GdbResponsePayload::ActiveVcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2711,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2714,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 89
    argCount: 2
    argNames:
    - gdb_request
    - cpu_id
    argTypes:
    - '&GdbRequestPayload'
    - usize
    constantsTouched: []
    func_position:
      end: 2715
      start: 2669
    functionDepth: 14
    functionLinenumber: 2669
    functionLinenumberEnd: 2715
    functionName: Vm::debug_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Vm::debug_pause
    - Vm::read_mem
    - std::result::Result::map_err
    - as_ref
    - GdbResponsePayload::ActiveVcpus
    - Vm::active_vcpus
    - lock
    - GdbResponsePayload::RegValues
    - Box::new
    - Ok
    - Vm::write_regs
    - Vm::set_guest_debug
    - unwrap
    - guest_memory
    - GdbResponsePayload::MemoryRegion
    - Vm::read_regs
    - Vm::write_mem
    - Vm::debug_resume
    linkageType: ''
    returnType: Result
    signature: 'pub fn debug_request(&mut self,gdb_request: &GdbRequestPayload,cpu_id:
      usize,) -> Result<GdbResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2722,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2722,1
    - Dst: Vm::get_note_size
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2723,1
    - Dst: migration::url_to_file
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2726,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2727,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2727,1
    - Dst: num_guest_ram_mappings
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2727,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2734,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2734,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2734,1
    - Dst: IoResult::create_new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2734,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2734,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2734,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2739,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2739,1
    - Dst: Vm::coredump_get_mem_offset
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2741,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2742,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2742,1
    - Dst: coredump_memory_regions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2742,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2748,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2753,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 1
    argNames:
    - destination_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2756
      start: 2718
    functionDepth: 13
    functionLinenumber: 2718
    functionLinenumberEnd: 2756
    functionName: Vm::get_dump_state
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - GuestDebuggableError::Coredump
    - OpenOptions::new
    - map_err
    - Vm::get_note_size
    - open
    - Some
    - lock
    - Ok
    - unwrap
    - IoResult::write
    - Result::read
    - usize::into
    - IoResult::create_new
    - migration::url_to_file
    - coredump_memory_regions
    - num_guest_ram_mappings
    - Vm::coredump_get_mem_offset
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn get_dump_state(&mut self,destination_url: &str,) -> std::result::Result<DumpState,
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<elf::Elf64_Ehdr>
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2760,1
    - Dst: size_of::<elf::Elf64_Phdr>
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - phdr_num
    - note_size
    argTypes:
    - u16
    - isize
    constantsTouched: []
    func_position:
      end: 2763
      start: 2759
    functionDepth: 0
    functionLinenumber: 2759
    functionLinenumberEnd: 2763
    functionName: Vm::coredump_get_mem_offset
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - size_of::<elf::Elf64_Ehdr>
    - size_of::<elf::Elf64_Phdr>
    linkageType: ''
    returnType: u64
    signature: 'fn coredump_get_mem_offset(&self, phdr_num: u16, note_size: isize)
      -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2766,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2766,1
    - Dst: nmi
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2766,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2765
    functionDepth: 13
    functionLinenumber: 2765
    functionLinenumberEnd: 2772
    functionName: Vm::nmi
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - map_err
    - nmi
    linkageType: ''
    returnType: Result
    signature: pub fn nmi(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2865
    functionDepth: 2
    functionLinenumber: 2865
    functionLinenumberEnd: 2867
    functionName: Vm::id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2870,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2874,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2874,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2874,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2875,1
    - Dst: MigratableError::Snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2875,1
    - Dst: Vm::get_state
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2881,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2881,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2883,1
    - Dst: MigratableError::Snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2883,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2890,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2890,1
    - Dst: physical_bits
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2891,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2892,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2893,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2893,1
    - Dst: arch::generate_common_cpuid
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2895,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2896,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2899,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2899,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2895,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2906,1
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2917,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2920,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2920,1
    - Dst: id
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2921,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2921,1
    - Dst: ApiResult::add_snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2923,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2925,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2925,1
    - Dst: Result::id
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2926,1
    - Dst: Result::snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2926,1
    - Dst: ApiResult::add_snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2928,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2930,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2930,1
    - Dst: id
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2931,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2931,1
    - Dst: ApiResult::add_snapshot
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2933,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2935,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2936,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2869
    functionDepth: 14
    functionLinenumber: 2869
    functionLinenumberEnd: 2937
    functionName: Vm::snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Result::id
    - as_ref
    - snapshot
    - Result::unwrap
    - id
    - Ok
    - ApiResult::add_snapshot
    - Result::snapshot
    - event_monitor::event
    - is_tdx_enabled
    - Snapshot::new_from_state
    - super::Result::map_err
    - Err
    - lock
    - MigratableError::Snapshot
    - unwrap
    - arch::generate_common_cpuid
    - MigratableError::MigrateReceive
    - Vm::get_state
    - physical_bits
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: migration::url_to_path
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2946,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2947,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2950,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2950,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2950,1
    - Dst: IoResult::create_new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2950,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2950,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2950,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2955,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2955,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2958,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2958,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2958,1
    - Dst: deref
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2958,1
    - Dst: String::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2958,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2959,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2959,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2961,1
    - Dst: std::result::Result::as_bytes
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2962,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2961,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2963,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2963,1
    - Dst: migration::url_to_path
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2965,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2966,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2969,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2969,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2969,1
    - Dst: IoResult::create_new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2969,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2969,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2969,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2974,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2974,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2978,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2978,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2978,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2978,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2980,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2980,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2982,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2982,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2985,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2986,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2986,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2986,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2989,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2991,1
    - Dst: MigratableError::Restore
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2991,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:2996,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 111
    argCount: 2
    argNames:
    - snapshot
    - destination_url
    argTypes:
    - '&Snapshot'
    - '&str'
    constantsTouched: []
    func_position:
      end: 2997
      start: 2941
    functionDepth: 12
    functionLinenumber: 2941
    functionLinenumberEnd: 2997
    functionName: Vm::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - migration::url_to_path
    - map_err
    - push
    - IoResult::write
    - Result::read
    - serde_json::to_vec
    - Ok
    - OpenOptions::new
    - std::result::Result::as_bytes
    - get
    - usize::into
    - serde_json::to_string
    - Err
    - lock
    - String::map_err
    - unwrap
    - send
    - IoResult::create_new
    - clone
    - MigratableError::MigrateSend
    - open
    - MigratableError::Restore
    - deref
    - write
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn send(&self,snapshot: &Snapshot,destination_url: &str,) -> std::result::Result<(),
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3002,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3002,1
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3002,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3003,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3003,1
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3004
      start: 3001
    functionDepth: 13
    functionLinenumber: 3001
    functionLinenumberEnd: 3004
    functionName: Vm::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - start_dirty_log
    - unwrap
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3007,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3007,1
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3007,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3008,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3008,1
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 3006
    functionDepth: 13
    functionLinenumber: 3006
    functionLinenumberEnd: 3009
    functionName: Vm::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - stop_dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3012,1
    - Dst: MemoryRangeTable::new_from_tables
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 3011
    functionDepth: 6
    functionLinenumber: 3011
    functionLinenumberEnd: 3016
    functionName: Vm::dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - MemoryRangeTable::new_from_tables
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn dirty_log(&mut self) -> std::result::Result<MemoryRangeTable, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3019,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3019,1
    - Dst: start_migration
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3019,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3020,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3020,1
    - Dst: start_migration
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3018
    functionDepth: 13
    functionLinenumber: 3018
    functionLinenumberEnd: 3021
    functionName: Vm::start_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - start_migration
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3024,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3024,1
    - Dst: complete_migration
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3024,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3025,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3025,1
    - Dst: complete_migration
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3023
    functionDepth: 13
    functionLinenumber: 3023
    functionLinenumberEnd: 3026
    functionName: Vm::complete_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - lock
    - complete_migration
    - unwrap
    linkageType: ''
    returnType: std::result::Result
    signature: fn complete_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3037,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3037,1
    - Dst: set_guest_debug
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - cpu_id
    - addrs
    - singlestep
    argTypes:
    - usize
    - '&[GuestAddress]'
    - bool
    constantsTouched: []
    func_position:
      end: 3041
      start: 3031
    functionDepth: 13
    functionLinenumber: 3031
    functionLinenumberEnd: 3041
    functionName: Vm::set_guest_debug
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - lock
    - set_guest_debug
    - unwrap
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn set_guest_debug(&self,cpu_id: usize,addrs: &[GuestAddress],singlestep:
      bool,) -> std::result::Result<(), DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3044,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3044,1
    - Dst: Vm::pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3045,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3045,1
    - Dst: try_write
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3048,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3048,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3043
    functionDepth: 15
    functionLinenumber: 3043
    functionLinenumberEnd: 3054
    functionName: Vm::debug_pause
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - map_err
    - std::result::Result::map_err
    - Vm::pause
    - try_write
    - unwrap
    - read
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn debug_pause(&mut self) -> std::result::Result<(), DebuggableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3057,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3057,1
    - Dst: Vm::resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3058,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3058,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3061,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3056
    functionDepth: 15
    functionLinenumber: 3056
    functionLinenumberEnd: 3062
    functionName: Vm::debug_resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - std::result::Result::map_err
    - Vm::resume
    - unwrap
    - read
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn debug_resume(&mut self) -> std::result::Result<(), DebuggableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3065,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3065,1
    - Dst: read_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3066
      start: 3064
    functionDepth: 13
    functionLinenumber: 3064
    functionLinenumberEnd: 3066
    functionName: Vm::read_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - lock
    - read_regs
    - unwrap
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn read_regs(&self, cpu_id: usize) -> std::result::Result<CoreRegs,
      DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3073,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3073,1
    - Dst: write_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - cpu_id
    - regs
    argTypes:
    - usize
    - '&CoreRegs'
    constantsTouched: []
    func_position:
      end: 3074
      start: 3068
    functionDepth: 13
    functionLinenumber: 3068
    functionLinenumberEnd: 3074
    functionName: Vm::write_regs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - lock
    - unwrap
    - write_regs
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_regs(&self,cpu_id: usize,regs: &CoreRegs,) -> std::result::Result<(),
      DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3083,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3083,1
    - Dst: read_mem
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - guest_memory
    - cpu_id
    - vaddr
    - len
    argTypes:
    - '&GuestMemoryAtomic<GuestMemoryMmap>'
    - usize
    - GuestAddress
    - usize
    constantsTouched: []
    func_position:
      end: 3087
      start: 3076
    functionDepth: 13
    functionLinenumber: 3076
    functionLinenumberEnd: 3087
    functionName: Vm::read_mem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - lock
    - unwrap
    - read_mem
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn read_mem(&self,guest_memory: &GuestMemoryAtomic<GuestMemoryMmap>,cpu_id:
      usize,vaddr: GuestAddress,len: usize,) -> std::result::Result<Vec<u8>, DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3096,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3096,1
    - Dst: write_mem
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - guest_memory
    - cpu_id
    - vaddr
    - data
    argTypes:
    - '&GuestMemoryAtomic<GuestMemoryMmap>'
    - usize
    - '&GuestAddress'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 3100
      start: 3089
    functionDepth: 13
    functionLinenumber: 3089
    functionLinenumberEnd: 3100
    functionName: Vm::write_mem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - lock
    - write_mem
    - unwrap
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_mem(&self,guest_memory: &GuestMemoryAtomic<GuestMemoryMmap>,cpu_id:
      usize,vaddr: &GuestAddress,data: &[u8],) -> std::result::Result<(), DebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3103,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3103,1
    - Dst: active_vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3103,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3108,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3108,1
    - Dst: boot_vcpus
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3102
    functionDepth: 13
    functionLinenumber: 3102
    functionLinenumberEnd: 3110
    functionName: Vm::active_vcpus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 1
    functionsReached:
    - lock
    - boot_vcpus
    - unwrap
    - active_vcpus
    linkageType: ''
    returnType: usize
    signature: fn active_vcpus(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3122,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3128,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3128,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3131,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3131,1
    - Dst: Vm::get_state
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3137,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3137,1
    - Dst: Vm::pause
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3139,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3139,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3144,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3144,1
    - Dst: Vm::get_dump_state
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3150,1
    - Dst: Vm::write_header
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3152,1
    - Dst: Vm::write_note
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3153,1
    - Dst: Vm::write_loads
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3154,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3156,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3156,1
    - Dst: cpu_write_elf64_note
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3156,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3160,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3160,1
    - Dst: cpu_write_vmm_note
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3160,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3165,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3165,1
    - Dst: coredump_iterate_save_mem
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3165,1
    - Dst: Vm::resume
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3171,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3171,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3174,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 91
    argCount: 1
    argNames:
    - destination_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 3175
      start: 3121
    functionDepth: 14
    functionLinenumber: 3121
    functionLinenumberEnd: 3175
    functionName: Vm::coredump
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - cpu_write_elf64_note
    - Vm::write_note
    - std::result::Result::map_err
    - Vm::get_dump_state
    - event_monitor::event
    - Vm::write_loads
    - Vm::resume
    - Err
    - lock
    - Vm::pause
    - Vm::get_state
    - cpu_write_vmm_note
    - unwrap
    - Ok
    - Result::unwrap
    - GuestDebuggableError::Coredump
    - Vm::write_header
    - coredump_iterate_save_mem
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn coredump(&mut self, destination_url: &str) -> std::result::Result<(),
      GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3187,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3187,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3188,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3188,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3189,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3189,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3190,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3190,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3191,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3191,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3195,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3195,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3196,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3196,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3197,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3197,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3198,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3198,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3199,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3199,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3203,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3203,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3204,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3204,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3205,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3205,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3206,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3206,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3207,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3207,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3211,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3211,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3212,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3212,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3213,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3213,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3214,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3214,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3215,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3215,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3219,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3219,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3220,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3220,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3221,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3221,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3222,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3222,1
    - Dst: String::valid_transition
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3223,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 127
    argCount: 1
    argNames:
    - state
    argTypes:
    - VmState
    constantsTouched: []
    func_position:
      end: 3226
      start: 3183
    functionDepth: 1
    functionLinenumber: 3183
    functionLinenumberEnd: 3226
    functionName: unit_tests::test_vm_state_transitions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - String::valid_transition
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: 'fn test_vm_state_transitions(state: VmState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vm_state_transitions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3229
    functionDepth: 2
    functionLinenumber: 3229
    functionLinenumberEnd: 3231
    functionName: unit_tests::test_vm_created_transitions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - test_vm_state_transitions
    linkageType: ''
    returnType: void
    signature: fn test_vm_created_transitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vm_state_transitions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3234
    functionDepth: 2
    functionLinenumber: 3234
    functionLinenumberEnd: 3236
    functionName: unit_tests::test_vm_running_transitions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - test_vm_state_transitions
    linkageType: ''
    returnType: void
    signature: fn test_vm_running_transitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vm_state_transitions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3239
    functionDepth: 2
    functionLinenumber: 3239
    functionLinenumberEnd: 3241
    functionName: unit_tests::test_vm_shutdown_transitions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - test_vm_state_transitions
    linkageType: ''
    returnType: void
    signature: fn test_vm_shutdown_transitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vm_state_transitions
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3244
    functionDepth: 2
    functionLinenumber: 3244
    functionLinenumberEnd: 3246
    functionName: unit_tests::test_vm_paused_transitions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - test_vm_state_transitions
    linkageType: ''
    returnType: void
    signature: fn test_vm_paused_transitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3451
      start: 3250
    functionDepth: 0
    functionLinenumber: 3250
    functionLinenumberEnd: 3451
    functionName: unit_tests::test_hob_memory_resources
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_hob_memory_resources()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3469,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3470,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3470,1
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3472,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3472,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3473,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3474,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3473,1
    - Dst: GuestMemoryMmap::iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3477,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3477,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3480,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3482,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3482,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3483,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3483,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3483,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3484,1
    - Dst: vm::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3480,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3491,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3491,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3494,1
    - Dst: vm::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3494,1
    - Dst: super::Result::get_sregs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3496,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3496,1
    - Dst: super::Result::set_sregs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3499,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3499,1
    - Dst: super::Result::get_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3501,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3501,1
    - Dst: set_rip
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3502,1
    - Dst: set_rax
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3503,1
    - Dst: set_rbx
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3504,1
    - Dst: set_rflags
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3505,1
    - Dst: super::Result::set_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3506,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3506,1
    - Dst: super::Result::run
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3509,1
    - Dst: std::result::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3454
    functionDepth: 5
    functionLinenumber: 3454
    functionLinenumberEnd: 3518
    functionName: unit_tests::test_vm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - expect
    - GuestMemoryMmap::from_ranges
    - super::Result::get_sregs
    - set_rax
    - Result::unwrap
    - set_rflags
    - hypervisor::new
    - impl Iterator::enumerate
    - super::Result::run
    - HypervisorVmConfig::default
    - set_rbx
    - super::Result::set_regs
    - hypervisor::Result::expect
    - super::Result::set_sregs
    - super::Result::get_regs
    - vm_memory::GuestAddress
    - set_rip
    - Result::len
    - std::result::Result::unwrap
    - Result::as_ptr
    - create_user_memory_region
    - unwrap
    - cpu::Result::expect
    - Result::raw_value
    - usize::try_into
    - Result::start_addr
    - Result::create_vm
    - GuestMemoryMmap::iter
    - GuestMemoryMmap::write_slice
    - create_vcpu
    - vm::Result::expect
    - std::result::Result::expect
    linkageType: ''
    returnType: void
    signature: pub fn test_vm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3536,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3536,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3540,1
    - Dst: DeviceType::Virtio
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3548,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3548,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3556,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3538,1
    - Dst: cloned
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3538,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3538,1
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3568,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3568,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3569,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3569,1
    - Dst: hypervisor::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3569,1
    - Dst: Gic::create_default_config
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3570,1
    - Dst: create_vgic
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3571,1
    - Dst: vm::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3571,1
    - Dst: create_fdt
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3572,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3576,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3580,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3581,1
    - Dst: FdtWriterResult::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3534
    functionDepth: 14
    functionLinenumber: 3534
    functionLinenumberEnd: 3586
    functionName: unit_tests::test_create_fdt_with_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - expect
    - GuestMemoryMmap::from_ranges
    - '&str::to_string'
    - to_string
    - Result::unwrap
    - hypervisor::Result::unwrap
    - create_vgic
    - Vec::new
    - hypervisor::new
    - HypervisorVmConfig::default
    - FdtWriterResult::unwrap
    - iter
    - cloned
    - DeviceType::Virtio
    - Result::create_vm
    - BTreeMap::new
    - vm::Result::expect
    - create_fdt
    - Gic::create_default_config
    - Some
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_create_fdt_with_devices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3606,1
    - Dst: GuestMemoryMmap::from_ranges
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3607,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3607,1
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3609,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3609,1
    - Dst: Result::create_vm
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3610,1
    - Dst: HypervisorVmConfig::default
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3611,1
    - Dst: hypervisor::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3610,1
    - Dst: GuestMemoryMmap::iter
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3614,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3614,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3617,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3619,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3619,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3620,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3620,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3620,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3621,1
    - Dst: vm::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3617,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3628,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3628,1
    - Dst: create_vcpu
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3631,1
    - Dst: vm::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3631,1
    - Dst: super::Result::get_sregs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3633,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3633,1
    - Dst: super::Result::set_sregs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3636,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3636,1
    - Dst: super::Result::get_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3638,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3638,1
    - Dst: set_rip
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3639,1
    - Dst: set_rax
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3640,1
    - Dst: set_rbx
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3641,1
    - Dst: set_rflags
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3642,1
    - Dst: super::Result::set_regs
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3643,1
    - Dst: cpu::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3643,1
    - Dst: super::Result::run
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3646,1
    - Dst: std::result::Result::expect
      Src: /src/cloud-hypervisor/vmm/src/vm.rs:3646,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3655
      start: 3591
    functionDepth: 5
    functionLinenumber: 3591
    functionLinenumberEnd: 3655
    functionName: test_vm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/vm.rs
    functionUses: 0
    functionsReached:
    - expect
    - GuestMemoryMmap::from_ranges
    - super::Result::get_sregs
    - set_rax
    - Result::unwrap
    - set_rflags
    - hypervisor::new
    - impl Iterator::enumerate
    - super::Result::run
    - HypervisorVmConfig::default
    - set_rbx
    - super::Result::set_regs
    - hypervisor::Result::expect
    - super::Result::set_sregs
    - super::Result::get_regs
    - vm_memory::GuestAddress
    - set_rip
    - Result::len
    - std::result::Result::unwrap
    - Result::as_ptr
    - create_user_memory_region
    - unwrap
    - cpu::Result::expect
    - Result::raw_value
    - usize::try_into
    - Result::start_addr
    - Result::create_vm
    - GuestMemoryMmap::iter
    - GuestMemoryMmap::write_slice
    - create_vcpu
    - vm::Result::expect
    - std::result::Result::expect
    linkageType: ''
    returnType: void
    signature: pub fn test_vm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gdb_sender
    - gdb_event
    - vm_event
    - hw_breakpoints
    argTypes:
    - mpsc::Sender<GdbRequest>
    - vmm_sys_util::eventfd::EventFd
    - vmm_sys_util::eventfd::EventFd
    - usize
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: GdbStub::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 2
    functionsReached:
    - Vec::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(gdb_sender: mpsc::Sender<GdbRequest>,gdb_event: vmm_sys_util::eventfd::EventFd,vm_event:
      vmm_sys_util::eventfd::EventFd,hw_breakpoints: usize,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::sync::mpsc::channel
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:168,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:174,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:174,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:177,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:177,1
    - Dst: recv
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:178,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:178,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - payload
    - cpu_id
    argTypes:
    - GdbRequestPayload
    - usize
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 8
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: GdbStub::vm_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 12
    functionsReached:
    - map_err
    - std::sync::mpsc::channel
    - Ok
    - recv
    - send
    - write
    linkageType: ''
    returnType: GdbResult
    signature: 'fn vm_request(&self,payload: GdbRequestPayload,cpu_id: usize,) ->
      GdbResult<GdbResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BaseOps::MultiThread
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: GdbStub::base_ops
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - BaseOps::MultiThread
    linkageType: ''
    returnType: BaseOps
    signature: fn base_ops(&mut self) -> BaseOps<'_, Self::Arch, Self::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: GdbStub::support_breakpoints
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn support_breakpoints(&mut self) -> Option<BreakpointsOps<'_, Self>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: GdbStub::guard_rail_implicit_sw_breakpoints
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn guard_rail_implicit_sw_breakpoints(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Tid::get
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tid
    argTypes:
    - Tid
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 8
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: tid_to_cpuid
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 6
    functionsReached:
    - Tid::get
    linkageType: ''
    returnType: usize
    signature: 'fn tid_to_cpuid(tid: Tid) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Tid::new
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:208,1
    - Dst: get_raw_tid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:208,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: cpuid_to_tid
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 1
    functionsReached:
    - get_raw_tid
    - Tid::new
    - Result::unwrap
    linkageType: ''
    returnType: Tid
    signature: 'fn cpuid_to_tid(cpu_id: usize) -> Tid'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cpu_id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: get_raw_tid
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'pub fn get_raw_tid(cpu_id: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:221,1
    - Dst: tid_to_cpuid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:221,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:224,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:228,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - regs
    - tid
    argTypes:
    - '&mut <Self::Arch as Arch>::Registers'
    - Tid
    constantsTouched: []
    func_position:
      end: 235
      start: 216
    functionDepth: 9
    functionLinenumber: 216
    functionLinenumberEnd: 235
    functionName: GdbStub::read_registers
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - tid_to_cpuid
    - GdbStub::vm_request
    - Err
    - Ok
    linkageType: ''
    returnType: TargetResult
    signature: 'fn read_registers(&mut self,regs: &mut <Self::Arch as Arch>::Registers,tid:
      Tid,) -> TargetResult<(), Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:242,1
    - Dst: GdbRequestPayload::WriteRegs
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:243,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:243,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:243,1
    - Dst: tid_to_cpuid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:244,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:246,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - regs
    - tid
    argTypes:
    - '&<Self::Arch as Arch>::Registers'
    - Tid
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 9
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: GdbStub::write_registers
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - GdbRequestPayload::WriteRegs
    - Result::clone
    - Err
    - Box::new
    - GdbStub::vm_request
    - tid_to_cpuid
    - Ok
    linkageType: ''
    returnType: TargetResult
    signature: 'fn write_registers(&mut self,regs: &<Self::Arch as Arch>::Registers,tid:
      Tid,) -> TargetResult<(), Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:260,1
    - Dst: GdbRequestPayload::ReadMem
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:261,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:261,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:261,1
    - Dst: tid_to_cpuid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:262,1
    - Dst: String::iter_mut
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:265,1
    - Dst: IterMut::zip
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:265,1
    - Dst: u64::iter
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:265,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:268,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:268,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:268,1
    - Dst: u64::len
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:268,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:272,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 3
    argNames:
    - start_addr
    - data
    - tid
    argTypes:
    - <Self::Arch as Arch>::Usize
    - '&mut [u8]'
    - Tid
    constantsTouched: []
    func_position:
      end: 279
      start: 254
    functionDepth: 9
    functionLinenumber: 254
    functionLinenumberEnd: 279
    functionName: GdbStub::read_addrs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - u64::iter
    - std::cmp::min
    - IterMut::zip
    - Err
    - u64::len
    - GdbRequestPayload::ReadMem
    - GdbStub::vm_request
    - tid_to_cpuid
    - String::len
    - String::iter_mut
    - Ok
    linkageType: ''
    returnType: TargetResult
    signature: 'fn read_addrs(&mut self,start_addr: <Self::Arch as Arch>::Usize,data:
      &mut [u8],tid: Tid,) -> TargetResult<usize, Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:287,1
    - Dst: GdbRequestPayload::WriteMem
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:288,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:288,1
    - Dst: String::to_owned
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:288,1
    - Dst: tid_to_cpuid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:289,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:291,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - start_addr
    - data
    - tid
    argTypes:
    - <Self::Arch as Arch>::Usize
    - '&[u8]'
    - Tid
    constantsTouched: []
    func_position:
      end: 297
      start: 281
    functionDepth: 9
    functionLinenumber: 281
    functionLinenumberEnd: 297
    functionName: GdbStub::write_addrs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - GdbRequestPayload::WriteMem
    - Err
    - GdbStub::vm_request
    - String::to_owned
    - tid_to_cpuid
    - Ok
    linkageType: ''
    returnType: TargetResult
    signature: 'fn write_addrs(&mut self,start_addr: <Self::Arch as Arch>::Usize,data:
      &[u8],tid: Tid,) -> TargetResult<(), Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:303,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:305,1
    - Dst: thread_is_active
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:306,1
    - Dst: cpuid_to_tid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:306,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:308,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:310,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - thread_is_active
    argTypes:
    - '&mut dyn FnMut(Tid)'
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 9
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: GdbStub::list_active_threads
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - for_each
    - cpuid_to_tid
    - thread_is_active
    - Err
    - GdbStub::vm_request
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn list_active_threads(&mut self,thread_is_active: &mut dyn FnMut(Tid),)
      -> Result<(), Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: GdbStub::support_resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn support_resume(&mut self) -> Option<MultiThreadResumeOps<'_, Self>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:323,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:324,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 9
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: GdbStub::resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - GdbStub::vm_request
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn resume(&mut self) -> Result<(), Self::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:331,1
    - Dst: GdbRequestPayload::SetSingleStep
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:331,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:336,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 9
    functionLinenumber: 329
    functionLinenumberEnd: 341
    functionName: GdbStub::clear_resume_actions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - GdbRequestPayload::SetSingleStep
    - GdbStub::vm_request
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: fn clear_resume_actions(&mut self) -> Result<(), Self::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: result::Result::is_some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:348,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:349,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:349,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:351,1
    - Dst: tid_to_cpuid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:351,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:352,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - tid
    - signal
    argTypes:
    - Tid
    - Option<Signal>
    constantsTouched: []
    func_position:
      end: 355
      start: 343
    functionDepth: 9
    functionLinenumber: 343
    functionLinenumberEnd: 355
    functionName: GdbStub::set_resume_action_continue
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - Err
    - result::Result::is_some
    - GdbStub::vm_request
    - tid_to_cpuid
    - '&str::to_owned'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_resume_action_continue(&mut self,tid: Tid,signal: Option<Signal>,)
      -> Result<(), Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: GdbStub::support_single_step
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn support_single_step(&mut self) -> Option<MultiThreadSingleStepOps<'_,
      Self>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: result::Result::is_some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:369,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:370,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:370,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:374,1
    - Dst: GdbRequestPayload::SetSingleStep
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:374,1
    - Dst: tid_to_cpuid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:374,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:379,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:383,1
    - Dst: tid_to_cpuid
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:383,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:384,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - tid
    - signal
    argTypes:
    - Tid
    - Option<Signal>
    constantsTouched: []
    func_position:
      end: 387
      start: 364
    functionDepth: 9
    functionLinenumber: 364
    functionLinenumberEnd: 387
    functionName: GdbStub::set_resume_action_step
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - Err
    - result::Result::is_some
    - GdbRequestPayload::SetSingleStep
    - GdbStub::vm_request
    - tid_to_cpuid
    - '&str::to_owned'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_resume_action_step(&mut self,tid: Tid,signal: Option<Signal>,)
      -> Result<(), Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: GdbStub::support_hw_breakpoint
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn support_hw_breakpoint(&mut self) -> Option<HwBreakpointOps<'_, Self>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:404,1
    - Dst: capacity
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:404,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:409,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:412,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:412,1
    - Dst: GdbRequestPayload::SetHwBreakPoint
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:414,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:414,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:415,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:416,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - addr
    - _kind
    argTypes:
    - <Self::Arch as Arch>::Usize
    - <Self::Arch as Arch>::BreakpointKind
    constantsTouched: []
    func_position:
      end: 422
      start: 398
    functionDepth: 9
    functionLinenumber: 398
    functionLinenumberEnd: 422
    functionName: GdbStub::add_hw_breakpoint
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - capacity
    - GdbRequestPayload::SetHwBreakPoint
    - push
    - Err
    - GdbStub::vm_request
    - len
    - clone
    - Ok
    linkageType: ''
    returnType: TargetResult
    signature: 'fn add_hw_breakpoint(&mut self,addr: <Self::Arch as Arch>::Usize,_kind:
      <Self::Arch as Arch>::BreakpointKind,) -> TargetResult<bool, Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:428,1
    - Dst: position
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:428,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:429,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:430,1
    - Dst: GdbRequestPayload::SetHwBreakPoint
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:433,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:433,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:434,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:435,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - addr
    - _kind
    argTypes:
    - <Self::Arch as Arch>::Usize
    - <Self::Arch as Arch>::BreakpointKind
    constantsTouched: []
    func_position:
      end: 441
      start: 423
    functionDepth: 9
    functionLinenumber: 423
    functionLinenumberEnd: 441
    functionName: GdbStub::remove_hw_breakpoint
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - iter
    - remove
    - GdbRequestPayload::SetHwBreakPoint
    - position
    - Err
    - GdbStub::vm_request
    - clone
    - Ok
    linkageType: ''
    returnType: TargetResult
    signature: 'fn remove_hw_breakpoint(&mut self,addr: <Self::Arch as Arch>::Usize,_kind:
      <Self::Arch as Arch>::BreakpointKind,) -> TargetResult<bool, Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:464,1
    - Dst: vm::Result::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:466,1
    - Dst: GdbResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:466,1
    - Dst: run_blocking::WaitForStopReasonError::Target
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:469,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:470,1
    - Dst: MultiThreadStopReason::HwBreak
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:476,1
    - Dst: Tid::new
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:476,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:476,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:478,1
    - Dst: run_blocking::Event::TargetStopped
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:478,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:481,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:482,1
    - Dst: run_blocking::WaitForStopReasonError::Connection
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:482,1
    - Dst: '&mut Self::Connection::peek'
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:487,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:487,1
    - Dst: u64::is_some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:487,1
    - Dst: Self::unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:487,1
    - Dst: '&mut Self::Connection::read'
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:488,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:488,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:491,1
    - Dst: run_blocking::Event::IncomingData
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:491,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 2
    argNames:
    - target
    - conn
    argTypes:
    - '&mut Self::Target'
    - '&mut Self::Connection'
    constantsTouched: []
    func_position:
      end: 494
      start: 451
    functionDepth: 8
    functionLinenumber: 451
    functionLinenumberEnd: 494
    functionName: GdbEventLoop::wait_for_stop_reason
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - MultiThreadStopReason::HwBreak
    - IoResult::map_err
    - Result::unwrap
    - usize::kind
    - Ok
    - run_blocking::WaitForStopReasonError::Target
    - Option::map
    - run_blocking::Event::TargetStopped
    - run_blocking::WaitForStopReasonError::Connection
    - vm::Result::vm_request
    - '&str::to_owned'
    - run_blocking::Event::IncomingData
    - Err
    - read
    - Tid::new
    - '&mut Self::Connection::peek'
    - GdbResult::map_err
    - '&mut Self::Connection::read'
    - Self::unwrap_or
    - u64::is_some
    linkageType: ''
    returnType: Result
    signature: 'fn wait_for_stop_reason(target: &mut Self::Target,conn: &mut Self::Connection,)
      -> Result<run_blocking::Event<Self::StopReason>,run_blocking::WaitForStopReasonError<<Self::Target
      as Target>::Error,<Self::Connection as Connection>::Error,>,>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm::Result::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:499,1
    - Dst: GdbResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:499,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:505,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:505,1
    - Dst: MultiThreadStopReason::Signal
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - target
    argTypes:
    - '&mut Self::Target'
    constantsTouched: []
    func_position:
      end: 506
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 506
    functionName: GdbEventLoop::on_interrupt
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 0
    functionsReached:
    - GdbResult::map_err
    - MultiThreadStopReason::Signal
    - vm::Result::vm_request
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn on_interrupt(target: &mut Self::Target,) -> Result<Option<Self::StopReason>,
      <Self::Target as Target>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnixListener::bind
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:510,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:519,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:528,1
    - Dst: gdbstub::stub::GdbStub::new
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:529,1
    - Dst: run_blocking::<GdbEventLoop>
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:531,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:536,1
    - Dst: GdbRequestPayload::SetSingleStep
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:536,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:541,1
    - Dst: GdbRequestPayload::SetHwBreakPoint
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:541,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:541,1
    - Dst: GdbStub::vm_request
      Src: /src/cloud-hypervisor/vmm/src/gdb.rs:546,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - gdbstub
    - path
    argTypes:
    - GdbStub
    - '&std::path::Path'
    constantsTouched: []
    func_position:
      end: 558
      start: 509
    functionDepth: 8
    functionLinenumber: 509
    functionLinenumberEnd: 558
    functionName: gdb_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/gdb.rs
    functionUses: 1
    functionsReached:
    - std::result::Result::accept
    - GdbRequestPayload::SetHwBreakPoint
    - Vec::new
    - GdbRequestPayload::SetSingleStep
    - UnixListener::bind
    - Box::new
    - GdbStub::vm_request
    - gdbstub::stub::GdbStub::new
    - run_blocking::<GdbEventLoop>
    linkageType: ''
    returnType: void
    signature: 'pub fn gdb_thread(mut gdbstub: GdbStub, path: &std::path::Path)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::strip_prefix'
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:21,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:21,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:24,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:21,1
    - Dst: FdtWriterResult::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:26,1
    - Dst: String::is_dir
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:28,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:29,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:29,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 7
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: url_to_path
    functionSourceFile: /src/cloud-hypervisor/vmm/src/migration.rs
    functionUses: 7
    functionsReached:
    - map
    - ok_or_else
    - '&str::strip_prefix'
    - Err
    - FdtWriterResult::into
    - Ok
    - MigratableError::MigrateSend
    - String::is_dir
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn url_to_path(url: &str) -> std::result::Result<PathBuf, MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::strip_prefix'
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:39,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:39,1
    - Dst: GuestDebuggableError::Coredump
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:42,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:39,1
    - Dst: FdtWriterResult::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:44,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 7
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: url_to_file
    functionSourceFile: /src/cloud-hypervisor/vmm/src/migration.rs
    functionUses: 1
    functionsReached:
    - map
    - ok_or_else
    - FdtWriterResult::into
    - GuestDebuggableError::Coredump
    - '&str::strip_prefix'
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn url_to_file(url: &str) -> std::result::Result<PathBuf, GuestDebuggableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: url_to_path
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:50,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:52,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:56,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:56,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:56,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:56,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:57,1
    - Dst: read_to_end
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:58,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:58,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:60,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:60,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:62,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:62,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:62,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - source_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 8
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: recv_vm_config
    functionSourceFile: /src/cloud-hypervisor/vmm/src/migration.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Vec::new
    - File::open
    - push
    - MigratableError::MigrateReceive
    - url_to_path
    - read_to_end
    - usize::into
    - serde_json::from_slice
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn recv_vm_config(source_url: &str) -> std::result::Result<VmConfig,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: url_to_path
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:66,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:68,1
    - Dst: File::open
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:72,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:72,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:72,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:72,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:73,1
    - Dst: read_to_end
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:74,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:74,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:76,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:76,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:78,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:78,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:78,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - source_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: recv_vm_state
    functionSourceFile: /src/cloud-hypervisor/vmm/src/migration.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Vec::new
    - File::open
    - push
    - MigratableError::MigrateReceive
    - url_to_path
    - read_to_end
    - usize::into
    - serde_json::from_slice
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn recv_vm_state(source_url: &str) -> std::result::Result<Snapshot,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:82,1
    - Dst: MemoryManagerSnapshotData::to_state
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:83,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:86,1
    - Dst: MigratableError::Restore
      Src: /src/cloud-hypervisor/vmm/src/migration.rs:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - '&Snapshot'
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: get_vm_snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/migration.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - MigratableError::Restore
    - MemoryManagerSnapshotData::to_state
    - Err
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn get_vm_snapshot(snapshot: &Snapshot) -> std::result::Result<VmSnapshot,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:218,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:218,1
    - Dst: Result::is_sev_snp_enabled
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:220,1
    - Dst: total_size
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - _value
    argTypes:
    - '&VmConfig'
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: hypervisor::HypervisorVmConfig::from
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Result::is_sev_snp_enabled
    - is_some_and
    - total_size
    linkageType: ''
    returnType: Self
    signature: 'fn from(_value: &VmConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:263,1
    - Dst: EmulationResult::read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 9
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: SocketStream::read
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::read
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:272,1
    - Dst: EmulationResult::write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 9
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: SocketStream::write
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::write
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::flush
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:279,1
    - Dst: EmulationResult::flush
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: SocketStream::flush
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::flush
    linkageType: ''
    returnType: std::io::Result
    signature: fn flush(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:288,1
    - Dst: FdtWriterResult::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: SocketStream::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::read_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:300,1
    - Dst: FdtWriterResult::read_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut VolatileSlice<B>'
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: SocketStream::read_volatile
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::read_volatile
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn read_volatile<B: BitmapSlice>(&mut self,buf: &mut VolatileSlice<B>,)
      -> std::result::Result<usize, VolatileMemoryError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::read_exact_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:310,1
    - Dst: FdtWriterResult::read_exact_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut VolatileSlice<B>'
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: SocketStream::read_exact_volatile
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::read_exact_volatile
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn read_exact_volatile<B: BitmapSlice>(&mut self,buf: &mut VolatileSlice<B>,)
      -> std::result::Result<(), VolatileMemoryError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::write_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:322,1
    - Dst: FdtWriterResult::write_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&VolatileSlice<B>'
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 325
    functionName: SocketStream::write_volatile
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::write_volatile
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_volatile<B: BitmapSlice>(&mut self,buf: &VolatileSlice<B>,)
      -> std::result::Result<usize, VolatileMemoryError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::write_all_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:332,1
    - Dst: FdtWriterResult::write_all_volatile
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&VolatileSlice<B>'
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: SocketStream::write_all_volatile
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - FdtWriterResult::write_all_volatile
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn write_all_volatile<B: BitmapSlice>(&mut self,buf: &VolatileSlice<B>,)
      -> std::result::Result<(), VolatileMemoryError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:344,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:347,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 14
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: EpollContext::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 3
    functionsReached:
    - epoll::create
    - File::from_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: pub fn new() -> result::Result<EpollContext, io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:357,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:358,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:360,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:361,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - fd
    - token
    argTypes:
    - '&T'
    - EpollDispatch
    constantsTouched: []
    func_position:
      end: 365
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 365
    functionName: EpollContext::add_event
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - epoll::ctl
    - epoll::Event::new
    - as_raw_fd
    - Result::as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn add_event<T>(&mut self, fd: &T, token: EpollDispatch) -> result::Result<(),
      io::Error>whereT: AsRawFd,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:377,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:378,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:380,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:381,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - id
    - evts
    argTypes:
    - '&T'
    - u64
    - epoll::Events
    constantsTouched: []
    func_position:
      end: 385
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 385
    functionName: EpollContext::add_event_custom
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - epoll::ctl
    - epoll::Event::new
    - as_raw_fd
    - Result::as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn add_event_custom<T>(&mut self,fd: &T,id: u64,evts: epoll::Events,)
      -> result::Result<(), io::Error>whereT: AsRawFd,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: EpollContext::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:404,1
    - Dst: S::serialize_struct
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:407,1
    - Dst: String::serialize_field
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:408,1
    - Dst: String::serialize_field
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:409,1
    - Dst: String::end
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - serializer
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 411
      start: 400
    functionDepth: 14
    functionLinenumber: 400
    functionLinenumberEnd: 411
    functionName: PciDeviceInfo::serialize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - to_string
    - String::serialize_field
    - S::serialize_struct
    - String::end
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok,
      S::Error>whereS: Serializer,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 441
    functionName: feature_list
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: pub fn feature_list() -> Vec<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:451,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:451,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:454,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:454,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:455,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:454,1
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:458,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:459,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:459,1
    - Dst: inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:459,1
    - Dst: Option::write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:463,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:463,1
    - Dst: Landlock::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:467,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:467,1
    - Dst: restrict_self
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:467,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:467,1
    - Dst: inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:467,1
    - Dst: Option::write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:473,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:473,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:477,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:477,1
    - Dst: recv
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:478,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:479,1
    - Dst: Vec::write_all
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:482,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:482,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:482,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:482,1
    - Dst: Vec::write_all
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:483,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:483,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:486,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:487,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:487,1
    - Dst: std::result::Result::ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:487,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:477,1
    - Dst: Option::write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:493,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:493,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:477,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:497,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:454,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 107
    argCount: 5
    argNames:
    - monitor
    - seccomp_action
    - landlock_enable
    - hypervisor_type
    - exit_event
    argTypes:
    - event_monitor::Monitor
    - '&SeccompAction'
    - bool
    - hypervisor::HypervisorType
    - EventFd
    constantsTouched: []
    func_position:
      end: 500
      start: 443
    functionDepth: 14
    functionLinenumber: 443
    functionLinenumberEnd: 500
    functionName: start_event_monitor_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - Result::name
    - map_err
    - as_ref
    - io::Result::map_err
    - Landlock::new
    - Ok
    - Result::is_empty
    - Arc::new
    - Result::spawn
    - std::panic::AssertUnwindSafe
    - Vec::write_all
    - '&str::to_owned'
    - seccompiler::apply_filter
    - iter
    - seccomp_filters::get_seccomp_filter
    - std::result::Result::ok
    - clone
    - Result::send
    - inspect_err
    - ok
    - std::panic::catch_unwind
    - Result::map_err
    - Option::write
    - restrict_self
    - thread::Builder::new
    - IoResult::ok
    - recv
    - as_bytes
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_event_monitor_thread(mut monitor: event_monitor::Monitor,seccomp_action:
      &SeccompAction,landlock_enable: bool,hypervisor_type: hypervisor::HypervisorType,exit_event:
      EventFd,) -> Result<thread::JoinHandle<Result<()>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::get_guest_debug_hw_bps
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:521,1
    - Dst: std::sync::mpsc::channel
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:523,1
    - Dst: EventFd::try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:525,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:525,1
    - Dst: EventFd::try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:527,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:527,1
    - Dst: EventFd::try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:529,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:529,1
    - Dst: Result::hypervisor_type
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:530,1
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:533,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:533,1
    - Dst: '&SeccompAction::clone'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:536,1
    - Dst: Option::try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:538,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:538,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:539,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:539,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:540,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:539,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:543,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:544,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:544,1
    - Dst: Vmm::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:547,1
    - Dst: Result::setup_signal_handler
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:559,1
    - Dst: Result::control_loop
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:561,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:539,1
    - Dst: api::start_dbus_thread
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:575,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:577,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:577,1
    - Dst: Sender::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:578,1
    - Dst: Option::try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:580,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:580,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:583,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:589,1
    - Dst: api::start_http_path_thread
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:589,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:599,1
    - Dst: api::start_http_fd_thread
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:599,1
    - Dst: gdb::GdbStub::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:614,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:620,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:620,1
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:621,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:620,1
    - Dst: gdb::gdb_thread
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:622,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:620,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:626,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 106
    argCount: 14
    argNames:
    - vmm_version
    - http_path
    - http_fd
    - dbus_options
    - api_event
    - api_sender
    - api_receiver
    - debug_path
    - debug_event
    - vm_debug_event
    - exit_event
    - seccomp_action
    - hypervisor
    - landlock_enable
    argTypes:
    - VmmVersionInfo
    - '&Option<String>'
    - Option<RawFd>
    - Option<DBusApiOptions>
    - EventFd
    - Sender<ApiRequest>
    - Receiver<ApiRequest>
    - Option<PathBuf>
    - EventFd
    - EventFd
    - EventFd
    - '&SeccompAction'
    - Arc<dyn hypervisor::Hypervisor>
    - bool
    constantsTouched: []
    func_position:
      end: 632
      start: 504
    functionDepth: 19
    functionLinenumber: 504
    functionLinenumberEnd: 632
    functionName: start_vmm_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - Result::name
    - map_err
    - io::Result::map_err
    - '&str::to_string'
    - Result::hypervisor_type
    - Ok
    - Result::control_loop
    - '&SeccompAction::clone'
    - EventFd::try_clone
    - api::start_http_fd_thread
    - try_clone
    - std::sync::mpsc::channel
    - Result::get_guest_debug_hw_bps
    - Result::spawn
    - '&str::to_owned'
    - Sender::clone
    - is_empty
    - seccompiler::apply_filter
    - api::start_http_path_thread
    - std::io::Result::map_err
    - gdb::GdbStub::new
    - seccomp_filters::get_seccomp_filter
    - Result::setup_signal_handler
    - Option::try_clone
    - Vmm::new
    - Result::map_err
    - api::start_dbus_thread
    - thread::Builder::new
    - gdb::gdb_thread
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_vmm_thread(vmm_version: VmmVersionInfo,http_path: &Option<String>,http_fd:
      Option<RawFd>,#[cfg(feature = "dbus_api")] dbus_options: Option<DBusApiOptions>,api_event:
      EventFd,api_sender: Sender<ApiRequest>,api_receiver: Receiver<ApiRequest>,#[cfg(feature
      = "guest_debug")] debug_path: Option<PathBuf>,#[cfg(feature = "guest_debug")]
      debug_event: EventFd,#[cfg(feature = "guest_debug")] vm_debug_event: EventFd,exit_event:
      EventFd,seccomp_action: &SeccompAction,hypervisor: Arc<dyn hypervisor::Hypervisor>,landlock_enable:
      bool,) -> Result<VmmThreadHandle>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_owned'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:651,1
    - Dst: u32::to_owned
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - build_version
    - version
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 654
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 654
    functionName: VmmVersionInfo::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 2
    functionsReached:
    - u32::to_owned
    - '&str::to_owned'
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(build_version: &str, version: &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: ReceiveMigrationState::finished
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn finished(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vmm_sys_util::signal::unblock_signal
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:728,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:728,1
    - Dst: io::Result::forever
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:731,1
    - Dst: '&EventFd::write'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:734,1
    - Dst: IoResult::is_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:734,1
    - Dst: '&Mutex<Option<termios>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:736,1
    - Dst: libc::tcsetattr
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:740,1
    - Dst: std::io::stdout
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:740,1
    - Dst: vmm_sys_util::errno::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:740,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:740,1
    - Dst: std::process::exit
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:747,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - signals
    - original_termios_opt
    - exit_evt
    argTypes:
    - Signals
    - '&Mutex<Option<termios>>'
    - '&EventFd'
    constantsTouched: []
    func_position:
      end: 753
      start: 722
    functionDepth: 12
    functionLinenumber: 722
    functionLinenumberEnd: 753
    functionName: Vmm::signal_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - libc::tcsetattr
    - std::process::exit
    - io::Result::forever
    - '&Mutex<Option<termios>>::lock'
    - vmm_sys_util::errno::Result::lock
    - unwrap
    - std::io::stdout
    - as_raw_fd
    - IoResult::is_err
    - '&EventFd::write'
    - vmm_sys_util::signal::unblock_signal
    linkageType: ''
    returnType: void
    signature: 'fn signal_handler(mut signals: Signals,original_termios_opt: &Mutex<Option<termios>>,exit_evt:
      &EventFd,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Signals::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:756,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:759,1
    - Dst: io::Result::handle
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:759,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:760,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:760,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:761,1
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:763,1
    - Dst: hypervisor_type
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:766,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:763,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:769,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:770,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:770,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:771,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:770,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:773,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:773,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:773,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:777,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:777,1
    - Dst: Landlock::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:782,1
    - Dst: restrict_self
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:784,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:784,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:784,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:786,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:786,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:791,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:791,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:796,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:796,1
    - Dst: Vmm::signal_handler
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:797,1
    - Dst: Self::as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:797,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:796,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:801,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:801,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:796,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:770,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:810,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 104
    argCount: 1
    argNames:
    - landlock_enable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 811
      start: 755
    functionDepth: 14
    functionLinenumber: 755
    functionLinenumberEnd: 811
    functionName: Vmm::setup_signal_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Result::name
    - map_err
    - io::Result::map_err
    - push
    - '&str::to_string'
    - Landlock::new
    - Arc::clone
    - Ok
    - try_clone
    - Result::spawn
    - io::Result::handle
    - std::panic::AssertUnwindSafe
    - Self::as_ref
    - is_empty
    - seccompiler::apply_filter
    - Signals::new
    - seccomp_filters::get_seccomp_filter
    - hypervisor_type
    - Vmm::signal_handler
    - ok
    - std::panic::catch_unwind
    - Result::map_err
    - restrict_self
    - thread::Builder::new
    - Some
    - write
    linkageType: ''
    returnType: Result
    signature: 'fn setup_signal_handler(&mut self, landlock_enable: bool) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollContext::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:823,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:823,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:824,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:824,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:825,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:825,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:827,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:827,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:831,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:831,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:835,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:835,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:839,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:839,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:844,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:844,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:848,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:865,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:865,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 7
    argNames:
    - vmm_version
    - api_evt
    - debug_evt
    - vm_debug_evt
    - seccomp_action
    - hypervisor
    - exit_evt
    argTypes:
    - VmmVersionInfo
    - EventFd
    - EventFd
    - EventFd
    - SeccompAction
    - Arc<dyn hypervisor::Hypervisor>
    - EventFd
    constantsTouched: []
    func_position:
      end: 869
      start: 814
    functionDepth: 15
    functionLinenumber: 814
    functionLinenumberEnd: 869
    functionName: Vmm::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 46
    functionsReached:
    - map_err
    - EpollContext::new
    - EventFd::new
    - Arc::new
    - Mutex::new
    - Result::map_err
    - Ok
    - result::Result::map_err
    - add_event
    linkageType: ''
    returnType: Result
    signature: 'fn new(vmm_version: VmmVersionInfo,api_evt: EventFd,#[cfg(feature
      = "guest_debug")] debug_evt: EventFd,#[cfg(feature = "guest_debug")] vm_debug_evt:
      EventFd,seccomp_action: SeccompAction,hypervisor: Arc<dyn hypervisor::Hypervisor>,exit_evt:
      EventFd,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::recv_with_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:877,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:877,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:878,1
    - Dst: Vec::ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:881,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:881,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:881,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:882,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:884,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - socket
    argTypes:
    - '&mut SocketStream'
    constantsTouched: []
    func_position:
      end: 888
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 888
    functionName: Vmm::vm_receive_memory_fd
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::recv_with_fd
    - map_err
    - MigratableError::MigrateReceive
    - Err
    - Vec::ok_or_else
    - u32::from_le_bytes
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn vm_receive_memory_fd(socket: &mut SocketStream,) -> std::result::Result<(u32,
      File), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:904,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:904,1
    - Dst: Vmm::vm_receive_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:913,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:915,1
    - Dst: Self::vm_receive_memory_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:921,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:923,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:924,1
    - Dst: net_gen::ifreq::command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:927,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:929,1
    - Dst: net_gen::ifreq::command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:933,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:934,1
    - Dst: invalid_command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:935,1
    - Dst: net_gen::ifreq::command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:937,1
    - Dst: recv_memory_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:938,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:938,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:938,1
    - Dst: configure_vm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:939,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:939,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:939,1
    - Dst: invalid_command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:940,1
    - Dst: net_gen::ifreq::command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:942,1
    - Dst: recv_memory_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:943,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:943,1
    - Dst: configure_vm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:945,1
    - Dst: HashMap::from_iter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:945,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:945,1
    - Dst: invalid_command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:947,1
    - Dst: net_gen::ifreq::command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:949,1
    - Dst: Vmm::vm_receive_memory
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:951,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:951,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:951,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:952,1
    - Dst: Configured
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:952,1
    - Dst: Vmm::vm_receive_state
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:955,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:955,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:956,1
    - Dst: invalid_command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:958,1
    - Dst: net_gen::ifreq::command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:960,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:964,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:964,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:965,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:966,1
    - Dst: invalid_command
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:968,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 91
    argCount: 4
    argNames:
    - socket
    - state
    - req
    - _receive_data_migration
    argTypes:
    - '&mut SocketStream'
    - ReceiveMigrationState
    - '&Request'
    - '&VmReceiveMigrationData'
    constantsTouched: []
    func_position:
      end: 974
      start: 894
    functionDepth: 18
    functionLinenumber: 894
    functionLinenumberEnd: 974
    functionName: Vmm::vm_receive_migration_step
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - push
    - HashMap::from_iter
    - Ok
    - recv_memory_fd
    - Vmm::vm_receive_memory
    - configure_vm
    - Vec::new
    - Default::default
    - as_mut
    - Vmm::vm_receive_config
    - resume
    - Self::vm_receive_memory_fd
    - invalid_command
    - Err
    - net_gen::ifreq::command
    - unwrap
    - Configured
    - Result::clone
    - Result::lock
    - Vmm::vm_receive_state
    - map
    - MigratableError::MigrateReceive
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn vm_receive_migration_step(&mut self,socket: &mut SocketStream,state:
      ReceiveMigrationState,req: &Request,_receive_data_migration: &VmReceiveMigrationData,)
      -> std::result::Result<ReceiveMigrationState, MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:986,1
    - Dst: String::resize_with
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:987,1
    - Dst: net_gen::ifreq::length
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:987,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:988,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:988,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:993,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:993,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:994,1
    - Dst: Vmm::vm_check_cpuid_compatibility
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:998,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1003,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1004,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1005,1
    - Dst: console_devices::pre_create_console_devices
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1005,1
    - Dst: ConsoleDeviceResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1005,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1006,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1009,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1009,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1009,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1009,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1017,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1017,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1017,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1017,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1018,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1018,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1019,1
    - Dst: Vm::create_hypervisor_vm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1023,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1024,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1025,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1025,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1025,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1025,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1025,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1023,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1028,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1034,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1034,1
    - Dst: max_apic_id
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1034,1
    - Dst: enable_x2apic_api
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1035,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1035,1
    - Dst: vm::physical_bits
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1038,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1039,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1040,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1040,1
    - Dst: MemoryManager::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1043,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1045,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1045,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1045,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1050,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1043,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1054,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1059,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 141
    argCount: 3
    argNames:
    - req
    - socket
    - existing_memory_files
    argTypes:
    - '&Request'
    - '&mut T'
    - HashMap<u32, File>
    constantsTouched: []
    func_position:
      end: 1060
      start: 976
    functionDepth: 17
    functionLinenumber: 976
    functionLinenumberEnd: 1060
    functionName: Vmm::vm_receive_config
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - console_devices::pre_create_console_devices
    - map_err
    - Vmm::vm_check_cpuid_compatibility
    - as_ref
    - apply_landlock
    - max_apic_id
    - Result::unwrap
    - Vec::lock
    - String::resize_with
    - Ok
    - Vec::new
    - Result::read_exact
    - into
    - vm::physical_bits
    - ConsoleDeviceResult::map_err
    - net_gen::ifreq::length
    - lock
    - unwrap
    - result::Result::map_err
    - clone
    - enable_x2apic_api
    - Vm::create_hypervisor_vm
    - MemoryManager::new
    - MigratableError::MigrateReceive
    - Result::map_err
    - serde_json::from_slice
    - Some
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn vm_receive_config<T>(&mut self,req: &Request,socket: &mut T,existing_memory_files:
      HashMap<u32, File>,) -> std::result::Result<Arc<Mutex<MemoryManager>>, MigratableError>whereT:
      Read,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1072,1
    - Dst: String::resize_with
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1073,1
    - Dst: net_gen::ifreq::length
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1073,1
    - Dst: Result::read_exact
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1074,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1074,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1077,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1077,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1078,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1081,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1081,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1082,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1084,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1084,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1085,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1088,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1088,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1089,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1091,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1091,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1092,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1096,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1097,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1097,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1097,1
    - Dst: Vm::new_from_memory_manager
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1098,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1099,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1099,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1107,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1111,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1112,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1113,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1114,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1098,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1117,1
    - Dst: restore
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1121,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1121,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1122,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1124,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 102
    argCount: 3
    argNames:
    - req
    - socket
    - mm
    argTypes:
    - '&Request'
    - '&mut T'
    - Arc<Mutex<MemoryManager>>
    constantsTouched: []
    func_position:
      end: 1127
      start: 1062
    functionDepth: 17
    functionLinenumber: 1062
    functionLinenumberEnd: 1127
    functionName: Vmm::vm_receive_state
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - Result::lock
    - Instant::now
    - net_gen::ifreq::length
    - map_err
    - Vec::new
    - Some
    - Result::read_exact
    - restore
    - MigratableError::MigrateReceive
    - try_clone
    - Result::map_err
    - unwrap
    - Arc::clone
    - Vm::new_from_memory_manager
    - serde_json::from_slice
    - clone
    - String::resize_with
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn vm_receive_state<T>(&mut self,req: &Request,socket: &mut T,mm:
      Arc<Mutex<MemoryManager>>,) -> std::result::Result<(), MigratableError>whereT:
      Read,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryRangeTable::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1139,1
    - Dst: net_gen::ifreq::length
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1139,1
    - Dst: Result::receive_memory_regions
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1142,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - req
    - socket
    - memory_manager
    argTypes:
    - '&Request'
    - '&mut T'
    - '&mut MemoryManager'
    constantsTouched: []
    func_position:
      end: 1144
      start: 1129
    functionDepth: 6
    functionLinenumber: 1129
    functionLinenumberEnd: 1144
    functionName: Vmm::vm_receive_memory
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Result::receive_memory_regions
    - net_gen::ifreq::length
    - MemoryRangeTable::read_from
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn vm_receive_memory<T>(&mut self,req: &Request,socket: &mut T,memory_manager:
      &mut MemoryManager,) -> std::result::Result<(), MigratableError>whereT: Read
      + ReadVolatile,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::strip_prefix'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1147,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1147,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1149,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1147,1
    - Dst: FdtWriterResult::into
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1152
      start: 1146
    functionDepth: 7
    functionLinenumber: 1146
    functionLinenumberEnd: 1152
    functionName: Vmm::socket_url_to_path
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 2
    functionsReached:
    - map
    - ok_or_else
    - '&str::strip_prefix'
    - FdtWriterResult::into
    - MigratableError::MigrateSend
    linkageType: ''
    returnType: result::Result
    signature: 'fn socket_url_to_path(url: &str) -> result::Result<PathBuf, MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::strip_prefix'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1157,1
    - Dst: TcpStream::connect
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1160,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1160,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1161,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1164,1
    - Dst: SocketStream::Tcp
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1164,1
    - Dst: Vmm::socket_url_to_path
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1166,1
    - Dst: UnixStream::connect
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1169,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1169,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1170,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1173,1
    - Dst: SocketStream::Unix
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - destination_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1175
      start: 1154
    functionDepth: 8
    functionLinenumber: 1154
    functionLinenumberEnd: 1175
    functionName: Vmm::send_migration_socket
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - UnixStream::connect
    - TcpStream::connect
    - SocketStream::Unix
    - '&str::strip_prefix'
    - Result::map_err
    - Vmm::socket_url_to_path
    - SocketStream::Tcp
    - MigratableError::MigrateSend
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn send_migration_socket(destination_url: &str,) -> std::result::Result<SocketStream,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::strip_prefix'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1180,1
    - Dst: TcpListener::bind
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1181,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1181,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1182,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1185,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1185,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1186,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1191,1
    - Dst: SocketStream::Tcp
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1191,1
    - Dst: Vmm::socket_url_to_path
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1193,1
    - Dst: UnixListener::bind
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1194,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1194,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1195,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1198,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1198,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1199,1
    - Dst: std::fs::remove_file
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1205,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1205,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1206,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1209,1
    - Dst: SocketStream::Unix
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 1
    argNames:
    - receiver_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1211
      start: 1177
    functionDepth: 8
    functionLinenumber: 1177
    functionLinenumberEnd: 1211
    functionName: Vmm::receive_migration_socket
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - std::result::Result::accept
    - map_err
    - SocketStream::Unix
    - MigratableError::MigrateReceive
    - UnixListener::bind
    - Result::map_err
    - TcpListener::bind
    - Vmm::socket_url_to_path
    - std::fs::remove_file
    - SocketStream::Tcp
    - '&str::strip_prefix'
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn receive_migration_socket(receiver_url: &str,) -> std::result::Result<SocketStream,
      MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirty_log
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1219,1
    - Dst: Result::regions
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1222,1
    - Dst: Vec::is_empty
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1222,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1223,1
    - Dst: Request::memory
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1226,1
    - Dst: Result::length
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1226,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1226,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1226,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1227,1
    - Dst: send_memory_regions
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1229,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1230,1
    - Dst: ok_or_abandon
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1230,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1232,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - vm
    - socket
    argTypes:
    - '&mut Vm'
    - '&mut SocketStream'
    constantsTouched: []
    func_position:
      end: 1236
      start: 1214
    functionDepth: 13
    functionLinenumber: 1214
    functionLinenumberEnd: 1236
    functionName: Vmm::vm_maybe_send_dirty_pages
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Result::regions
    - Request::memory
    - Result::length
    - send_memory_regions
    - Result::write_to
    - dirty_log
    - Response::read_from
    - Vec::is_empty
    - ok_or_abandon
    - Result::unwrap
    - Self::write_to
    - MigratableError::MigrateSend
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_maybe_send_dirty_pages(vm: &mut Vm,socket: &mut SocketStream,)
      -> result::Result<bool, MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::send_migration_socket
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1245,1
    - Dst: Request::start
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1248,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1248,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1249,1
    - Dst: ok_or_abandon
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1249,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1251,1
    - Dst: get_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1255,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1259,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1259,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1259,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1260,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1260,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1265,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1265,1
    - Dst: vm::physical_bits
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1267,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1267,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1267,1
    - Dst: arch::generate_common_cpuid
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1268,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1272,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1272,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1268,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1279,1
    - Dst: send_memory_fds
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1287,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1290,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1290,1
    - Dst: memory_manager_data
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1301,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1303,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1303,1
    - Dst: Request::config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1304,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1304,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1304,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1305,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1305,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1308,1
    - Dst: ok_or_abandon
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1308,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1310,1
    - Dst: start_migration
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1314,1
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1318,1
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1321,1
    - Dst: memory_range_table
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1324,1
    - Dst: Request::memory
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1325,1
    - Dst: Result::length
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1325,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1325,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1325,1
    - Dst: Result::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1328,1
    - Dst: send_memory_regions
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1330,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1331,1
    - Dst: ok_or_abandon
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1331,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1333,1
    - Dst: Self::vm_maybe_send_dirty_pages
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1340,1
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1346,1
    - Dst: Self::vm_maybe_send_dirty_pages
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1349,1
    - Dst: release_disk_locks
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1354,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1354,1
    - Dst: MigratableError::UnlockError
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1355,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1358,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1359,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1359,1
    - Dst: Request::state
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1360,1
    - Dst: MemoryManagerSnapshotData::len
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1360,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1360,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1361,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1361,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1364,1
    - Dst: ok_or_abandon
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1364,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1366,1
    - Dst: Request::complete
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1370,1
    - Dst: Self::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1370,1
    - Dst: Response::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1371,1
    - Dst: ok_or_abandon
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1371,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1373,1
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1378,1
    - Dst: complete_migration
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1384,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 240
    argCount: 3
    argNames:
    - vm
    - hypervisor
    - send_data_migration
    argTypes:
    - '&mut Vm'
    - '&dyn hypervisor::Hypervisor'
    - '&VmSendMigrationData'
    constantsTouched: []
    func_position:
      end: 1385
      start: 1238
    functionDepth: 16
    functionLinenumber: 1238
    functionLinenumberEnd: 1385
    functionName: Vmm::send_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - get_config
    - map_err
    - Request::memory
    - memory_manager_data
    - stop_dirty_log
    - release_disk_locks
    - MigratableError::UnlockError
    - start_migration
    - Request::state
    - snapshot
    - Result::unwrap
    - serde_json::to_vec
    - memory_range_table
    - pause
    - MemoryManagerSnapshotData::len
    - Result::length
    - Result::write_to
    - vm::physical_bits
    - Response::read_from
    - is_tdx_enabled
    - len
    - ok_or_abandon
    - Self::write_to
    - send_memory_fds
    - Self::send_migration_socket
    - std::result::Result::lock
    - super::Result::map_err
    - Err
    - send_memory_regions
    - unwrap
    - Self::vm_maybe_send_dirty_pages
    - start_dirty_log
    - MigratableError::MigrateSend
    - Request::complete
    - Result::write_all
    - arch::generate_common_cpuid
    - complete_migration
    - Request::start
    - Result::map_err
    - Request::config
    linkageType: ''
    returnType: result::Result
    signature: 'fn send_migration(vm: &mut Vm,#[cfg(all(feature = "kvm", target_arch
      = "x86_64"))]hypervisor: &dyn hypervisor::Hypervisor,send_data_migration: &VmSendMigrationData,)
      -> result::Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Arc<Mutex<VmConfig>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1394,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1394,1
    - Dst: is_tdx_enabled
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1394,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1395,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1395,1
    - Dst: '&Arc<Mutex<VmConfig>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1403,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1403,1
    - Dst: vm::physical_bits
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1406,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1406,1
    - Dst: arch::generate_common_cpuid
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1407,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1408,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1407,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1418,1
    - Dst: arch::CpuidFeatureEntry::check_cpuid_compatibility
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1421,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1421,1
    - Dst: MigratableError::MigrateReceive
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - src_vm_config
    - src_vm_cpuid
    argTypes:
    - '&Arc<Mutex<VmConfig>>'
    - '&[hypervisor::arch::x86::CpuIdEntry]'
    constantsTouched: []
    func_position:
      end: 1426
      start: 1388
    functionDepth: 13
    functionLinenumber: 1388
    functionLinenumberEnd: 1426
    functionName: Vmm::vm_check_cpuid_compatibility
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - '&Arc<Mutex<VmConfig>>::lock'
    - as_ref
    - arch::generate_common_cpuid
    - MigratableError::MigrateReceive
    - super::Result::map_err
    - Err
    - arch::CpuidFeatureEntry::check_cpuid_compatibility
    - vm::physical_bits
    - Result::map_err
    - is_tdx_enabled
    - unwrap
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_check_cpuid_compatibility(&self,src_vm_config: &Arc<Mutex<VmConfig>>,src_vm_cpuid:
      &[hypervisor::arch::x86::CpuIdEntry],) -> result::Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1733,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1733,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1734,1
    - Dst: as_path
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1737,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1737,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1738,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1739,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1742,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1744,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1744,1
    - Dst: migration::recv_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1745,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1745,1
    - Dst: RestoreConfig::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1747,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1748,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1748,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1748,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1747,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1753,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1753,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1755,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1756,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1758,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1758,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1758,1
    - Dst: clone_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1759,1
    - Dst: Vmm::vm_restore
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1765,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1765,1
    - Dst: Vmm::vm_delete
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1770,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    argCount: 1
    argNames:
    - restore_cfg
    argTypes:
    - RestoreConfig
    constantsTouched: []
    func_position:
      end: 1776
      start: 1732
    functionDepth: 15
    functionLinenumber: 1732
    functionLinenumberEnd: 1776
    functionName: Vmm::vm_restore
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - std::result::Result::map_err
    - as_ref
    - to_str
    - Arc::new
    - migration::recv_vm_config
    - iter_mut
    - is_some
    - iter
    - Vmm::vm_restore
    - RestoreConfig::validate
    - std::result::Result::lock
    - Err
    - Mutex::new
    - clone_from
    - unwrap
    - result::Result::map_err
    - clone
    - Vmm::vm_delete
    - ValidationResult::map_err
    - is_none
    - as_path
    - Some
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_restore(&mut self, restore_cfg: RestoreConfig) -> result::Result<(),
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1506,1
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1509,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1512,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1522,1
    - Dst: Error::Epoll
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1522,1
    - Dst: bool::iter
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1526,1
    - Dst: impl Iterator::take
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1526,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1527,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1536,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1536,1
    - Dst: Vmm::vmm_shutdown
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1537,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1537,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1544,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1544,1
    - Dst: Vmm::vm_reboot
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1545,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1545,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1549,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1549,1
    - Dst: activate_virtio_devices
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1551,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1551,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1557,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1557,1
    - Dst: '&Receiver<ApiRequest>::recv'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1559,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1559,1
    - Dst: api_request
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1561,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1569,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1569,1
    - Dst: '&Receiver<gdb::GdbRequest>::recv'
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1571,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1571,1
    - Dst: debug_request
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1574,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1576,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1573,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1580,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1580,1
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1593,1
    - Dst: io::Result::close
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1594,1
    - Dst: drain
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1598,1
    - Dst: Vec::join
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1599,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1599,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1602,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 154
    argCount: 2
    argNames:
    - api_receiver
    - gdb_receiver
    argTypes:
    - '&Receiver<ApiRequest>'
    - '&Receiver<gdb::GdbRequest>'
    constantsTouched: []
    func_position:
      end: 1603
      start: 1498
    functionDepth: 18
    functionLinenumber: 1498
    functionLinenumberEnd: 1603
    functionName: Vmm::control_loop
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - epoll::wait
    - activate_virtio_devices
    - debug_request
    - map_err
    - std::result::Result::map_err
    - take
    - Vmm::vm_reboot
    - usize::kind
    - Ok
    - into
    - api_request
    - Vec::join
    - as_raw_fd
    - '&Receiver<gdb::GdbRequest>::recv'
    - bool::iter
    - Vmm::vmm_shutdown
    - '&Receiver<ApiRequest>::recv'
    - Error::Epoll
    - drain
    - Err
    - result::Result::map_err
    - read
    - send
    - io::Result::close
    - Result::map_err
    - impl Iterator::take
    linkageType: ''
    returnType: Result
    signature: 'fn control_loop(&mut self,api_receiver: &Receiver<ApiRequest>,#[cfg(feature
      = "guest_debug")] gdb_receiver: &Receiver<gdb::GdbRequest>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::result::Result::apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1607,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - '&mut VmConfig'
    constantsTouched: []
    func_position:
      end: 1609
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1609
    functionName: apply_landlock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 4
    functionsReached:
    - std::result::Result::apply_landlock
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn apply_landlock(vm_config: &mut VmConfig) -> result::Result<(),
      LandlockError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1615,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1616,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1619,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1619,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1619,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1621,1
    - Dst: console_devices::pre_create_console_devices
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1621,1
    - Dst: ConsoleDeviceResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1621,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1623,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1623,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1626,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1626,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1628,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1628,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1628,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1628,1
    - Dst: apply_landlock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1629,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1629,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - config
    argTypes:
    - Box<VmConfig>
    constantsTouched: []
    func_position:
      end: 1632
      start: 1612
    functionDepth: 17
    functionLinenumber: 1612
    functionLinenumberEnd: 1632
    functionName: Vmm::vm_create
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - is_some
    - console_devices::pre_create_console_devices
    - is_some_and
    - as_ref
    - Arc::new
    - Err
    - Mutex::new
    - lock
    - apply_landlock
    - unwrap
    - ConsoleDeviceResult::map_err
    - result::Result::map_err
    - Some
    - Vec::lock
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_create(&mut self, config: Box<VmConfig>) -> result::Result<(),
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::start
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1635,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1637,1
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1639,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1641,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1642,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1646,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1648,1
    - Dst: console_devices::pre_create_console_devices
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1648,1
    - Dst: ConsoleDeviceResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1648,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1652,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1653,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1653,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1654,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1654,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1656,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1656,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1660,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1660,1
    - Dst: Vm::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1666,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1667,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1673,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1675,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1676,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1677,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1683,1
    - Dst: boot
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1689,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1691,1
    - Dst: tracer::end
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1694,1
    - Dst: u64::is_ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1695,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1696,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1634
    functionDepth: 17
    functionLinenumber: 1634
    functionLinenumberEnd: 1699
    functionName: Vmm::vm_boot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - console_devices::pre_create_console_devices
    - tracer::start
    - u64::is_ok
    - map_err
    - is_none
    - tracer::end
    - event_monitor::event
    - tracer::trace_scoped
    - try_clone
    - Err
    - clone
    - Arc::clone
    - ConsoleDeviceResult::map_err
    - Vm::new
    - Some
    - boot
    linkageType: ''
    returnType: result::Result
    signature: fn vm_boot(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1703,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1703,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1701
    functionDepth: 16
    functionLinenumber: 1701
    functionLinenumberEnd: 1707
    functionName: Vmm::vm_pause
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - pause
    - map_err
    - Err
    linkageType: ''
    returnType: result::Result
    signature: fn vm_pause(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1711,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1711,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1709
    functionDepth: 14
    functionLinenumber: 1709
    functionLinenumberEnd: 1715
    functionName: Vmm::vm_resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - resume
    - map_err
    - Err
    linkageType: ''
    returnType: result::Result
    signature: fn vm_resume(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1720,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1721,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1721,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1721,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1724,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1724,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - destination_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1730
      start: 1717
    functionDepth: 2
    functionLinenumber: 1717
    functionLinenumberEnd: 1730
    functionName: Vmm::vm_snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - Err
    - take
    - and_then
    - snapshot
    - send
    - ApiResult::map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_snapshot(&mut self, destination_url: &str) -> result::Result<(),
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: coredump
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1781,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1781,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - destination_url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1785
      start: 1779
    functionDepth: 16
    functionLinenumber: 1779
    functionLinenumberEnd: 1785
    functionName: Vmm::vm_coredump
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - coredump
    - map_err
    - Err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_coredump(&mut self, destination_url: &str) -> result::Result<(),
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1788,1
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1790,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1791,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1793,1
    - Dst: u64::is_ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1796,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1787
    functionDepth: 16
    functionLinenumber: 1787
    functionLinenumberEnd: 1801
    functionName: Vmm::vm_shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - u64::is_ok
    - event_monitor::event
    - Err
    - take
    - shutdown
    linkageType: ''
    returnType: result::Result
    signature: fn vm_shutdown(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1804,1
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1807,1
    - Dst: get_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1808,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1809,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1812,1
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1817,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1819,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1819,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1820,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1820,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1822,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1822,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1826,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1826,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1834,1
    - Dst: is_ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1834,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1839,1
    - Dst: console_devices::pre_create_console_devices
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1839,1
    - Dst: ConsoleDeviceResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1839,1
    - Dst: Vm::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1842,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1849,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1851,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1852,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1853,1
    - Dst: boot
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1860,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1862,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1864,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1866,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1803
    functionDepth: 17
    functionLinenumber: 1803
    functionLinenumberEnd: 1867
    functionName: Vmm::vm_reboot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - get_config
    - is_ok
    - console_devices::pre_create_console_devices
    - map_err
    - event_monitor::event
    - try_clone
    - Err
    - take
    - clone
    - Arc::clone
    - ConsoleDeviceResult::map_err
    - read
    - Vm::new
    - shutdown
    - Some
    - boot
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn vm_reboot(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_state
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1873,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1876,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1876,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1876,1
    - Dst: total_size
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1878,1
    - Dst: balloon_size
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1880,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1883,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1883,1
    - Dst: device_tree
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1886,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1886,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1886,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1886,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1888,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1889,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1869
    functionDepth: 12
    functionLinenumber: 1869
    functionLinenumberEnd: 1897
    functionName: Vmm::vm_info
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - map
    - balloon_size
    - as_ref
    - std::result::Result::lock
    - Err
    - get_state
    - lock
    - Box::new
    - device_tree
    - unwrap
    - Ok
    - clone
    - total_size
    linkageType: ''
    returnType: result::Result
    signature: fn vm_info(&self) -> result::Result<VmInfoResponse, VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1903,1
    - Dst: std::process::id
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1908,1
    - Dst: feature_list
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1911
    functionName: Vmm::vmm_ping
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - std::process::id
    - feature_list
    - clone
    linkageType: ''
    returnType: VmmPingResponse
    signature: fn vmm_ping(&self) -> VmmPingResponse
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1914,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1915,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1919,1
    - Dst: Vmm::vm_shutdown
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1920,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1925,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1913
    functionDepth: 17
    functionLinenumber: 1913
    functionLinenumberEnd: 1928
    functionName: Vmm::vm_delete
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 2
    functionsReached:
    - is_some
    - is_none
    - event_monitor::event
    - Vmm::vm_shutdown
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn vm_delete(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vmm::vm_delete
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1931,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1932,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1930
    functionDepth: 18
    functionLinenumber: 1930
    functionLinenumberEnd: 1934
    functionName: Vmm::vmm_shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 1
    functionsReached:
    - event_monitor::event
    - Vmm::vm_delete
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn vmm_shutdown(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1942,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1942,1
    - Dst: resize
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1945,1
    - Dst: inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1945,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1947,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1949,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1949,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1949,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1949,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1961,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 3
    argNames:
    - desired_vcpus
    - desired_ram
    - desired_balloon
    argTypes:
    - Option<u32>
    - Option<u64>
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 1963
      start: 1936
    functionDepth: 16
    functionLinenumber: 1936
    functionLinenumberEnd: 1963
    functionName: Vmm::vm_resize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - resize
    - as_ref
    - inspect_err
    - lock
    - unwrap
    - ok_or
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_resize(&mut self,desired_vcpus: Option<u32>,desired_ram: Option<u64>,desired_balloon:
      Option<u64>,) -> result::Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1966,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1966,1
    - Dst: resize_disk
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1969,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - id
    - desired_size
    argTypes:
    - String
    - u64
    constantsTouched: []
    func_position:
      end: 1973
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 1973
    functionName: Vmm::vm_resize_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - ok_or
    - resize_disk
    - Err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_resize_disk(&mut self, id: String, desired_size: u64) -> result::Result<(),
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1976,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1976,1
    - Dst: resize_zone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1979,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1979,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1981,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1984,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1984,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1984,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1984,1
    - Dst: Result::iter_mut
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1987,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1990,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:1996,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 2
    argNames:
    - id
    - desired_ram
    argTypes:
    - String
    - u64
    constantsTouched: []
    func_position:
      end: 1998
      start: 1975
    functionDepth: 13
    functionLinenumber: 1975
    functionLinenumberEnd: 1998
    functionName: Vmm::vm_resize_zone
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Result::iter_mut
    - Err
    - lock
    - unwrap
    - ok_or
    - resize_zone
    - ApiResult::inspect_err
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_resize_zone(&mut self, id: String, desired_ram: u64) -> result::Result<(),
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2004,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2004,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2008,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2008,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2008,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2008,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2008,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2009,1
    - Dst: DeviceConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2009,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2010,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2010,1
    - Dst: add_device
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2014,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2014,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2017,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2017,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2017,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2022,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2022,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2022,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2022,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2023,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2024,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - DeviceConfig
    constantsTouched: []
    func_position:
      end: 2026
      start: 2000
    functionDepth: 13
    functionLinenumber: 2000
    functionLinenumberEnd: 2026
    functionName: Vmm::vm_add_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - config::add_to_config
    - map_err
    - as_ref
    - add_device
    - Vec::validate
    - DeviceConfig::clone
    - lock
    - Ok
    - unwrap
    - ok_or
    - clone
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_device(&mut self,device_cfg: DeviceConfig,) -> result::Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2032,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2032,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2036,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2036,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2036,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2036,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2036,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2037,1
    - Dst: UserDeviceConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2037,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2038,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2038,1
    - Dst: add_user_device
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2042,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2042,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2045,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2045,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2045,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2050,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2050,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2050,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2050,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2051,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2052,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - UserDeviceConfig
    constantsTouched: []
    func_position:
      end: 2054
      start: 2028
    functionDepth: 13
    functionLinenumber: 2028
    functionLinenumberEnd: 2054
    functionName: Vmm::vm_add_user_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - config::add_to_config
    - map_err
    - as_ref
    - Vec::validate
    - add_user_device
    - lock
    - Ok
    - unwrap
    - UserDeviceConfig::clone
    - ok_or
    - clone
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_user_device(&mut self,device_cfg: UserDeviceConfig,) ->
      result::Result<Option<Vec<u8>>, VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remove_device
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2058,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2058,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2060,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2062,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2062,1
    - Dst: Vec::remove_device
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2063,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2064,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2066,1
    - Dst: VmError::NoDeviceToRemove
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2066,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - id
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 2071
      start: 2056
    functionDepth: 13
    functionLinenumber: 2056
    functionLinenumberEnd: 2071
    functionName: Vmm::vm_remove_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - remove_device
    - Err
    - ApiResult::inspect_err
    - VmError::NoDeviceToRemove
    - unwrap
    - Vec::remove_device
    - Vec::lock
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_remove_device(&mut self, id: String) -> result::Result<(), VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2074,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2074,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2078,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2078,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2078,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2078,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2078,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2079,1
    - Dst: DiskConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2079,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2080,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2080,1
    - Dst: add_disk
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2084,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2084,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2087,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2087,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2087,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2092,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2092,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2092,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2092,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2093,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - disk_cfg
    argTypes:
    - DiskConfig
    constantsTouched: []
    func_position:
      end: 2096
      start: 2073
    functionDepth: 13
    functionLinenumber: 2073
    functionLinenumberEnd: 2096
    functionName: Vmm::vm_add_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - config::add_to_config
    - DiskConfig::clone
    - map_err
    - as_ref
    - Vec::validate
    - lock
    - add_disk
    - Ok
    - unwrap
    - ok_or
    - clone
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_disk(&mut self, disk_cfg: DiskConfig) -> result::Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2099,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2099,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2103,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2103,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2103,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2103,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2103,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2104,1
    - Dst: FsConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2104,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2105,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2105,1
    - Dst: add_fs
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2109,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2109,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2112,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2112,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2112,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2117,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2117,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2117,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2117,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2118,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - fs_cfg
    argTypes:
    - FsConfig
    constantsTouched: []
    func_position:
      end: 2121
      start: 2098
    functionDepth: 13
    functionLinenumber: 2098
    functionLinenumberEnd: 2121
    functionName: Vmm::vm_add_fs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - FsConfig::clone
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - config::add_to_config
    - map_err
    - as_ref
    - Vec::validate
    - add_fs
    - lock
    - Ok
    - unwrap
    - ok_or
    - clone
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_fs(&mut self, fs_cfg: FsConfig) -> result::Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2124,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2124,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2128,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2128,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2128,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2128,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2128,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2129,1
    - Dst: PmemConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2129,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2130,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2130,1
    - Dst: add_pmem
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2134,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2134,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2137,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2137,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2137,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2142,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2142,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2142,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2142,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2143,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - pmem_cfg
    argTypes:
    - PmemConfig
    constantsTouched: []
    func_position:
      end: 2146
      start: 2123
    functionDepth: 13
    functionLinenumber: 2123
    functionLinenumberEnd: 2146
    functionName: Vmm::vm_add_pmem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - config::add_to_config
    - add_pmem
    - map_err
    - as_ref
    - PmemConfig::clone
    - Vec::validate
    - lock
    - Ok
    - unwrap
    - ok_or
    - clone
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_pmem(&mut self, pmem_cfg: PmemConfig) -> result::Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2149,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2149,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2153,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2153,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2153,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2153,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2153,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2154,1
    - Dst: NetConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2154,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2155,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2155,1
    - Dst: add_net
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2159,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2159,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2162,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2162,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2162,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2167,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2167,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2167,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2167,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2168,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - net_cfg
    argTypes:
    - NetConfig
    constantsTouched: []
    func_position:
      end: 2171
      start: 2148
    functionDepth: 13
    functionLinenumber: 2148
    functionLinenumberEnd: 2171
    functionName: Vmm::vm_add_net
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - config::add_to_config
    - map_err
    - as_ref
    - NetConfig::clone
    - Vec::validate
    - lock
    - add_net
    - unwrap
    - Ok
    - ok_or
    - clone
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_net(&mut self, net_cfg: NetConfig) -> result::Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2174,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2174,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2178,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2178,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2178,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2178,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2178,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2179,1
    - Dst: VdpaConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2179,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2180,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2180,1
    - Dst: add_vdpa
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2184,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2184,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2187,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2187,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2187,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2192,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2192,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2192,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2192,1
    - Dst: config::add_to_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2193,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - vdpa_cfg
    argTypes:
    - VdpaConfig
    constantsTouched: []
    func_position:
      end: 2196
      start: 2173
    functionDepth: 13
    functionLinenumber: 2173
    functionLinenumberEnd: 2196
    functionName: Vmm::vm_add_vdpa
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - config::add_to_config
    - map_err
    - as_ref
    - Vec::validate
    - VdpaConfig::clone
    - lock
    - Ok
    - unwrap
    - add_vdpa
    - ok_or
    - clone
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_vdpa(&mut self, vdpa_cfg: VdpaConfig) -> result::Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2199,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2199,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2203,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2203,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2203,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2203,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2203,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2205,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2206,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2209,1
    - Dst: VsockConfig::clone
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2209,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2210,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2210,1
    - Dst: add_vsock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2214,1
    - Dst: ApiResult::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2214,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2217,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2217,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2217,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2222,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2222,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2222,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2222,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2223,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 69
    argCount: 1
    argNames:
    - vsock_cfg
    argTypes:
    - VsockConfig
    constantsTouched: []
    func_position:
      end: 2226
      start: 2198
    functionDepth: 13
    functionLinenumber: 2198
    functionLinenumberEnd: 2226
    functionName: Vmm::vm_add_vsock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - is_some
    - serde_json::to_vec
    - map
    - ValidationResult::map_err
    - VsockConfig::clone
    - map_err
    - as_ref
    - Some
    - Vec::validate
    - Err
    - lock
    - Ok
    - unwrap
    - ok_or
    - clone
    - add_vsock
    - ApiResult::inspect_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_add_vsock(&mut self, vsock_cfg: VsockConfig) -> result::Result<Option<Vec<u8>>,
      VmError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: counters
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2230,1
    - Dst: Counters::inspect_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2230,1
    - Dst: serde_json::to_vec
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2233,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2233,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2233,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2228
    functionDepth: 8
    functionLinenumber: 2228
    functionLinenumberEnd: 2239
    functionName: Vmm::vm_counters
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - map
    - map_err
    - Counters::inspect_err
    - Err
    - serde_json::to_vec
    - counters
    linkageType: ''
    returnType: result::Result
    signature: fn vm_counters(&mut self) -> result::Result<Option<Vec<u8>>, VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: power_button
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2243,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2241
    functionDepth: 16
    functionLinenumber: 2241
    functionLinenumberEnd: 2247
    functionName: Vmm::vm_power_button
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - power_button
    - Err
    linkageType: ''
    returnType: result::Result
    signature: fn vm_power_button(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nmi
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2251,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2249
    functionDepth: 16
    functionLinenumber: 2249
    functionLinenumberEnd: 2255
    functionName: Vmm::vm_nmi
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Err
    - nmi
    linkageType: ''
    returnType: result::Result
    signature: fn vm_nmi(&mut self) -> result::Result<(), VmError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vmm::receive_migration_socket
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2267,1
    - Dst: String::finished
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2271,1
    - Dst: Request::read_from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2272,1
    - Dst: Vmm::vm_receive_migration_step
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2275,1
    - Dst: Response::ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2281,1
    - Dst: Response::error
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2288,1
    - Dst: ApiResult::write_to
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2294,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 1
    argNames:
    - receive_data_migration
    argTypes:
    - VmReceiveMigrationData
    constantsTouched: []
    func_position:
      end: 2303
      start: 2257
    functionDepth: 19
    functionLinenumber: 2257
    functionLinenumberEnd: 2303
    functionName: Vmm::vm_receive_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - ApiResult::write_to
    - Vmm::receive_migration_socket
    - Vmm::vm_receive_migration_step
    - String::finished
    - Ok
    - Response::error
    - Request::read_from
    - Response::ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_receive_migration(&mut self,receive_data_migration: VmReceiveMigrationData,)
      -> result::Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2314,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2314,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2314,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2314,1
    - Dst: backed_by_shared_memory
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2314,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2323,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2323,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2328,1
    - Dst: Self::send_migration
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2329,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2332,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2329,1
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2340,1
    - Dst: get_state
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2345,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2345,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2346,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2355,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2355,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2356,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2361,1
    - Dst: MigratableError::MigrateSend
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 65
    argCount: 1
    argNames:
    - send_data_migration
    argTypes:
    - VmSendMigrationData
    constantsTouched: []
    func_position:
      end: 2363
      start: 2305
    functionDepth: 13
    functionLinenumber: 2305
    functionLinenumberEnd: 2363
    functionName: Vmm::vm_send_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - backed_by_shared_memory
    - Self::send_migration
    - map_err
    - as_ref
    - as_mut
    - stop_dirty_log
    - Err
    - lock
    - resume
    - unwrap
    - Result::unwrap
    - ApiResult::map_err
    - write
    - MigratableError::MigrateSend
    - get_state
    linkageType: ''
    returnType: result::Result
    signature: 'fn vm_send_migration(&mut self,send_data_migration: VmSendMigrationData,)
      -> result::Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vmm::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2381,1
    - Dst: VmmVersionInfo::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2382,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2383,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2383,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2385,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2385,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2387,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2387,1
    - Dst: hypervisor::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2389,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2389,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2390,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2390,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2380
    functionDepth: 16
    functionLinenumber: 2380
    functionLinenumberEnd: 2393
    functionName: unit_tests::create_dummy_vmm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - Vmm::new
    - VmmVersionInfo::new
    - EventFd::new
    - hypervisor::new
    - Result::unwrap
    linkageType: ''
    returnType: Vmm
    signature: fn create_dummy_vmm() -> Vmm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2396,1
    - Dst: CpuFeatures::default
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2404,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2420,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2421,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2421,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2436,1
    - Dst: DebugConsoleConfig::default
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2395
    functionDepth: 5
    functionLinenumber: 2395
    functionLinenumberEnd: 2478
    functionName: unit_tests::create_dummy_vm_config
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - PathBuf::from
    - Box::new
    - CpuFeatures::default
    - Some
    - DebugConsoleConfig::default
    linkageType: ''
    returnType: Box
    signature: fn create_dummy_vm_config() -> Box<VmConfig>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2482,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2481
    functionDepth: 17
    functionLinenumber: 2481
    functionLinenumberEnd: 2490
    functionName: unit_tests::test_vmm_vm_create
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - create_dummy_vmm
    - create_dummy_vm_config
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2494,1
    - Dst: DeviceConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2495,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2495,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2502,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2493
    functionDepth: 17
    functionLinenumber: 2493
    functionLinenumberEnd: 2537
    functionName: unit_tests::test_vmm_vm_cold_add_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - DeviceConfig::parse
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_device()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2541,1
    - Dst: UserDeviceConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2543,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2543,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2550,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2540
    functionDepth: 17
    functionLinenumber: 2540
    functionLinenumberEnd: 2589
    functionName: unit_tests::test_vmm_vm_cold_add_user_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - UserDeviceConfig::parse
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_user_device()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2593,1
    - Dst: DiskConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2594,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2594,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2601,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2592
    functionDepth: 17
    functionLinenumber: 2592
    functionLinenumberEnd: 2636
    functionName: unit_tests::test_vmm_vm_cold_add_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - DiskConfig::parse
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_disk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2640,1
    - Dst: FsConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2641,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2641,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2648,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2639
    functionDepth: 17
    functionLinenumber: 2639
    functionLinenumberEnd: 2675
    functionName: unit_tests::test_vmm_vm_cold_add_fs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - FsConfig::parse
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_fs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2679,1
    - Dst: PmemConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2680,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2680,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2687,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2678
    functionDepth: 17
    functionLinenumber: 2678
    functionLinenumberEnd: 2722
    functionName: unit_tests::test_vmm_vm_cold_add_pmem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - PmemConfig::parse
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_pmem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2726,1
    - Dst: NetConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2727,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2727,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2737,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2725
    functionDepth: 17
    functionLinenumber: 2725
    functionLinenumberEnd: 2772
    functionName: unit_tests::test_vmm_vm_cold_add_net
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - NetConfig::parse
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_net()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2776,1
    - Dst: VdpaConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2777,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2777,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2784,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2775
    functionDepth: 17
    functionLinenumber: 2775
    functionLinenumberEnd: 2819
    functionName: unit_tests::test_vmm_vm_cold_add_vdpa
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - Result::unwrap
    - VdpaConfig::parse
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_vdpa()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_dummy_vmm
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2823,1
    - Dst: VsockConfig::parse
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2824,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2824,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2831,1
    - Dst: create_dummy_vm_config
      Src: /src/cloud-hypervisor/vmm/src/lib.rs:2831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2822
    functionDepth: 17
    functionLinenumber: 2822
    functionLinenumberEnd: 2854
    functionName: unit_tests::test_vmm_vm_cold_add_vsock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/lib.rs
    functionUses: 0
    functionsReached:
    - VsockConfig::parse
    - create_dummy_vmm
    - Result::vm_create
    - create_dummy_vm_config
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_vmm_vm_cold_add_vsock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 695
    functionName: Console::need_resize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: bool
    signature: pub fn need_resize(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:698,1
    - Dst: update_console_size
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 701
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 701
    functionName: Console::update_console_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - update_console_size
    linkageType: ''
    returnType: void
    signature: pub fn update_console_size(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:726,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:726,1
    - Dst: free_io_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:726,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:729,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:731,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:731,1
    - Dst: allocate_io_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:731,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:734,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:734,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:731,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:735,1
    - Dst: update_range
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:738,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:738,1
    - Dst: Arc::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:751,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:751,1
    - Dst: base
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:751,1
    - Dst: Arc::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:752,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:752,1
    - Dst: end
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:752,1
    - Dst: Arc::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:755,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:755,1
    - Dst: free
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:755,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:758,1
    - Dst: Arc::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:760,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:760,1
    - Dst: allocate
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:760,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:763,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:763,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:763,1
    - Dst: ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:760,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:764,1
    - Dst: update_range
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:771,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:771,1
    - Dst: '&mut dyn PciDevice::id'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:778,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:779,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:779,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:779,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:781,1
    - Dst: PciBarRegionType::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:783,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:793,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:793,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:798,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:798,1
    - Dst: '&mut dyn PciDevice::as_any_mut'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:804,1
    - Dst: downcast_ref::<VirtioPciDevice>
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:805,1
    - Dst: config_bar_addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:806,1
    - Dst: ioeventfds
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:808,1
    - Dst: IoEventAddress::Mmio
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:809,1
    - Dst: unregister_ioevent
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:810,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:810,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:811,1
    - Dst: ioeventfds
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:814,1
    - Dst: IoEventAddress::Mmio
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:815,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:816,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:816,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:819,1
    - Dst: virtio_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:823,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:824,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:824,1
    - Dst: get_shm_regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:825,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:826,1
    - Dst: remove_user_memory_region
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:831,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:835,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:836,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:831,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:841,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:847,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:851,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:852,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:847,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:857,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:864,1
    - Dst: set_shm_regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:865,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:865,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:866,1
    - Dst: '&mut dyn PciDevice::move_bar'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:872,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 242
    argCount: 5
    argNames:
    - old_base
    - new_base
    - len
    - pci_dev
    - region_type
    argTypes:
    - u64
    - u64
    - u64
    - '&mut dyn PciDevice'
    - PciBarRegionType
    constantsTouched: []
    func_position:
      end: 873
      start: 715
    functionDepth: 13
    functionLinenumber: 715
    functionLinenumberEnd: 873
    functionName: AddressManager::move_bar
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - '&mut dyn PciDevice::id'
    - map_err
    - register_ioevent
    - '&mut dyn PciDevice::as_any_mut'
    - free
    - end
    - remove_user_memory_region
    - allocate_io_addresses
    - free_io_addresses
    - IoEventAddress::Mmio
    - Arc::lock
    - get_shm_regions
    - virtio_device
    - update_range
    - '&mut dyn PciDevice::move_bar'
    - downcast_ref::<VirtioPciDevice>
    - len
    - set_shm_regions
    - iter_mut
    - raw_value
    - as_ptr
    - vm_memory::GuestAddress
    - ok_or_else
    - base
    - Err
    - lock
    - create_user_memory_region
    - unwrap
    - unregister_ioevent
    - config_bar_addr
    - ioeventfds
    - PciBarRegionType::from
    - get_mut
    - io::Error::other
    - allocate
    - Some
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn move_bar(&self,old_base: u64,new_base: u64,len: u64,pci_dev: &mut
      dyn PciDevice,region_type: PciBarRegionType,) -> std::result::Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:891,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:891,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 894
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 894
    functionName: PtyPair::clone
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - try_clone
    - unwrap
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 930
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 930
    functionName: SevSnpPageAccessProxy::fmt
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vm
    argTypes:
    - Arc<dyn hypervisor::Vm>
    constantsTouched: []
    func_position:
      end: 937
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 937
    functionName: SevSnpPageAccessProxy::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SevSnpPageAccessProxy
    signature: 'fn new(vm: Arc<dyn hypervisor::Vm>) -> SevSnpPageAccessProxy'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - base
    - _size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 944
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 944
    functionName: SevSnpPageAccessProxy::translate_gpa
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn translate_gpa(&self, base: u64, _size: u64) -> std::result::Result<u64,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gain_page_access
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:947,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:947,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - base
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 951
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 951
    functionName: SevSnpPageAccessProxy::translate_gva
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - gain_page_access
    - map_err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn translate_gva(&self, base: u64, size: u64) -> std::result::Result<u64,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u32]::iter'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1124,1
    - Dst: impl Iterator::sum
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1124,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1135,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1135,1
    - Dst: AddressAllocator::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1136,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1136,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1136,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 5
    argNames:
    - start
    - end
    - num_pci_segments
    - weights
    - alignment
    argTypes:
    - u64
    - u64
    - u16
    - '&[u32]'
    - u64
    constantsTouched: []
    func_position:
      end: 1143
      start: 1117
    functionDepth: 9
    functionLinenumber: 1117
    functionLinenumberEnd: 1143
    functionName: create_mmio_allocators
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - vm_memory::GuestAddress
    - Option::unwrap
    - AddressAllocator::new
    - Arc::new
    - Mutex::new
    - Vec::push
    - '&[u32]::iter'
    - impl Iterator::sum
    linkageType: ''
    returnType: Vec
    signature: 'fn create_mmio_allocators(start: u64,end: u64,num_pci_segments: u16,weights:
      &[u32],alignment: u64,) -> Vec<Arc<Mutex<AddressAllocator>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1165,1
    - Dst: ApiResult::as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1167,1
    - Dst: ApiResult::to_state
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1168,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1168,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1170,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1170,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1170,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1174,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1174,1
    - Dst: DeviceTree::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1174,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1174,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1178,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1178,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1178,1
    - Dst: std::iter::repeat_n
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1185,1
    - Dst: u16::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1185,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1185,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1187,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1187,1
    - Dst: u16::iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1188,1
    - Dst: create_mmio_allocators
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1196,1
    - Dst: std::iter::repeat_n
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1205,1
    - Dst: u16::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1205,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1205,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1207,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1207,1
    - Dst: u16::iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1208,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1214,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1214,1
    - Dst: start_of_device_area
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1214,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1215,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1215,1
    - Dst: end_of_device_area
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1215,1
    - Dst: create_mmio_allocators
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1216,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1224,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1225,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1225,1
    - Dst: allocator
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1225,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1228,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1229,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1241,1
    - Dst: MsiInterruptManager::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1241,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1242,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1246,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1246,1
    - Dst: allocate_platform_mmio_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1246,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1246,1
    - Dst: PciSegment::reserve_legacy_interrupts_for_pci_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1254,1
    - Dst: u16::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1267,1
    - Dst: PciSegment::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1267,1
    - Dst: numa_node_id_from_pci_segment_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1269,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1271,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1272,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1278,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1278,1
    - Dst: allocate_platform_mmio_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1278,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1278,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1285,1
    - Dst: Arc<Mutex<CpuManager>>::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1288,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1285,1
    - Dst: Arc<Mutex<CpuManager>>::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1294,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1294,1
    - Dst: set_acpi_address
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1294,1
    - Dst: HashMap::<String, Arc<RateLimiterGroup>>::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1297,1
    - Dst: Vec::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1298,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1298,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1298,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1301,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1302,1
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1303,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1306,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1309,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1303,1
    - Dst: EventFd::try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1314,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1314,1
    - Dst: start_thread
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1316,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1316,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1317,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1318,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1318,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1323,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1324,1
    - Dst: Console::default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1324,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1327,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1332,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1334,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1348,1
    - Dst: '&EventFd::try_clone'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1352,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1352,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1359,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1359,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1360,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1372,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1372,1
    - Dst: Vec::default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1372,1
    - Dst: AcpiPlatformAddresses::default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1373,1
    - Dst: ApiResult::cloned
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1374,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1376,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1376,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1376,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1383,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1383,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1385,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1388,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1385,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1394,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 279
    argCount: 16
    argNames:
    - io_bus
    - mmio_bus
    - vm
    - config
    - memory_manager
    - cpu_manager
    - exit_evt
    - reset_evt
    - seccomp_action
    - numa_nodes
    - activate_evt
    - force_iommu
    - boot_id_list
    - timestamp
    - snapshot
    - dynamic
    argTypes:
    - Arc<Bus>
    - Arc<Bus>
    - Arc<dyn hypervisor::Vm>
    - Arc<Mutex<VmConfig>>
    - Arc<Mutex<MemoryManager>>
    - Arc<Mutex<CpuManager>>
    - EventFd
    - EventFd
    - SeccompAction
    - NumaNodes
    - '&EventFd'
    - bool
    - BTreeSet<String>
    - Instant
    - Option<&Snapshot>
    - bool
    constantsTouched: []
    func_position:
      end: 1395
      start: 1147
    functionDepth: 15
    functionLinenumber: 1147
    functionLinenumberEnd: 1395
    functionName: DeviceManager::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - HashMap::new
    - map_err
    - ApiResult::as_ref
    - as_ref
    - ApiResult::cloned
    - allocator
    - std::iter::repeat_n
    - Result::unwrap
    - ok_or
    - Arc::clone
    - Vec::lock
    - Arc<Mutex<CpuManager>>::lock
    - start_of_device_area
    - Console::default
    - Ok
    - insert
    - PciSegment::reserve_legacy_interrupts_for_pci_devices
    - end_of_device_area
    - ApiResult::to_state
    - EventFd::try_clone
    - Vec::new
    - Arc::new
    - u16::push
    - set_acpi_address
    - start_thread
    - numa_node_id_from_pci_segment_id
    - Arc<Mutex<CpuManager>>::clone
    - tracer::trace_scoped
    - std::io::Result::map_err
    - Mutex::new
    - u16::iter
    - lock
    - unwrap
    - result::Result::map_err
    - '&EventFd::try_clone'
    - HashMap::<String, Arc<RateLimiterGroup>>::new
    - allocate_platform_mmio_addresses
    - DeviceTree::new
    - clone
    - std::num::Wrapping
    - Vec::default
    - unwrap_or
    - Result::lock
    - unwrap_or_default
    - MsiInterruptManager::new
    - create_mmio_allocators
    - u16::into
    - RateLimiterGroup::new
    - PciSegment::new
    - AcpiPlatformAddresses::default
    - Result::insert
    - collect
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn new(io_bus: Arc<Bus>,mmio_bus: Arc<Bus>,vm: Arc<dyn hypervisor::Vm>,config:
      Arc<Mutex<VmConfig>>,memory_manager: Arc<Mutex<MemoryManager>>,cpu_manager:
      Arc<Mutex<CpuManager>>,exit_evt: EventFd,reset_evt: EventFd,seccomp_action:
      SeccompAction,numa_nodes: NumaNodes,activate_evt: &EventFd,force_iommu: bool,boot_id_list:
      BTreeSet<String>,#[cfg(not(target_arch = "riscv64"))] timestamp: Instant,snapshot:
      Option<&Snapshot>,dynamic: bool,) -> DeviceManagerResult<Arc<Mutex<Self>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1397
    functionDepth: 3
    functionLinenumber: 1397
    functionLinenumberEnd: 1399
    functionName: DeviceManager::console_resize_pipe
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Option
    signature: pub fn console_resize_pipe(&self) -> Option<Arc<File>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::add_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1401
    functionDepth: 11
    functionLinenumber: 1401
    functionLinenumberEnd: 1405
    functionName: DeviceManager::create_interrupt_controller
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::add_interrupt_controller
    linkageType: ''
    returnType: DeviceManagerResult
    signature: pub fn create_interrupt_controller(&mut self,) -> DeviceManagerResult<Arc<Mutex<dyn
      InterruptController>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1415,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1417,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1417,1
    - Dst: set_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1417,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1420,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1426,1
    - Dst: LegacyUserspaceInterruptManager::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1426,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1426,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1431,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1431,1
    - Dst: acpi_address
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1431,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1432,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1435,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1432,1
    - Dst: DeviceManager::add_legacy_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1444,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1445,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1445,1
    - Dst: DeviceManager::add_legacy_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1451,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1451,1
    - Dst: DeviceManager::add_acpi_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1454,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1455,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1456,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1456,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1459,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1459,1
    - Dst: DeviceManager::add_console_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1467,1
    - Dst: Result::as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1468,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1474,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1474,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1474,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1474,1
    - Dst: DeviceManager::add_tpm_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1475,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1476,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1477,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1479,1
    - Dst: DeviceManager::make_virtio_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1481,1
    - Dst: DeviceManager::add_pci_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1482,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1487,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1487,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1487,1
    - Dst: DeviceManager::make_pvmemcontrol_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1489,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1491,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1495,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1495,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1495,1
    - Dst: DeviceManager::add_pvpanic_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1496,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1500,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1500,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1500,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1500,1
    - Dst: DeviceManager::add_ivshmem_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1501,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1504,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 178
    argCount: 4
    argNames:
    - console_info
    - console_resize_pipe
    - original_termios_opt
    - interrupt_controller
    argTypes:
    - Option<ConsoleInfo>
    - Option<Arc<File>>
    - Arc<Mutex<Option<termios>>>
    - Arc<Mutex<dyn InterruptController>>
    constantsTouched: []
    func_position:
      end: 1505
      start: 1408
    functionDepth: 16
    functionLinenumber: 1408
    functionLinenumberEnd: 1505
    functionName: DeviceManager::create_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::make_virtio_devices
    - map_err
    - as_ref
    - push
    - DeviceManager::add_legacy_devices
    - Arc::clone
    - Ok
    - DeviceManager::add_tpm_device
    - insert
    - DeviceManager::make_pvmemcontrol_device
    - DeviceManager::add_pvpanic_device
    - Arc::new
    - try_clone
    - DeviceManager::add_ivshmem_device
    - Result::as_ref
    - acpi_address
    - is_some
    - DeviceManager::add_acpi_devices
    - tracer::trace_scoped
    - lock
    - unwrap
    - clone
    - DeviceManager::add_pci_devices
    - DeviceManager::add_console_devices
    - LegacyUserspaceInterruptManager::new
    - set_interrupt_controller
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn create_devices(&mut self,console_info: Option<ConsoleInfo>,console_resize_pipe:
      Option<Arc<File>>,original_termios_opt: Arc<Mutex<Option<termios>>>,interrupt_controller:
      Arc<Mutex<dyn InterruptController>>,) -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1509,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1509,1
    - Dst: devices::legacy::FwCfg::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1509,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1510,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1510,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1510,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1510,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1513,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1513,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1515,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1516,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1519,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1519,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1528,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1530,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1528,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1533,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1533,1
    - Dst: allocate_irq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1533,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1533,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1541,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1542,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1508
    functionDepth: 13
    functionLinenumber: 1508
    functionLinenumberEnd: 1551
    functionName: DeviceManager::create_fw_cfg_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - insert
    - map_err
    - as_ref
    - Arc::new
    - push
    - '&str::to_string'
    - clone
    - Mutex::new
    - lock
    - allocate_irq
    - unwrap
    - Arc::clone
    - guest_memory
    - devices::legacy::FwCfg::new
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn create_fw_cfg_device(&mut self) -> Result<(), DeviceManagerError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1555,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1555,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1553
    functionDepth: 13
    functionLinenumber: 1553
    functionLinenumberEnd: 1558
    functionName: DeviceManager::state
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - lock
    - clone
    - unwrap
    linkageType: ''
    returnType: DeviceManagerState
    signature: fn state(&self) -> DeviceManagerState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1563,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1563,1
    - Dst: gic::Gic::create_default_config
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1564,1
    - Dst: String::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1564,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1572,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1572,1
    - Dst: aia::Aia::create_default_config
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1573,1
    - Dst: String::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1560
    functionDepth: 13
    functionLinenumber: 1560
    functionLinenumberEnd: 1582
    functionName: DeviceManager::get_msi_iova_space
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - gic::Gic::create_default_config
    - aia::Aia::create_default_config
    - lock
    - unwrap
    - String::into
    linkageType: ''
    returnType: (u64, u64)
    signature: fn get_msi_iova_space(&mut self) -> (u64, u64)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1588
    functionName: DeviceManager::get_device_info
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&HashMap'
    signature: pub fn get_device_info(&self) -> &HashMap<(DeviceType, String), MmioDeviceInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1592,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1595,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1595,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1601,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1601,1
    - Dst: virtio_devices::Iommu::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1602,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1603,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1604,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1605,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1605,1
    - Dst: DeviceManager::get_msi_iova_space
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1608,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1610,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1610,1
    - Dst: Self::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1610,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1610,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1602,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1614,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1614,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1615,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1615,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1616,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1621,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1621,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1621,1
    - Dst: Self::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1624,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1624,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1626,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1631,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1633,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1635,1
    - Dst: DeviceManager::add_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1640,1
    - Dst: '&Option::push'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1649,1
    - Dst: DeviceManager::add_vfio_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1653,1
    - Dst: '&Option::append'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1654,1
    - Dst: DeviceManager::add_user_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1656,1
    - Dst: '&Option::append'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1657,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1660,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1660,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1660,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1661,1
    - Dst: PciBdf::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1665,1
    - Dst: '&Option::contains'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1666,1
    - Dst: '&Option::push'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1667,1
    - Dst: DeviceManager::add_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1674,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1675,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1681,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1682,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1683,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1686,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1687,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1690,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 172
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1591
    functionDepth: 17
    functionLinenumber: 1591
    functionLinenumberEnd: 1691
    functionName: DeviceManager::add_pci_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - '&Option::contains'
    - map_err
    - as_ref
    - io::Result::map_err
    - push
    - Self::as_str
    - DeviceManager::add_virtio_pci_device
    - virtio_devices::Iommu::new
    - Arc::clone
    - String::from
    - Ok
    - insert
    - Vec::new
    - Arc::new
    - try_clone
    - '&Option::push'
    - Self::clone
    - vm_migration::state_from_id
    - lock
    - Mutex::new
    - unwrap
    - clone
    - DeviceManager::add_vfio_devices
    - PciBdf::new
    - DeviceManager::add_user_devices
    - device_node
    - Result::map_err
    - '&Option::append'
    - DeviceManager::get_msi_iova_space
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn add_pci_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1787,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1789,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1789,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1789,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1789,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1792,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1792,1
    - Dst: ioapic::Ioapic::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1793,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1794,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1796,1
    - Dst: String::as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1797,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1793,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1802,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1802,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1804,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1806,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1804,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1809,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1810,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1815,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1815,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1815,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1818,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1818,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1784
    functionDepth: 10
    functionLinenumber: 1784
    functionLinenumberEnd: 1821
    functionName: DeviceManager::add_interrupt_controller
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - push
    - Arc::clone
    - String::from
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - ioapic::Ioapic::new
    - vm_migration::state_from_id
    - Mutex::new
    - lock
    - unwrap
    - clone
    - String::as_ref
    - device_node
    - Result::map_err
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn add_interrupt_controller(&mut self,) -> DeviceManagerResult<Arc<Mutex<dyn
      InterruptController>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1781
    functionName: DeviceManager::get_interrupt_controller
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn get_interrupt_controller(&mut self) -> Option<&Arc<Mutex<aia::Aia>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1829,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1829,1
    - Dst: vcpus_kill_signalled
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1829,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1829,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1835,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1835,1
    - Dst: devices::AcpiShutdownDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1835,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1841,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1842,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1848,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1848,1
    - Dst: allocate_io_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1848,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1852,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1852,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1852,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1848,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1855,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1857,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1855,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1861,1
    - Dst: GenericAddress::io_port_address::<u8>
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1861,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1863,1
    - Dst: GenericAddress::io_port_address::<u8>
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1863,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1865,1
    - Dst: GenericAddress::io_port_address::<u8>
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1865,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1868,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1868,1
    - Dst: allocate_irq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1868,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1868,1
    - Dst: '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>::create_group'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1875,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1875,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1880,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1880,1
    - Dst: allocate_platform_mmio_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1880,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1880,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1891,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1891,1
    - Dst: devices::AcpiGedDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1891,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1896,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1899,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1896,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1904,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1905,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1907,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1907,1
    - Dst: devices::AcpiPmTimerDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1907,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1909,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1910,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1916,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1916,1
    - Dst: allocate_io_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1916,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1920,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1920,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1920,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1916,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1923,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1925,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1923,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1929,1
    - Dst: GenericAddress::io_port_address::<u32>
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1929,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1932,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:1932,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 160
    argCount: 3
    argNames:
    - interrupt_manager
    - reset_evt
    - exit_evt
    argTypes:
    - '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>'
    - EventFd
    - EventFd
    constantsTouched: []
    func_position:
      end: 1933
      start: 1823
    functionDepth: 13
    functionLinenumber: 1823
    functionLinenumberEnd: 1933
    functionName: DeviceManager::add_acpi_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - push
    - ok_or
    - Arc::clone
    - Ok
    - insert
    - devices::AcpiShutdownDevice::new
    - Arc::new
    - GenericAddress::io_port_address::<u8>
    - devices::AcpiGedDevice::new
    - into
    - devices::AcpiPmTimerDevice::new
    - GenericAddress::io_port_address::<u32>
    - vcpus_kill_signalled
    - vm_memory::GuestAddress
    - lock
    - Mutex::new
    - allocate_irq
    - unwrap
    - Result::clone
    - allocate_platform_mmio_addresses
    - clone
    - '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>::create_group'
    - Result::map_err
    - allocate_io_addresses
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_acpi_devices(&mut self,interrupt_manager: &dyn InterruptManager<GroupConfig
      = LegacyIrqGroupConfig>,reset_evt: EventFd,exit_evt: EventFd,) -> DeviceManagerResult<Option<Arc<Mutex<devices::AcpiGedDevice>>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2014,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2014,1
    - Dst: allocate_irq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2014,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2014,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2022,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2022,1
    - Dst: devices::legacy::Rtc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2022,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2024,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2025,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2029,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2029,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2034,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2035,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2044,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2045,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2045,1
    - Dst: allocate_irq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2045,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2045,1
    - Dst: '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>::create_group'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2053,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2053,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2059,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2059,1
    - Dst: devices::legacy::Gpio::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2059,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2060,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2062,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2062,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2062,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2062,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2066,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2067,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2071,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2073,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2071,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2076,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2076,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2078,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2079,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2087,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2087,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2087,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2090,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2090,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 115
    argCount: 1
    argNames:
    - interrupt_manager
    argTypes:
    - '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>'
    constantsTouched: []
    func_position:
      end: 2093
      start: 2009
    functionDepth: 13
    functionLinenumber: 2009
    functionLinenumberEnd: 2093
    functionName: DeviceManager::add_legacy_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - push
    - '&str::to_string'
    - devices::legacy::Rtc::new
    - String::from
    - Arc::clone
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - devices::legacy::Gpio::new
    - vm_migration::state_from_id
    - lock
    - allocate_irq
    - Mutex::new
    - unwrap
    - Result::clone
    - '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>::create_group'
    - device_node
    - Result::map_err
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_legacy_devices(&mut self,interrupt_manager: &dyn InterruptManager<GroupConfig
      = LegacyIrqGroupConfig>,) -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2100,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2101,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2101,1
    - Dst: DebugConsole::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2101,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2102,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2106,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2106,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2106,1
    - Dst: map_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2106,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2115,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2116,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2118,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2118,1
    - Dst: allocate_io_addresses
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2118,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2122,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2122,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2118,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2125,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2127,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2125,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2133,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2133,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2133,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2136,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2136,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 61
    argCount: 1
    argNames:
    - debug_console_writer
    argTypes:
    - Box<dyn io::Write + Send>
    constantsTouched: []
    func_position:
      end: 2139
      start: 2096
    functionDepth: 13
    functionLinenumber: 2096
    functionLinenumberEnd: 2139
    functionName: DeviceManager::add_debug_console_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_or
    - map_err
    - push
    - ok_or
    - Arc::clone
    - String::from
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - vm_memory::GuestAddress
    - Mutex::new
    - lock
    - unwrap
    - clone
    - device_node
    - DebugConsole::new
    - allocate_io_addresses
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_debug_console_device(&mut self,debug_console_writer: Box<dyn
      io::Write + Send>,) -> DeviceManagerResult<Arc<Mutex<DebugConsole>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2262,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2264,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2264,1
    - Dst: allocate_irq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2264,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2264,1
    - Dst: '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>::create_group'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2272,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2272,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2278,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2278,1
    - Dst: Serial::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2278,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2279,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2282,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2282,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2282,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2282,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2286,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2287,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2291,1
    - Dst: Vec::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2293,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2291,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2296,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2297,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2305,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2311,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2311,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2311,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2314,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2314,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 74
    argCount: 2
    argNames:
    - interrupt_manager
    - serial_writer
    argTypes:
    - '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>'
    - Option<Box<dyn io::Write + Send>>
    constantsTouched: []
    func_position:
      end: 2317
      start: 2257
    functionDepth: 13
    functionLinenumber: 2257
    functionLinenumberEnd: 2317
    functionName: DeviceManager::add_serial_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - push
    - Vec::clone
    - to_string
    - Arc::clone
    - String::from
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - vm_migration::state_from_id
    - lock
    - allocate_irq
    - Mutex::new
    - unwrap
    - Serial::new
    - '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>::create_group'
    - device_node
    - Result::map_err
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_serial_device(&mut self,interrupt_manager: &dyn InterruptManager<GroupConfig
      = LegacyIrqGroupConfig>,serial_writer: Option<Box<dyn io::Write + Send>>,) ->
      DeviceManagerResult<Arc<Mutex<Serial>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2324,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2324,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2324,1
    - Dst: Endpoint::File
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2326,1
    - Dst: Endpoint::PtyPair
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2329,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2329,1
    - Dst: Vec::try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2329,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2329,1
    - Dst: vmm_sys_util::errno::Result::is_terminal
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2332,1
    - Dst: libc::isatty
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2338,1
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2340,1
    - Dst: vmm_sys_util::errno::errno_result
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2342,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2342,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2346,1
    - Dst: Endpoint::FilePair
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2347,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2347,1
    - Dst: Endpoint::File
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2349,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2353,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2356,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2358,1
    - Dst: virtio_devices::Console::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2360,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2361,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2363,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2363,1
    - Dst: Result::try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2365,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2365,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2367,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2368,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2368,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2371,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2371,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2371,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2371,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2360,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2375,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2375,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2376,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2377,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2380,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2388,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2388,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2388,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2391,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2391,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2394,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 113
    argCount: 2
    argNames:
    - console_fd
    - resize_pipe
    argTypes:
    - ConsoleOutput
    - Option<Arc<File>>
    constantsTouched: []
    func_position:
      end: 2399
      start: 2319
    functionDepth: 13
    functionLinenumber: 2319
    functionLinenumberEnd: 2399
    functionName: DeviceManager::add_virtio_console_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - libc::dup
    - map_err
    - virtio_devices::Console::new
    - as_ref
    - Result::try_clone
    - File::from_raw_fd
    - Self::map_err
    - push
    - Endpoint::File
    - String::from
    - Arc::clone
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - try_clone
    - vmm_sys_util::errno::errno_result
    - libc::isatty
    - Vec::try_clone
    - Endpoint::FilePair
    - std::io::Result::unwrap
    - vm_migration::state_from_id
    - Err
    - lock
    - Mutex::new
    - unwrap
    - clone
    - map
    - vmm_sys_util::errno::Result::is_terminal
    - Endpoint::PtyPair
    - device_node
    - Result::map_err
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_virtio_console_device(&mut self,console_fd: ConsoleOutput,resize_pipe:
      Option<Arc<File>>,) -> DeviceManagerResult<Option<Arc<virtio_devices::ConsoleResizer>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2412,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2412,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2412,1
    - Dst: Option<ConsoleInfo>::is_none
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2413,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2414,1
    - Dst: Option<ConsoleInfo>::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2418,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2422,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2422,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2422,1
    - Dst: DeviceManager::add_serial_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2431,1
    - Dst: SerialManager::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2434,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2434,1
    - Dst: start_thread
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2441,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2443,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2443,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2441,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2448,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2448,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2461,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2461,1
    - Dst: DeviceManager::add_debug_console_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2468,1
    - Dst: DeviceManager::add_virtio_console_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2473,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2475,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2475,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 72
    argCount: 3
    argNames:
    - interrupt_manager
    - console_info
    - console_resize_pipe
    argTypes:
    - '&dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>'
    - Option<ConsoleInfo>
    - Option<Arc<File>>
    constantsTouched: []
    func_position:
      end: 2476
      start: 2406
    functionDepth: 15
    functionLinenumber: 2406
    functionLinenumberEnd: 2476
    functionName: DeviceManager::add_console_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Option<ConsoleInfo>::unwrap
    - DeviceManager::add_virtio_console_device
    - SerialManager::new
    - Arc::clone
    - Ok
    - DeviceManager::add_debug_console_device
    - Arc::new
    - try_clone
    - DeviceManager::add_serial_device
    - start_thread
    - Err
    - lock
    - Box::new
    - unwrap
    - clone
    - Option<ConsoleInfo>::is_none
    - Result::map_err
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_console_devices(&mut self,interrupt_manager: &dyn InterruptManager<GroupConfig
      = LegacyIrqGroupConfig>,console_info: Option<ConsoleInfo>,console_resize_pipe:
      Option<Arc<File>>,) -> DeviceManagerResult<Arc<Console>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: devices::tpm::Tpm::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2484,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2484,1
    - Dst: DeviceManagerError::CreateTpmDevice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2485,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2487,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2487,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2490,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2493,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2490,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - tpm_path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 2500
      start: 2479
    functionDepth: 8
    functionLinenumber: 2479
    functionLinenumberEnd: 2500
    functionName: DeviceManager::add_tpm_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - insert
    - map_err
    - Arc::new
    - DeviceManagerError::CreateTpmDevice
    - Mutex::new
    - Result::map_err
    - devices::tpm::Tpm::new
    - clone
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_tpm_device(&mut self,tpm_path: &Path,) -> DeviceManagerResult<Arc<Mutex<devices::tpm::Tpm>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2509,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2509,1
    - Dst: try_lock_image
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2510,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2510,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2507
    functionDepth: 13
    functionLinenumber: 2507
    functionLinenumberEnd: 2514
    functionName: DeviceManager::try_lock_disks
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - map_err
    - lock
    - try_lock_image
    - unwrap
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: pub fn try_lock_disks(&self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2524,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2524,1
    - Dst: unlock_image
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2525,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2525,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2522
    functionDepth: 13
    functionLinenumber: 2522
    functionLinenumberEnd: 2529
    functionName: DeviceManager::release_disk_locks
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - unlock_image
    - map_err
    - lock
    - unwrap
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: pub fn release_disk_locks(&self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::make_virtio_block_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2533,1
    - Dst: DeviceManager::make_virtio_net_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2534,1
    - Dst: DeviceManager::make_virtio_rng_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2535,1
    - Dst: DeviceManager::make_virtio_fs_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2538,1
    - Dst: DeviceManager::make_virtio_pmem_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2541,1
    - Dst: DeviceManager::make_virtio_vsock_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2544,1
    - Dst: DeviceManager::make_virtio_mem_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2546,1
    - Dst: DeviceManager::make_virtio_balloon_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2549,1
    - Dst: DeviceManager::make_virtio_watchdog_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2552,1
    - Dst: DeviceManager::make_vdpa_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2555,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2557,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2531
    functionDepth: 17
    functionLinenumber: 2531
    functionLinenumberEnd: 2558
    functionName: DeviceManager::make_virtio_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - DeviceManager::make_virtio_balloon_devices
    - DeviceManager::make_virtio_pmem_devices
    - DeviceManager::make_virtio_fs_devices
    - DeviceManager::make_virtio_vsock_devices
    - DeviceManager::make_virtio_rng_devices
    - DeviceManager::make_virtio_net_devices
    - DeviceManager::make_virtio_watchdog_devices
    - DeviceManager::make_virtio_block_devices
    - DeviceManager::make_vdpa_devices
    - DeviceManager::make_virtio_mem_devices
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: block::block_aio_is_supported
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2566,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2569
    functionName: DeviceManager::aio_is_supported
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - Some
    - block::block_aio_is_supported
    linkageType: ''
    returnType: bool
    signature: fn aio_is_supported(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: block::block_io_uring_is_supported
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2577,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2572
    functionDepth: 6
    functionLinenumber: 2572
    functionLinenumberEnd: 2580
    functionName: DeviceManager::io_uring_is_supported
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - block::block_io_uring_is_supported
    - Some
    linkageType: ''
    returnType: bool
    signature: fn io_uring_is_supported(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2598,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2600,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2601,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2601,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2611,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2611,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2611,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2617,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2617,1
    - Dst: virtio_devices::vhost_user::Blk::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2618,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2619,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2621,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2622,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2622,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2626,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2626,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2626,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2626,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2631,1
    - Dst: DeviceManagerError::CreateVhostUserBlk
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2631,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2637,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2641,1
    - Dst: read
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2642,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2643,1
    - Dst: custom_flags
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2645,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2648,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2650,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2650,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2650,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2648,1
    - Dst: block::detect_image_type
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2658,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2658,1
    - Dst: DeviceManager::io_uring_is_supported
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2666,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2674,1
    - Dst: FixedVhdDiskAsync::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2675,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2675,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2681,1
    - Dst: FixedVhdDiskSync::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2682,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2682,1
    - Dst: DeviceManager::io_uring_is_supported
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2692,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2700,1
    - Dst: RawFileDisk::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2700,1
    - Dst: DeviceManager::aio_is_supported
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2702,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2704,1
    - Dst: RawFileDiskAio::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2704,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2707,1
    - Dst: RawFileDiskSync::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2707,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2712,1
    - Dst: QcowDiskSync::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2713,1
    - Dst: QcowResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2713,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2719,1
    - Dst: VhdxDiskSync::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2720,1
    - Dst: VhdxResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2720,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2727,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2730,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2731,1
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2732,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2733,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2733,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2735,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2738,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2732,1
    - Dst: start_thread
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2743,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2745,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2745,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2743,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2751,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2751,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2752,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2753,1
    - Dst: cloned
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2753,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2758,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2759,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2759,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2761,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2759,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2764,1
    - Dst: virtio_devices::Block::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2767,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2768,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2770,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2770,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2770,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2779,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2780,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2782,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2782,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2785,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2785,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2785,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2785,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2767,1
    - Dst: try_lock_image
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2796,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2796,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2801,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2801,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2803,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2803,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2806,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2814,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2814,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2814,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2817,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2817,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2819,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 310
    argCount: 2
    argNames:
    - disk_cfg
    - is_hotplug
    argTypes:
    - '&mut DiskConfig'
    - bool
    constantsTouched: []
    func_position:
      end: 2826
      start: 2592
    functionDepth: 15
    functionLinenumber: 2592
    functionLinenumberEnd: 2826
    functionName: DeviceManager::make_virtio_block_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - DeviceManagerError::CreateVhostUserBlk
    - map_err
    - Self::map_err
    - as_ref
    - virtio_devices::vhost_user::Blk::new
    - push
    - DeviceManager::next_device_name
    - QcowDiskSync::new
    - ok_or
    - custom_flags
    - Arc::clone
    - QcowResult::map_err
    - Ok
    - virtio_devices::Block::new
    - OpenOptions::new
    - insert
    - block::detect_image_type
    - FixedVhdDiskSync::new
    - Arc::new
    - u32::clone
    - try_clone
    - RawFileDisk::new
    - try_lock_image
    - get
    - DeviceManager::aio_is_supported
    - RawFileDiskSync::new
    - VhdxResult::map_err
    - iter
    - impl Iterator::map
    - start_thread
    - std::io::Result::map_err
    - VhdxDiskSync::new
    - vm_migration::state_from_id
    - Err
    - Mutex::new
    - lock
    - Box::new
    - unwrap
    - RawFileDiskAio::new
    - read
    - result::Result::map_err
    - cloned
    - DeviceManager::io_uring_is_supported
    - Self::collect
    - clone
    - unwrap_or
    - unwrap_or_default
    - open
    - device_node
    - Result::map_err
    - BTreeMap::new
    - RateLimiterGroup::new
    - FixedVhdDiskAsync::new
    - Some
    - u32::as_str
    - write
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn make_virtio_block_device(&mut self,disk_cfg: &mut DiskConfig,is_hotplug:
      bool,) -> DeviceManagerResult<MetaVirtioDevice>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2829,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2829,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2829,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2831,1
    - Dst: DeviceManager::make_virtio_block_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2832,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2833,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2836,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2836,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2828
    functionDepth: 16
    functionLinenumber: 2828
    functionLinenumberEnd: 2839
    functionName: DeviceManager::make_virtio_block_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - push
    - lock
    - Ok
    - unwrap
    - DeviceManager::make_virtio_block_device
    - clone
    - iter_mut
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_block_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2846,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2848,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2849,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2849,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2855,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2855,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2855,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2865,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2865,1
    - Dst: virtio_devices::vhost_user::Net::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2866,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2867,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2872,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2873,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2873,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2877,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2877,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2877,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2877,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2885,1
    - Dst: DeviceManagerError::CreateVhostUserNet
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2885,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2891,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2895,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2895,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2895,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2895,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2898,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2898,1
    - Dst: virtio_devices::Net::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2899,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2900,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2901,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2904,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2910,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2912,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2912,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2899,1
    - Dst: virtio_devices::Net::from_tap_fds
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2923,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2924,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2926,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2930,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2932,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2932,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2923,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2944,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2944,1
    - Dst: add_preserved_fds
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2944,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2944,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2947,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2947,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2949,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2949,1
    - Dst: virtio_devices::Net::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2950,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2951,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2955,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2961,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2963,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2963,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2950,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2976,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2984,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2984,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2984,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2987,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2987,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:2989,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 207
    argCount: 1
    argNames:
    - net_cfg
    argTypes:
    - '&mut NetConfig'
    constantsTouched: []
    func_position:
      end: 2996
      start: 2841
    functionDepth: 14
    functionLinenumber: 2841
    functionLinenumberEnd: 2996
    functionName: DeviceManager::make_virtio_net_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - map_err
    - as_ref
    - virtio_devices::vhost_user::Net::new
    - DeviceManager::next_device_name
    - virtio_devices::Net::new
    - Arc::clone
    - Ok
    - insert
    - virtio_devices::Net::from_tap_fds
    - Arc::new
    - u32::clone
    - try_clone
    - DeviceManagerError::CreateVhostUserNet
    - add_preserved_fds
    - vm_migration::state_from_id
    - Err
    - Mutex::new
    - lock
    - unwrap
    - Result::clone
    - clone
    - device_node
    - Result::map_err
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn make_virtio_net_device(&mut self,net_cfg: &mut NetConfig,) -> DeviceManagerResult<MetaVirtioDevice>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3000,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3000,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3000,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3002,1
    - Dst: DeviceManager::make_virtio_net_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3003,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3004,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3007,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3007,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 2999
    functionDepth: 13
    functionLinenumber: 2999
    functionLinenumberEnd: 3010
    functionName: DeviceManager::make_virtio_net_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - push
    - lock
    - Ok
    - DeviceManager::make_virtio_net_device
    - unwrap
    - clone
    - iter_mut
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_net_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3014,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3014,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3014,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3015,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3017,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3019,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3019,1
    - Dst: virtio_devices::Rng::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3020,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3021,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3024,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3025,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3025,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3028,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3028,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3028,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3028,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3020,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3033,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3034,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3037,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3045,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3045,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3045,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3048,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3048,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 3012
    functionDepth: 13
    functionLinenumber: 3012
    functionLinenumberEnd: 3052
    functionName: DeviceManager::make_virtio_rng_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - io::Result::map_err
    - push
    - to_str
    - virtio_devices::Rng::new
    - Arc::clone
    - String::from
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - try_clone
    - vm_migration::state_from_id
    - lock
    - Mutex::new
    - unwrap
    - clone
    - device_node
    - Result::map_err
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_rng_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3059,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3061,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3062,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3062,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3068,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3070,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3071,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3071,1
    - Dst: virtio_devices::vhost_user::Fs::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3072,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3073,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3079,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3080,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3080,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3084,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3084,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3084,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3084,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3072,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3091,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3091,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3092,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3092,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3092,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3092,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3094,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3095,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 75
    argCount: 1
    argNames:
    - fs_cfg
    argTypes:
    - '&mut FsConfig'
    constantsTouched: []
    func_position:
      end: 3105
      start: 3054
    functionDepth: 14
    functionLinenumber: 3054
    functionLinenumberEnd: 3105
    functionName: DeviceManager::make_virtio_fs_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - map_err
    - as_ref
    - DeviceManager::next_device_name
    - to_str
    - Arc::clone
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - try_clone
    - vm_migration::state_from_id
    - Err
    - Mutex::new
    - lock
    - unwrap
    - clone
    - device_node
    - Result::map_err
    - virtio_devices::vhost_user::Fs::new
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn make_virtio_fs_device(&mut self,fs_cfg: &mut FsConfig,) -> DeviceManagerResult<MetaVirtioDevice>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3108,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3108,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3108,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3110,1
    - Dst: DeviceManager::make_virtio_fs_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3111,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3112,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3115,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3115,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3118
      start: 3107
    functionDepth: 13
    functionLinenumber: 3107
    functionLinenumberEnd: 3118
    functionName: DeviceManager::make_virtio_fs_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - DeviceManager::make_virtio_fs_device
    - push
    - lock
    - Ok
    - unwrap
    - clone
    - iter_mut
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_fs_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3125,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3127,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3128,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3128,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3134,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3138,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3138,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3138,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3142,1
    - Dst: None::is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3145,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3146,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3149,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3157,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3158,1
    - Dst: is_dir
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3166,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3167,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3168,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3175,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3175,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3175,1
    - Dst: IoResult::custom_flags
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3175,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3175,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3175,1
    - Dst: Vec::set_len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3184,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3184,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3189,1
    - Dst: SeekFrom::End
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3189,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3189,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3194,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3200,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3200,1
    - Dst: allocate
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3200,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3205,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3205,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3207,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3200,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3215,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3215,1
    - Dst: allocate
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3215,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3219,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3215,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3222,1
    - Dst: Vec::try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3225,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3225,1
    - Dst: MmapRegion::build
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3226,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3227,1
    - Dst: FileOffset::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3227,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3226,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3238,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3242,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3242,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3243,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3243,1
    - Dst: create_userspace_mapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3243,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3243,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3252,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3253,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3257,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3257,1
    - Dst: virtio_devices::Pmem::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3258,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3259,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3261,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3264,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3265,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3265,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3268,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3268,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3268,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3268,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3258,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3276,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3280,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3280,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3281,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3281,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3281,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3281,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3283,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3284,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 240
    argCount: 1
    argNames:
    - pmem_cfg
    argTypes:
    - '&mut PmemConfig'
    constantsTouched: []
    func_position:
      end: 3291
      start: 3120
    functionDepth: 14
    functionLinenumber: 3120
    functionLinenumberEnd: 3291
    functionName: DeviceManager::make_virtio_pmem_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - map_err
    - as_ref
    - MmapRegion::build
    - io::Result::map_err
    - push
    - None::is_some
    - DeviceManager::next_device_name
    - IoResult::write
    - Result::read
    - ok_or
    - Arc::clone
    - Ok
    - OpenOptions::new
    - insert
    - try_into
    - SeekFrom::End
    - Arc::new
    - u32::clone
    - try_clone
    - create_userspace_mapping
    - get
    - Vec::seek
    - virtio_devices::Pmem::new
    - is_dir
    - Vec::set_len
    - Vec::try_clone
    - iter
    - as_ptr
    - vm_memory::GuestAddress
    - std::io::Result::map_err
    - FileOffset::new
    - vm_migration::state_from_id
    - Err
    - lock
    - Mutex::new
    - unwrap
    - clone
    - u64::raw_value
    - is_none
    - None::is_none
    - open
    - IoResult::custom_flags
    - device_node
    - Result::map_err
    - allocate
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn make_virtio_pmem_device(&mut self,pmem_cfg: &mut PmemConfig,) ->
      DeviceManagerResult<MetaVirtioDevice>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3295,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3295,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3295,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3297,1
    - Dst: DeviceManager::make_virtio_pmem_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3298,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3299,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3302,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3302,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3293
    functionDepth: 13
    functionLinenumber: 3293
    functionLinenumberEnd: 3305
    functionName: DeviceManager::make_virtio_pmem_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - push
    - DeviceManager::make_virtio_pmem_device
    - lock
    - Ok
    - unwrap
    - clone
    - iter_mut
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_pmem_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3312,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3314,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3315,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3315,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3321,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3321,1
    - Dst: virtio_devices::vsock::VsockUnixBackend::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3326,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3326,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3326,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3329,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3329,1
    - Dst: virtio_devices::Vsock::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3330,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3331,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3333,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3336,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3337,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3337,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3340,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3340,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3340,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3340,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3330,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3349,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3349,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3349,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3352,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3352,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3354,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 78
    argCount: 1
    argNames:
    - vsock_cfg
    argTypes:
    - '&mut VsockConfig'
    constantsTouched: []
    func_position:
      end: 3362
      start: 3307
    functionDepth: 14
    functionLinenumber: 3307
    functionLinenumberEnd: 3362
    functionName: DeviceManager::make_virtio_vsock_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - map_err
    - as_ref
    - io::Result::map_err
    - DeviceManager::next_device_name
    - to_string
    - ok_or
    - to_str
    - virtio_devices::Vsock::new
    - Arc::clone
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - try_clone
    - vm_migration::state_from_id
    - Mutex::new
    - lock
    - unwrap
    - clone
    - device_node
    - Result::map_err
    - virtio_devices::vsock::VsockUnixBackend::new
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn make_virtio_vsock_device(&mut self,vsock_cfg: &mut VsockConfig,)
      -> DeviceManagerResult<MetaVirtioDevice>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3365,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3365,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3365,1
    - Dst: DeviceManager::make_virtio_vsock_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3367,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3368,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3370,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3370,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3364
    functionDepth: 13
    functionLinenumber: 3364
    functionLinenumberEnd: 3373
    functionName: DeviceManager::make_virtio_vsock_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - DeviceManager::make_virtio_vsock_device
    - push
    - lock
    - unwrap
    - clone
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_vsock_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3376,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3377,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3377,1
    - Dst: Result::memory_zones_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3378,1
    - Dst: '&mut MemoryZones::iter_mut'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3378,1
    - Dst: virtio_mem_zone_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3379,1
    - Dst: numa_node_id_from_memory_zone_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3382,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3382,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3385,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3385,1
    - Dst: virtio_devices::Mem::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3386,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3387,1
    - Dst: '&Option::region'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3388,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3389,1
    - Dst: '&Option::hotplugged_size'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3391,1
    - Dst: '&Option::hugepages'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3392,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3393,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3393,1
    - Dst: '&Option::blocks_state'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3396,1
    - Dst: '&Arc::clone'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3396,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3397,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3397,1
    - Dst: Option::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3397,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3397,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3386,1
    - Dst: '&Option::set_virtio_device'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3406,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3406,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3408,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3408,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3410,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3411,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3414,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3422,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3422,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3422,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3423,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3424,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3375
    functionDepth: 13
    functionLinenumber: 3375
    functionLinenumberEnd: 3430
    functionName: DeviceManager::make_virtio_mem_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - Result::memory_zones_mut
    - map_err
    - as_ref
    - io::Result::map_err
    - push
    - '&Option::region'
    - '&mut MemoryZones::iter_mut'
    - Arc::clone
    - Ok
    - '&Option::hotplugged_size'
    - '&Arc::clone'
    - insert
    - '&Option::hugepages'
    - Option::map
    - Arc::new
    - try_clone
    - '&Option::blocks_state'
    - Option::as_str
    - vm_migration::state_from_id
    - Mutex::new
    - lock
    - unwrap
    - clone
    - Result::lock
    - Option::clone
    - virtio_mem_zone_mut
    - device_node
    - Result::map_err
    - '&Option::set_virtio_device'
    - virtio_devices::Mem::new
    - numa_node_id_from_memory_zone_id
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_mem_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3439,1
    - Dst: DeviceManager::pci_resources
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3443,1
    - Dst: devices::pvmemcontrol::PvmemcontrolDevice::make_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3447,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3448,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3449,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3449,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3449,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3452,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3452,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3453,1
    - Dst: DeviceManager::add_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3455,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3456,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3457,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3463,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3466,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3469,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3469,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3469,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3472
      start: 3433
    functionDepth: 14
    functionLinenumber: 3433
    functionLinenumberEnd: 3472
    functionName: DeviceManager::make_pvmemcontrol_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - DeviceManager::pci_resources
    - insert
    - devices::pvmemcontrol::PvmemcontrolDevice::make_device
    - Some
    - Arc::new
    - u32::clone
    - Result::clone
    - lock
    - Mutex::new
    - device_node
    - DeviceManager::add_pci_device
    - unwrap
    - guest_memory
    - String::from
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_pvmemcontrol_device(&mut self,) -> DeviceManagerResult<(Arc<PvmemcontrolBusDevice>,Arc<Mutex<PvmemcontrolPciDevice>>,)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3475,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3475,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3476,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3479,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3479,1
    - Dst: virtio_devices::Balloon::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3480,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3481,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3485,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3486,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3486,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3489,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3489,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3489,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3489,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3480,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3495,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3495,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3497,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3498,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3501,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3506,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3506,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3506,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3509,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3509,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3474
    functionDepth: 13
    functionLinenumber: 3474
    functionLinenumberEnd: 3513
    functionName: DeviceManager::make_virtio_balloon_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - io::Result::map_err
    - push
    - Arc::clone
    - String::from
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - try_clone
    - virtio_devices::Balloon::new
    - vm_migration::state_from_id
    - lock
    - Mutex::new
    - unwrap
    - Result::clone
    - clone
    - device_node
    - Result::map_err
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_balloon_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3516,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3516,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3517,1
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3520,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3523,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3523,1
    - Dst: virtio_devices::Watchdog::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3524,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3525,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3526,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3526,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3527,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3528,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3528,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3531,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3531,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3531,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3531,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3524,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3536,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3537,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3540,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3545,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3545,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3545,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3548,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3548,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3551
      start: 3515
    functionDepth: 13
    functionLinenumber: 3515
    functionLinenumberEnd: 3551
    functionName: DeviceManager::make_virtio_watchdog_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - io::Result::map_err
    - push
    - Arc::clone
    - String::from
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - try_clone
    - virtio_devices::Watchdog::new
    - vm_migration::state_from_id
    - lock
    - Mutex::new
    - unwrap
    - clone
    - device_node
    - Result::map_err
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_virtio_watchdog_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3558,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3560,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3561,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3561,1
    - Dst: to_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3567,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3567,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3572,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3572,1
    - Dst: virtio_devices::Vdpa::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3573,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3574,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3576,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3576,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3576,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3578,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3578,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3578,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3578,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3573,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3585,1
    - Dst: VdpaDmaMapping::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3585,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3586,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3587,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3587,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3587,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3587,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3590,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3590,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3590,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3593,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3593,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3595,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 75
    argCount: 1
    argNames:
    - vdpa_cfg
    argTypes:
    - '&mut VdpaConfig'
    constantsTouched: []
    func_position:
      end: 3602
      start: 3553
    functionDepth: 16
    functionLinenumber: 3553
    functionLinenumberEnd: 3602
    functionName: DeviceManager::make_vdpa_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - as_ref
    - virtio_devices::Vdpa::new
    - VdpaDmaMapping::new
    - DeviceManager::next_device_name
    - guest_memory
    - ok_or
    - to_str
    - Arc::clone
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - vm_migration::state_from_id
    - Mutex::new
    - lock
    - unwrap
    - device_node
    - Result::map_err
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn make_vdpa_device(&mut self,vdpa_cfg: &mut VdpaConfig,) -> DeviceManagerResult<MetaVirtioDevice>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3606,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3606,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3606,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3608,1
    - Dst: DeviceManager::make_vdpa_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3609,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3610,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3613,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3613,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3616
      start: 3604
    functionDepth: 17
    functionLinenumber: 3604
    functionLinenumberEnd: 3616
    functionName: DeviceManager::make_vdpa_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - push
    - DeviceManager::make_vdpa_device
    - lock
    - Ok
    - unwrap
    - clone
    - iter_mut
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn make_vdpa_devices(&mut self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3624,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3626,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3627,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3627,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3627,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3629,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3638,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 3639
      start: 3618
    functionDepth: 13
    functionLinenumber: 3618
    functionLinenumberEnd: 3639
    functionName: DeviceManager::next_device_name
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 8
    functionsReached:
    - Err
    - lock
    - contains_key
    - contains
    - unwrap
    - std::num::Wrapping
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn next_device_name(&mut self, prefix: &str) -> DeviceManagerResult<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3647,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3648,1
    - Dst: create_passthrough_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3649,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3649,1
    - Dst: DeviceManagerError::CreatePassthroughDevice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3652,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3652,1
    - Dst: DeviceManager::add_vfio_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - '&mut DeviceConfig'
    constantsTouched: []
    func_position:
      end: 3657
      start: 3641
    functionDepth: 14
    functionLinenumber: 3641
    functionLinenumberEnd: 3657
    functionName: DeviceManager::add_passthrough_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - map_err
    - is_none
    - usize::into
    - DeviceManagerError::CreatePassthroughDevice
    - create_passthrough_device
    - Some
    - DeviceManager::add_vfio_device
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_passthrough_device(&mut self,device_cfg: &mut DeviceConfig,)
      -> DeviceManagerResult<(PciBdf, String)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3660,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3660,1
    - Dst: vm::Result::try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3665,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3665,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3669,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3669,1
    - Dst: VfioContainer::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3670,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3670,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3670,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3672
      start: 3659
    functionDepth: 5
    functionLinenumber: 3659
    functionLinenumberEnd: 3672
    functionName: DeviceManager::create_vfio_container
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - VfioContainer::new
    - as_ref
    - std::io::Result::map_err
    - Arc::new
    - Result::map_err
    - ok_or
    - vm::Result::try_clone
    - Some
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn create_vfio_container(&self) -> DeviceManagerResult<Arc<VfioContainer>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3679,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3681,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3682,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3682,1
    - Dst: DeviceManager::pci_resources
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3687,1
    - Dst: DeviceManager::create_vfio_container
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3700,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3702,1
    - Dst: VfioDmaMapping::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3702,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3703,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3704,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3704,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3704,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3704,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3705,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3709,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3709,1
    - Dst: add_external_mapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3709,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3712,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3714,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3719,1
    - Dst: DeviceManager::create_vfio_container
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3721,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3723,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3723,1
    - Dst: VfioDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3728,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3728,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3728,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3735,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3735,1
    - Dst: memory_zones
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3735,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3735,1
    - Dst: ApiResult::regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3736,1
    - Dst: DeviceManagerResult::vfio_dma_map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3743,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3744,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3744,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3745,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3746,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3742,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3753,1
    - Dst: VfioDmaMapping::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3753,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3754,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3755,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3755,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3755,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3755,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3756,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3759,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3760,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3760,1
    - Dst: add_dma_mapping_handler
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3760,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3765,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3760,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3773,1
    - Dst: create_group
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3774,1
    - Dst: device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3777,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3774,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3786,1
    - Dst: VfioPciDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3788,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3789,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3790,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3793,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3797,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3797,1
    - Dst: memory_slot_allocator
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3797,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3798,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3798,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3798,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3800,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3788,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3804,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3804,1
    - Dst: DeviceManager::add_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3806,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3807,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3808,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3814,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3814,1
    - Dst: map_mmio_regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3814,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3814,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3820,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3820,1
    - Dst: mmio_regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3820,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3821,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3821,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3821,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3824,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3828,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3829,1
    - Dst: PciDeviceHandle::Vfio
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3829,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3831,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3831,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3831,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3834,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3836,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 253
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - '&mut DeviceConfig'
    constantsTouched: []
    func_position:
      end: 3837
      start: 3674
    functionDepth: 14
    functionLinenumber: 3674
    functionLinenumberEnd: 3837
    functionName: DeviceManager::add_vfio_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - PciDeviceHandle::Vfio
    - add_dma_mapping_handler
    - map_err
    - as_ref
    - push
    - add_external_mapping
    - DeviceManager::next_device_name
    - VfioDevice::new
    - guest_memory
    - map_mmio_regions
    - Arc::clone
    - vm_migration::snapshot_from_id
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - into
    - memory_zones
    - DeviceManager::add_pci_device
    - iter
    - create_group
    - device
    - as_str
    - Result::len
    - Result::as_ptr
    - Err
    - lock
    - Mutex::new
    - unwrap
    - Result::clone
    - DeviceManager::create_vfio_container
    - clone
    - VfioPciDevice::new
    - Result::lock
    - DeviceManager::pci_resources
    - VfioDmaMapping::new
    - Result::raw_value
    - Result::start_addr
    - ApiResult::regions
    - DeviceManagerResult::vfio_dma_map
    - mmio_regions
    - device_node
    - Result::map_err
    - memory_slot_allocator
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_vfio_device(&mut self,device_cfg: &mut DeviceConfig,) -> DeviceManagerResult<(PciBdf,
      String)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3847,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3847,1
    - Dst: allocate_bars
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3847,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3852,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3852,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3856,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3856,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3847,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3864,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3864,1
    - Dst: add_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3869,1
    - Dst: DeviceManagerResult::device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3870,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3869,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3873,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3873,1
    - Dst: register_mapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3875,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3878,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3879,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3880,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3875,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3884,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3886,1
    - Dst: result::Result::idx
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3887,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3888,1
    - Dst: result::Result::size
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3889,1
    - Dst: result::Result::region_type
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3890,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3890,1
    - Dst: result::Result::prefetchable
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3891,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3891,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 91
    argCount: 5
    argNames:
    - bus_device
    - pci_device
    - segment_id
    - bdf
    - resources
    argTypes:
    - Arc<dyn BusDeviceSync>
    - Arc<Mutex<dyn PciDevice>>
    - u16
    - PciBdf
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 3896
      start: 3839
    functionDepth: 13
    functionLinenumber: 3839
    functionLinenumberEnd: 3896
    functionName: DeviceManager::add_pci_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 6
    functionsReached:
    - map_err
    - as_ref
    - DeviceManagerResult::device
    - push
    - Self::into
    - Arc::clone
    - Ok
    - Vec::new
    - add_device
    - result::Result::idx
    - result::Result::addr
    - DeviceManagerResult::lock
    - Result::push
    - register_mapping
    - lock
    - unwrap
    - Result::clone
    - result::Result::size
    - result::Result::prefetchable
    - result::Result::region_type
    - allocate_bars
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_pci_device(&mut self,bus_device: Arc<dyn BusDeviceSync>,pci_device:
      Arc<Mutex<dyn PciDevice>>,segment_id: u16,bdf: PciBdf,resources: Option<Vec<Resource>>,)
      -> DeviceManagerResult<Vec<Resource>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3899,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3900,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3900,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3900,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3903,1
    - Dst: DeviceManager::add_passthrough_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3904,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3905,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3906,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3912,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3912,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3898
    functionDepth: 13
    functionLinenumber: 3898
    functionLinenumberEnd: 3915
    functionName: DeviceManager::add_vfio_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - is_some
    - Result::push
    - Vec::new
    - lock
    - Ok
    - unwrap
    - DeviceManager::add_passthrough_device
    - clone
    - iter_mut
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn add_vfio_devices(&mut self) -> DeviceManagerResult<Vec<PciBdf>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3922,1
    - Dst: DeviceManager::next_device_name
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3924,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3925,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3925,1
    - Dst: DeviceManager::pci_resources
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3930,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3934,1
    - Dst: create_group
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3935,1
    - Dst: device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3938,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3935,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3947,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3947,1
    - Dst: vfio_user::Client::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3948,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3948,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3952,1
    - Dst: VfioUserPciDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3954,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3955,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3956,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3957,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3958,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3961,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3961,1
    - Dst: memory_slot_allocator
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3961,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3962,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3962,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3962,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3954,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3966,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3966,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3966,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3967,1
    - Dst: VfioUserDmaMapping::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3967,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3967,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3968,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3969,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3969,1
    - Dst: add_dma_mapping_handler
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3969,1
    - Dst: VirtioMemMappingSource::Device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3973,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3973,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3974,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3969,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3979,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3979,1
    - Dst: memory_zones
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3979,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3979,1
    - Dst: ApiResult::regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3980,1
    - Dst: dma_map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3981,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3981,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3987,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3987,1
    - Dst: DeviceManager::add_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3989,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3990,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3991,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3999,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3999,1
    - Dst: map_mmio_regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3999,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:3999,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4005,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4009,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4010,1
    - Dst: PciDeviceHandle::VfioUser
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4010,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4012,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4012,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4012,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4015,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4017,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 170
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - '&mut UserDeviceConfig'
    constantsTouched: []
    func_position:
      end: 4018
      start: 3917
    functionDepth: 14
    functionLinenumber: 3917
    functionLinenumberEnd: 4018
    functionName: DeviceManager::add_vfio_user_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - add_dma_mapping_handler
    - map_err
    - as_ref
    - DeviceManager::next_device_name
    - guest_memory
    - map_mmio_regions
    - vfio_user::Client::new
    - vm_migration::snapshot_from_id
    - VfioUserPciDevice::new
    - Ok
    - insert
    - Arc::new
    - u32::clone
    - into
    - memory_zones
    - DeviceManager::add_pci_device
    - device
    - create_group
    - iter
    - as_str
    - Mutex::new
    - lock
    - unwrap
    - Result::clone
    - clone
    - Result::lock
    - DeviceManager::pci_resources
    - PciDeviceHandle::VfioUser
    - VirtioMemMappingSource::Device
    - ApiResult::regions
    - device_node
    - Result::map_err
    - memory_slot_allocator
    - dma_map
    - Some
    - VfioUserDmaMapping::new
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_vfio_user_device(&mut self,device_cfg: &mut UserDeviceConfig,)
      -> DeviceManagerResult<(PciBdf, String)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4021,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4021,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4021,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4024,1
    - Dst: DeviceManager::add_vfio_user_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4025,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4030,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4030,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4033
      start: 4020
    functionDepth: 13
    functionLinenumber: 4020
    functionLinenumberEnd: 4033
    functionName: DeviceManager::add_user_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - DeviceManager::add_vfio_user_device
    - lock
    - Ok
    - unwrap
    - clone
    - iter_mut
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn add_user_devices(&mut self) -> DeviceManagerResult<Vec<PciBdf>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4046,1
    - Dst: DeviceManager::pci_resources
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4050,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4053,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4053,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4053,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4054,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4054,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4056,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4062,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4062,1
    - Dst: queue_max_sizes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4062,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4062,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4070,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4070,1
    - Dst: AccessPlatformMapping::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4070,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4071,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4072,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4078,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4078,1
    - Dst: is_sev_snp_enabled
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4078,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4079,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4079,1
    - Dst: SevSnpPageAccessProxy::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4079,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4080,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4084,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4084,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4084,1
    - Dst: '&Option<Arc<IommuMapping>>::is_some'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4089,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4091,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4091,1
    - Dst: add_external_mapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4091,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4094,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4094,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4096,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4101,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4102,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4102,1
    - Dst: add_dma_mapping_handler
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4102,1
    - Dst: VirtioMemMappingSource::Device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4106,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4106,1
    - Dst: Option::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4107,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4102,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4114,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4114,1
    - Dst: memory_zones
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4114,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4114,1
    - Dst: ApiResult::regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4115,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4116,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4117,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4118,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4118,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4126,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4126,1
    - Dst: device_type
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4126,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4127,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4127,1
    - Dst: VirtioPciDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4128,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4129,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4134,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4135,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4136,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4136,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4145,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4146,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4146,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4146,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4128,1
    - Dst: DeviceManager::add_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4151,1
    - Dst: DeviceManagerResult::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4152,1
    - Dst: DeviceManagerResult::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4153,1
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4159,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4159,1
    - Dst: config_bar_addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4159,1
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4160,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4160,1
    - Dst: ioeventfds
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4160,1
    - Dst: IoEventAddress::Mmio
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4161,1
    - Dst: register_ioevent
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4162,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4162,1
    - Dst: DeviceManagerError::RegisterIoevent
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4165,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4165,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4170,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4170,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4171,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4172,1
    - Dst: PciDeviceHandle::Virtio
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4172,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4173,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4173,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4173,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4175,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 244
    argCount: 5
    argNames:
    - virtio_device
    - iommu_mapping
    - virtio_device_id
    - pci_segment_id
    - dma_handler
    argTypes:
    - Arc<Mutex<dyn virtio_devices::VirtioDevice>>
    - '&Option<Arc<IommuMapping>>'
    - '&str'
    - u16
    - Option<Arc<dyn ExternalDmaMapping>>
    constantsTouched: []
    func_position:
      end: 4176
      start: 4035
    functionDepth: 16
    functionLinenumber: 4035
    functionLinenumberEnd: 4176
    functionName: DeviceManager::add_virtio_pci_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 2
    functionsReached:
    - add_dma_mapping_handler
    - map_err
    - Self::map_err
    - as_ref
    - add_external_mapping
    - is_sev_snp_enabled
    - register_ioevent
    - guest_memory
    - PciDeviceHandle::Virtio
    - Arc::clone
    - vm_migration::snapshot_from_id
    - Ok
    - insert
    - Option::map
    - Arc::new
    - u32::clone
    - try_clone
    - IoEventAddress::Mmio
    - into
    - memory_zones
    - DeviceManager::add_pci_device
    - len
    - AccessPlatformMapping::new
    - DeviceManagerResult::lock
    - usize::into
    - DeviceManagerResult::clone
    - iter
    - VirtioPciDevice::new
    - device_type
    - SevSnpPageAccessProxy::new
    - Result::len
    - Err
    - lock
    - Mutex::new
    - unwrap
    - Result::clone
    - clone
    - DeviceManager::pci_resources
    - queue_max_sizes
    - config_bar_addr
    - Option::clone
    - VirtioMemMappingSource::Device
    - ioeventfds
    - DeviceManagerError::RegisterIoevent
    - Result::start_addr
    - ApiResult::regions
    - get_mut
    - device_node
    - Result::map_err
    - '&Option<Arc<IommuMapping>>::is_some'
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_virtio_pci_device(&mut self,virtio_device: Arc<Mutex<dyn virtio_devices::VirtioDevice>>,iommu_mapping:
      &Option<Arc<IommuMapping>>,virtio_device_id: &str,pci_segment_id: u16,dma_handler:
      Option<Arc<dyn ExternalDmaMapping>>,) -> DeviceManagerResult<PciBdf>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4181,1
    - Dst: DeviceManager::pci_resources
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4187,1
    - Dst: snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4189,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4189,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4189,1
    - Dst: devices::PvPanicDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4191,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4191,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4191,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4194,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4194,1
    - Dst: DeviceManager::add_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4196,1
    - Dst: DeviceManagerResult::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4197,1
    - Dst: DeviceManagerResult::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4198,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4204,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4207,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4210,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4210,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4210,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4212,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4213
      start: 4178
    functionDepth: 14
    functionLinenumber: 4178
    functionLinenumberEnd: 4213
    functionName: DeviceManager::add_pvpanic_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - DeviceManagerResult::clone
    - DeviceManager::pci_resources
    - insert
    - as_ref
    - Some
    - Arc::new
    - u32::clone
    - Mutex::new
    - device_node
    - Result::map_err
    - devices::PvPanicDevice::new
    - DeviceManager::add_pci_device
    - lock
    - unwrap
    - String::from
    - u32::as_str
    - snapshot_from_id
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: fn add_pvpanic_device(&mut self,) -> DeviceManagerResult<Option<Arc<Mutex<devices::PvPanicDevice>>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4220,1
    - Dst: DeviceManager::pci_resources
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4225,1
    - Dst: snapshot_from_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4226,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4226,1
    - Dst: u32::as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4226,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4228,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4228,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4229,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4231,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4231,1
    - Dst: devices::IvshmemDevice::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4232,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4233,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4235,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4235,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4236,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4232,1
    - Dst: DeviceManager::add_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4241,1
    - Dst: DeviceManagerResult::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4242,1
    - Dst: DeviceManagerResult::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4243,1
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4249,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4249,1
    - Dst: data_bar_addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4249,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4250,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4250,1
    - Dst: map_ram_region
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4250,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4253,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4253,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4250,1
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4255,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4255,1
    - Dst: set_region
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4255,1
    - Dst: device_node
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4257,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4259,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4261,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4261,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4261,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4263,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 88
    argCount: 1
    argNames:
    - ivshmem_cfg
    argTypes:
    - '&IvshmemConfig'
    constantsTouched: []
    func_position:
      end: 4264
      start: 4216
    functionDepth: 14
    functionLinenumber: 4216
    functionLinenumberEnd: 4264
    functionName: DeviceManager::add_ivshmem_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - data_bar_addr
    - map_err
    - as_ref
    - String::from
    - Ok
    - insert
    - devices::IvshmemDevice::new
    - Arc::new
    - u32::clone
    - DeviceManager::add_pci_device
    - DeviceManagerResult::lock
    - snapshot_from_id
    - DeviceManagerResult::clone
    - set_region
    - Mutex::new
    - lock
    - unwrap
    - Result::clone
    - clone
    - Result::lock
    - DeviceManager::pci_resources
    - device_node
    - Result::map_err
    - map_ram_region
    - Some
    - u32::as_str
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn add_ivshmem_device(&mut self,ivshmem_cfg: &IvshmemConfig,) -> DeviceManagerResult<Option<Arc<Mutex<devices::IvshmemDevice>>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4274,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4274,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4274,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4276,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4279,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4279,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4279,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4284,1
    - Dst: segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4285,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4287,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4287,1
    - Dst: get_device_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4287,1
    - Dst: device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4291,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4287,1
    - Dst: next_device_bdf
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 2
    argNames:
    - id
    - pci_segment_id
    argTypes:
    - '&str'
    - u16
    constantsTouched: []
    func_position:
      end: 4300
      start: 4266
    functionDepth: 13
    functionLinenumber: 4266
    functionLinenumberEnd: 4300
    functionName: DeviceManager::pci_resources
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 6
    functionsReached:
    - device
    - next_device_bdf
    - map_err
    - segment
    - clone
    - lock
    - unwrap
    - get_device_id
    - get
    - ok_or
    - Some
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn pci_resources(&self,id: &str,pci_segment_id: u16,) -> DeviceManagerResult<(u16,
      PciBdf, Option<Vec<Resource>>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4303
    functionDepth: 0
    functionLinenumber: 4303
    functionLinenumberEnd: 4305
    functionName: DeviceManager::io_bus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&Arc'
    signature: pub fn io_bus(&self) -> &Arc<Bus>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4309
    functionName: DeviceManager::mmio_bus
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&Arc'
    signature: pub fn mmio_bus(&self) -> &Arc<Bus>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4314
    functionName: DeviceManager::fw_cfg
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn fw_cfg(&self) -> Option<&Arc<Mutex<FwCfg>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4318
      start: 4316
    functionDepth: 0
    functionLinenumber: 4316
    functionLinenumberEnd: 4318
    functionName: DeviceManager::allocator
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Arc'
    signature: pub fn allocator(&self) -> &Arc<Mutex<SystemAllocator>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4321,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4321,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4320
    functionDepth: 3
    functionLinenumber: 4320
    functionLinenumberEnd: 4324
    functionName: DeviceManager::interrupt_controller
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - clone
    linkageType: ''
    returnType: Option
    signature: pub fn interrupt_controller(&self) -> Option<Arc<Mutex<dyn InterruptController>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4328
      start: 4326
    functionDepth: 0
    functionLinenumber: 4326
    functionLinenumberEnd: 4328
    functionName: DeviceManager::pci_segments
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Vec'
    signature: pub(crate) fn pci_segments(&self) -> &Vec<PciSegment>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4333
      start: 4331
    functionDepth: 2
    functionLinenumber: 4331
    functionLinenumberEnd: 4333
    functionName: DeviceManager::cmdline_additions
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - as_slice
    linkageType: ''
    returnType: '&[String]'
    signature: pub fn cmdline_additions(&self) -> &[String]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4336,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4337,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4337,1
    - Dst: add_memory_region
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4337,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4337,1
    - Dst: '&Arc<GuestRegionMmap>::start_addr'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4347,1
    - Dst: '&Arc<GuestRegionMmap>::len'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4348,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4349,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4349,1
    - Dst: DeviceManagerResult::vfio_dma_map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4363,1
    - Dst: '&Arc<GuestRegionMmap>::start_addr'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4364,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4364,1
    - Dst: '&Arc<GuestRegionMmap>::len'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4365,1
    - Dst: '&Arc<GuestRegionMmap>::as_ptr'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4366,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4362,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4374,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4374,1
    - Dst: pci_devices
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4375,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4376,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4376,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4381,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4381,1
    - Dst: dma_map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4381,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4381,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 82
    argCount: 1
    argNames:
    - new_region
    argTypes:
    - '&Arc<GuestRegionMmap>'
    constantsTouched: []
    func_position:
      end: 4391
      start: 4335
    functionDepth: 13
    functionLinenumber: 4335
    functionLinenumberEnd: 4391
    functionName: DeviceManager::update_memory
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - pci_devices
    - map_err
    - Option::map
    - Self::map_err
    - Result::raw_value
    - as_ref
    - '&Arc<GuestRegionMmap>::start_addr'
    - '&Arc<GuestRegionMmap>::len'
    - DeviceManagerResult::vfio_dma_map
    - lock
    - '&Arc<GuestRegionMmap>::as_ptr'
    - unwrap
    - dma_map
    - add_memory_region
    - ok_or
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn update_memory(&self, new_region: &Arc<GuestRegionMmap>) ->
      DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4394,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4394,1
    - Dst: drain
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4394,1
    - Dst: VirtioPciDeviceActivator::activate
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4395,1
    - Dst: ActivateResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4395,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4393
    functionDepth: 16
    functionLinenumber: 4393
    functionLinenumberEnd: 4400
    functionName: DeviceManager::activate_virtio_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - ActivateResult::map_err
    - drain
    - lock
    - VirtioPciDeviceActivator::activate
    - unwrap
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: pub fn activate_virtio_devices(&self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4406,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4406,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4406,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4406,1
    - Dst: notify
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4406,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - _notification_type
    argTypes:
    - AcpiNotificationFlags
    constantsTouched: []
    func_position:
      end: 4414
      start: 4402
    functionDepth: 13
    functionLinenumber: 4402
    functionLinenumberEnd: 4414
    functionName: DeviceManager::notify_hotplug
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - lock
    - notify
    - unwrap
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn notify_hotplug(&self,_notification_type: AcpiNotificationFlags,)
      -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4420,1
    - Dst: DeviceManager::is_iommu_segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4422,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4423,1
    - Dst: DeviceManager::add_passthrough_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4426,1
    - Dst: DeviceManagerResult::device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4429,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - '&mut DeviceConfig'
    constantsTouched: []
    func_position:
      end: 4435
      start: 4416
    functionDepth: 14
    functionLinenumber: 4416
    functionLinenumberEnd: 4435
    functionName: DeviceManager::add_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManagerResult::device
    - DeviceManager::is_iommu_segment
    - DeviceManager::add_passthrough_device
    - Err
    - DeviceManager::validate_identifier
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_device(&mut self,device_cfg: &mut DeviceConfig,) -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4441,1
    - Dst: DeviceManager::add_vfio_user_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4443,1
    - Dst: DeviceManagerResult::device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4446,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - device_cfg
    argTypes:
    - '&mut UserDeviceConfig'
    constantsTouched: []
    func_position:
      end: 4452
      start: 4437
    functionDepth: 14
    functionLinenumber: 4437
    functionLinenumberEnd: 4452
    functionName: DeviceManager::add_user_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::validate_identifier
    - DeviceManagerResult::device
    - DeviceManager::add_vfio_user_device
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_user_device(&mut self,device_cfg: &mut UserDeviceConfig,)
      -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4459,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4459,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4460,1
    - Dst: vm::Result::ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4460,1
    - Dst: DeviceManagerError::UnknownDeviceId
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4462,1
    - Dst: u32::to_string
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4462,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4467,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4467,1
    - Dst: find
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4467,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4472,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4472,1
    - Dst: id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4473,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4467,1
    - Dst: swap_remove
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4477,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4481,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4481,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4484,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4484,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4488,1
    - Dst: vm::Result::ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4488,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4493,1
    - Dst: segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4496,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4498,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4498,1
    - Dst: VirtioDeviceType::from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4504,1
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4505,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4505,1
    - Dst: virtio_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4505,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4505,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4505,1
    - Dst: device_type
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4505,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4523,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4523,1
    - Dst: as_deref_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4524,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4524,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4525,1
    - Dst: find
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4525,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4527,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4527,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4525,1
    - Dst: take
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4530,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4530,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4530,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4534,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4534,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4534,1
    - Dst: libc::close
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4537,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4545,1
    - Dst: DeviceManagerError::RemovalNotAllowed
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4545,1
    - Dst: device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4550,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4552,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 144
    argCount: 1
    argNames:
    - id
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 4553
      start: 4454
    functionDepth: 13
    functionLinenumber: 4454
    functionLinenumberEnd: 4553
    functionName: DeviceManager::remove_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - libc::close
    - as_ref
    - DeviceManagerError::UnknownDeviceId
    - segment
    - retain
    - take
    - as_deref_mut
    - ok_or
    - id
    - Ok
    - Vec::new
    - as_mut
    - vm::Result::ok_or_else
    - u32::to_string
    - virtio_device
    - VirtioDeviceType::from
    - swap_remove
    - DeviceManagerResult::lock
    - get
    - as_deref
    - iter_mut
    - is_some
    - iter
    - device
    - device_type
    - Err
    - lock
    - unwrap
    - unwrap_or
    - find
    - map
    - DeviceManagerError::RemovalNotAllowed
    - vm::Result::ok_or
    - enumerate
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn remove_device(&mut self, id: &str) -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciBdf::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4559,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4562,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4562,1
    - Dst: put_device_id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4562,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4562,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4571,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4571,1
    - Dst: remove_node_by_pci_bdf
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4572,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4572,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4580,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4585,1
    - Dst: u32::clone_from
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4588,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4591,1
    - Dst: remove
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4592,1
    - Dst: '&Option::contains'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4600,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4608,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4608,1
    - Dst: mmio_regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4608,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4609,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4609,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4609,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4616,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4617,1
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4623,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4623,1
    - Dst: config_bar_addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4624,1
    - Dst: ioeventfds
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4625,1
    - Dst: IoEventAddress::Mmio
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4626,1
    - Dst: unregister_ioevent
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4627,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4627,1
    - Dst: DeviceManagerError::UnRegisterIoevent
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4630,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4630,1
    - Dst: dma_handler
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4633,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4636,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4636,1
    - Dst: memory_zones
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4636,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4636,1
    - Dst: ApiResult::regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4637,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4638,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4639,1
    - Dst: Option::unmap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4640,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4640,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4648,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4649,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4650,1
    - Dst: virtio_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4650,1
    - Dst: dma_handler
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4651,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4651,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4655,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4655,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4656,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4656,1
    - Dst: memory_zones
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4656,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4656,1
    - Dst: ApiResult::regions
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4657,1
    - Dst: dma_unmap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4658,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4658,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4664,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4665,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4673,1
    - Dst: VirtioMemMappingSource::Device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4674,1
    - Dst: Self::into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4674,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4675,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4675,1
    - Dst: remove_dma_mapping_handler
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4675,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4675,1
    - Dst: DeviceManagerResult::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4684,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4684,1
    - Dst: free_bars
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4684,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4688,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4688,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4689,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4689,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4693,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4693,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4684,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4701,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4701,1
    - Dst: remove_by_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4701,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4701,1
    - Dst: DeviceManager::io_bus
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4710,1
    - Dst: '&Arc::remove_by_device'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4710,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4711,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4710,1
    - Dst: DeviceManager::mmio_bus
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4715,1
    - Dst: '&Arc::remove_by_device'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4715,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4716,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4715,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4721,1
    - Dst: Arc::ptr_eq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4722,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4726,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4726,1
    - Dst: userspace_mappings
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4726,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4731,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4731,1
    - Dst: remove_userspace_mapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4731,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4735,1
    - Dst: size
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4736,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4737,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4731,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4745,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4745,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4745,1
    - Dst: retain
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4747,1
    - Dst: Arc::ptr_eq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4748,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4751,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4764,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 350
    argCount: 2
    argNames:
    - pci_segment_id
    - device_id
    argTypes:
    - u16
    - u8
    constantsTouched: []
    func_position:
      end: 4765
      start: 4555
    functionDepth: 13
    functionLinenumber: 4555
    functionLinenumberEnd: 4765
    functionName: DeviceManager::eject_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - size
    - '&Option::contains'
    - '&Arc::remove_by_device'
    - map_err
    - as_ref
    - retain
    - Self::into
    - remove_node_by_pci_bdf
    - ok_or
    - DeviceManagerError::UnRegisterIoevent
    - shutdown
    - Arc::clone
    - dma_unmap
    - Ok
    - put_device_id
    - event_monitor::event
    - IoEventAddress::Mmio
    - memory_zones
    - virtio_device
    - DeviceManager::mmio_bus
    - DeviceManagerResult::lock
    - usize::into
    - remove_userspace_mapping
    - raw_value
    - is_some
    - is_empty
    - iter
    - as_ptr
    - DeviceManager::io_bus
    - Result::len
    - lock
    - free_bars
    - u32::clone_from
    - Arc::ptr_eq
    - unwrap
    - unregister_ioevent
    - Option::ok_or
    - remove_dma_mapping_handler
    - userspace_mappings
    - dma_handler
    - Option::unmap
    - config_bar_addr
    - remove
    - VirtioMemMappingSource::Device
    - ioeventfds
    - PciBdf::new
    - Result::start_addr
    - mmio_regions
    - ApiResult::regions
    - Result::map_err
    - remove_by_device
    - Some
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn eject_device(&mut self, pci_segment_id: u16, device_id: u8)
      -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4774,1
    - Dst: result::Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4774,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4777,1
    - Dst: DeviceManager::add_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4782,1
    - Dst: DeviceManagerResult::device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4791,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - handle
    argTypes:
    - MetaVirtioDevice
    constantsTouched: []
    func_position:
      end: 4794
      start: 4767
    functionDepth: 17
    functionLinenumber: 4767
    functionLinenumberEnd: 4794
    functionName: DeviceManager::hotplug_virtio_pci_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 6
    functionsReached:
    - push
    - DeviceManagerResult::device
    - result::Result::clone
    - DeviceManager::add_virtio_pci_device
    - clone
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn hotplug_virtio_pci_device(&mut self,handle: MetaVirtioDevice,)
      -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4797,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4797,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4797,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4797,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4797,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4804,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4804,1
    - Dst: std::result::Result::contains
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4806,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4804,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - pci_segment_id
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 4810
      start: 4796
    functionDepth: 13
    functionLinenumber: 4796
    functionLinenumberEnd: 4810
    functionName: DeviceManager::is_iommu_segment
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 6
    functionsReached:
    - map
    - unwrap_or_default
    - as_ref
    - lock
    - unwrap
    - std::result::Result::contains
    linkageType: ''
    returnType: bool
    signature: 'fn is_iommu_segment(&self, pci_segment_id: u16) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4813,1
    - Dst: DeviceManager::is_iommu_segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4815,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4816,1
    - Dst: DeviceManager::make_virtio_block_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4819,1
    - Dst: DeviceManager::hotplug_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4820,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - disk_cfg
    argTypes:
    - '&mut DiskConfig'
    constantsTouched: []
    func_position:
      end: 4821
      start: 4812
    functionDepth: 16
    functionLinenumber: 4812
    functionLinenumberEnd: 4821
    functionName: DeviceManager::add_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::is_iommu_segment
    - Err
    - DeviceManager::hotplug_virtio_pci_device
    - DeviceManager::make_virtio_block_device
    - DeviceManager::validate_identifier
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_disk(&mut self, disk_cfg: &mut DiskConfig) -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4824,1
    - Dst: DeviceManager::make_virtio_fs_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4826,1
    - Dst: DeviceManager::hotplug_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fs_cfg
    argTypes:
    - '&mut FsConfig'
    constantsTouched: []
    func_position:
      end: 4828
      start: 4823
    functionDepth: 18
    functionLinenumber: 4823
    functionLinenumberEnd: 4828
    functionName: DeviceManager::add_fs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::validate_identifier
    - DeviceManager::make_virtio_fs_device
    - DeviceManager::hotplug_virtio_pci_device
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_fs(&mut self, fs_cfg: &mut FsConfig) -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4831,1
    - Dst: DeviceManager::is_iommu_segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4833,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4834,1
    - Dst: DeviceManager::make_virtio_pmem_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4837,1
    - Dst: DeviceManager::hotplug_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - pmem_cfg
    argTypes:
    - '&mut PmemConfig'
    constantsTouched: []
    func_position:
      end: 4839
      start: 4830
    functionDepth: 18
    functionLinenumber: 4830
    functionLinenumberEnd: 4839
    functionName: DeviceManager::add_pmem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::is_iommu_segment
    - DeviceManager::make_virtio_pmem_device
    - Err
    - DeviceManager::hotplug_virtio_pci_device
    - DeviceManager::validate_identifier
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_pmem(&mut self, pmem_cfg: &mut PmemConfig) -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4842,1
    - Dst: DeviceManager::is_iommu_segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4844,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4845,1
    - Dst: DeviceManager::make_virtio_net_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4848,1
    - Dst: DeviceManager::hotplug_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - net_cfg
    argTypes:
    - '&mut NetConfig'
    constantsTouched: []
    func_position:
      end: 4850
      start: 4841
    functionDepth: 18
    functionLinenumber: 4841
    functionLinenumberEnd: 4850
    functionName: DeviceManager::add_net
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::is_iommu_segment
    - Err
    - DeviceManager::make_virtio_net_device
    - DeviceManager::hotplug_virtio_pci_device
    - DeviceManager::validate_identifier
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_net(&mut self, net_cfg: &mut NetConfig) -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4853,1
    - Dst: DeviceManager::is_iommu_segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4855,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4856,1
    - Dst: DeviceManager::make_vdpa_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4859,1
    - Dst: DeviceManager::hotplug_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - vdpa_cfg
    argTypes:
    - '&mut VdpaConfig'
    constantsTouched: []
    func_position:
      end: 4861
      start: 4852
    functionDepth: 17
    functionLinenumber: 4852
    functionLinenumberEnd: 4861
    functionName: DeviceManager::add_vdpa
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::is_iommu_segment
    - DeviceManager::make_vdpa_device
    - Err
    - DeviceManager::hotplug_virtio_pci_device
    - DeviceManager::validate_identifier
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_vdpa(&mut self, vdpa_cfg: &mut VdpaConfig) -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::validate_identifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4864,1
    - Dst: DeviceManager::is_iommu_segment
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4866,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4867,1
    - Dst: DeviceManager::make_virtio_vsock_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4870,1
    - Dst: DeviceManager::hotplug_virtio_pci_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - vsock_cfg
    argTypes:
    - '&mut VsockConfig'
    constantsTouched: []
    func_position:
      end: 4872
      start: 4863
    functionDepth: 18
    functionLinenumber: 4863
    functionLinenumberEnd: 4872
    functionName: DeviceManager::add_vsock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::make_virtio_vsock_device
    - DeviceManager::is_iommu_segment
    - Err
    - DeviceManager::hotplug_virtio_pci_device
    - DeviceManager::validate_identifier
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn add_vsock(&mut self, vsock_cfg: &mut VsockConfig) -> DeviceManagerResult<PciDeviceInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4875,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4878,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4878,1
    - Dst: counters
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4879,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4880,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4880,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4885
      start: 4874
    functionDepth: 13
    functionLinenumber: 4874
    functionLinenumberEnd: 4885
    functionName: DeviceManager::counters
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - Counters::insert
    - lock
    - unwrap
    - clone
    - counters
    linkageType: ''
    returnType: HashMap
    signature: pub fn counters(&self) -> HashMap<String, HashMap<&'static str, Wrapping<u64>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4889,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4889,1
    - Dst: resize
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4889,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4889,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 4898
      start: 4887
    functionDepth: 13
    functionLinenumber: 4887
    functionLinenumberEnd: 4898
    functionName: DeviceManager::resize_balloon
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Err
    - lock
    - unwrap
    - resize
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn resize_balloon(&mut self, size: u64) -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4902,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4902,1
    - Dst: get_actual
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4906
      start: 4900
    functionDepth: 13
    functionLinenumber: 4900
    functionLinenumberEnd: 4906
    functionName: DeviceManager::balloon_size
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - lock
    - get_actual
    - unwrap
    linkageType: ''
    returnType: u64
    signature: pub fn balloon_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4910,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4910,1
    - Dst: ApiResult::id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4911,1
    - Dst: ApiResult::resize
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4912,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4912,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4917,1
    - Dst: DeviceManagerError::UnknownDeviceId
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4917,1
    - Dst: result::Result::to_string
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - device_id
    - new_size
    argTypes:
    - '&str'
    - u64
    constantsTouched: []
    func_position:
      end: 4918
      start: 4908
    functionDepth: 13
    functionLinenumber: 4908
    functionLinenumberEnd: 4918
    functionName: DeviceManager::resize_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - result::Result::to_string
    - map_err
    - DeviceManagerError::UnknownDeviceId
    - Err
    - lock
    - unwrap
    - ApiResult::id
    - ApiResult::resize
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'pub fn resize_disk(&mut self, device_id: &str, new_size: u64) -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4922
      start: 4920
    functionDepth: 3
    functionLinenumber: 4920
    functionLinenumberEnd: 4922
    functionName: DeviceManager::device_tree
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Arc
    signature: pub fn device_tree(&self) -> Arc<Mutex<DeviceTree>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4942,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4942,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4942,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4942,1
    - Dst: trigger_key
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4942,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4942,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4950,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4950,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4950,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4950,1
    - Dst: notify
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4950,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4958
      start: 4936
    functionDepth: 13
    functionLinenumber: 4936
    functionLinenumberEnd: 4958
    functionName: DeviceManager::notify_power_button
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - lock
    - notify
    - unwrap
    - trigger_key
    linkageType: ''
    returnType: DeviceManagerResult
    signature: pub fn notify_power_button(&self) -> DeviceManagerResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4962
      start: 4960
    functionDepth: 0
    functionLinenumber: 4960
    functionLinenumberEnd: 4962
    functionName: DeviceManager::iommu_attached_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Option'
    signature: pub fn iommu_attached_devices(&self) -> &Option<(PciBdf, Vec<PciBdf>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::starts_with
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4966,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4967,1
    - Dst: DeviceManagerError::InvalidIdentifier
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4967,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4967,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4970,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4970,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4970,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4971,1
    - Dst: DeviceManagerError::IdentifierNotUnique
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4971,1
    - Dst: u32::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4971,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - id
    argTypes:
    - '&Option<String>'
    constantsTouched: []
    func_position:
      end: 4976
      start: 4964
    functionDepth: 13
    functionLinenumber: 4964
    functionLinenumberEnd: 4976
    functionName: DeviceManager::validate_identifier
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 8
    functionsReached:
    - DeviceManagerError::InvalidIdentifier
    - u32::clone
    - Err
    - u32::starts_with
    - lock
    - contains_key
    - unwrap
    - DeviceManagerError::IdentifierNotUnique
    - Ok
    linkageType: ''
    returnType: DeviceManagerResult
    signature: 'fn validate_identifier(&self, id: &Option<String>) -> DeviceManagerResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4980
      start: 4978
    functionDepth: 0
    functionLinenumber: 4978
    functionLinenumberEnd: 4980
    functionName: DeviceManager::acpi_platform_addresses
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&AcpiPlatformAddresses'
    signature: pub(crate) fn acpi_platform_addresses(&self) -> &AcpiPlatformAddresses
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4984,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:4984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4988
      start: 4982
    functionDepth: 3
    functionLinenumber: 4982
    functionLinenumberEnd: 4988
    functionName: DeviceManager::cleanup_vfio_container
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - map
    linkageType: ''
    returnType: void
    signature: fn cleanup_vfio_container(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryManager::create_ram_region_raw
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5006,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5006,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5020,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5020,1
    - Dst: Result::create_userspace_mapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5023,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5025,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5026,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5019,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5034,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5036,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5038,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - start_addr
    - size
    - backing_file
    argTypes:
    - u64
    - usize
    - Option<PathBuf>
    constantsTouched: []
    func_position:
      end: 5042
      start: 4998
    functionDepth: 17
    functionLinenumber: 4998
    functionLinenumberEnd: 5042
    functionName: IvshmemHandler::map_ram_region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - Arc::new
    - Result::len
    - Result::as_ptr
    - lock
    - Result::map_err
    - Result::create_userspace_mapping
    - unwrap
    - MemoryManager::create_ram_region_raw
    - Result::clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn map_ram_region(&mut self,start_addr: u64,size: usize,backing_file:
      Option<PathBuf>,) -> Result<(Arc<MmapRegion<AtomicBitmap>>, UserspaceMapping),
      IvshmemError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5045,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5045,1
    - Dst: Result::remove_userspace_mapping
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5048,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5049,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5050,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5051,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5047,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - UserspaceMapping
    constantsTouched: []
    func_position:
      end: 5058
      start: 5044
    functionDepth: 13
    functionLinenumber: 5044
    functionLinenumberEnd: 5058
    functionName: IvshmemHandler::unmap_ram_region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - map_err
    - lock
    - Ok
    - unwrap
    - len
    - Result::remove_userspace_mapping
    - raw_value
    linkageType: ''
    returnType: Result
    signature: 'fn unmap_ram_region(&mut self, mapping: UserspaceMapping) -> Result<(),
      IvshmemError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5062,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5063,1
    - Dst: Option::to_owned
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5063,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - numa_nodes
    - memory_zone_id
    argTypes:
    - '&NumaNodes'
    - '&str'
    constantsTouched: []
    func_position:
      end: 5069
      start: 5061
    functionDepth: 3
    functionLinenumber: 5061
    functionLinenumberEnd: 5069
    functionName: numa_node_id_from_memory_zone_id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - Some
    - iter
    - Option::to_owned
    - contains
    linkageType: ''
    returnType: Option
    signature: 'fn numa_node_id_from_memory_zone_id(numa_nodes: &NumaNodes, memory_zone_id:
      &str) -> Option<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5072,1
    - Dst: contains
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - numa_nodes
    - pci_segment_id
    argTypes:
    - '&NumaNodes'
    - u16
    constantsTouched: []
    func_position:
      end: 5079
      start: 5071
    functionDepth: 3
    functionLinenumber: 5071
    functionLinenumberEnd: 5079
    functionName: numa_node_id_from_pci_segment_id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - iter
    - contains
    linkageType: ''
    returnType: u32
    signature: 'fn numa_node_id_from_pci_segment_id(numa_nodes: &NumaNodes, pci_segment_id:
      u16) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5087,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5088,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 5103
      start: 5086
    functionDepth: 7
    functionLinenumber: 5086
    functionLinenumberEnd: 5103
    functionName: TpmDevice::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Self::to_aml_bytes
    - aml::Device::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5113,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5114,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5115,1
    - Dst: aml::MethodCall::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5115,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5116,1
    - Dst: into
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5116,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5120,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5122,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5126,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5127,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5126,1
    - Dst: to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5185,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5188,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5191,1
    - Dst: aml::Memory32Fixed::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5191,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5198,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5200,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5203,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5204,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5203,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5214,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5215,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5216,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5215,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5239,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5239,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5239,1
    - Dst: DeviceManager::get_device_info
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5243,1
    - Dst: '&HashMap::clone'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5243,1
    - Dst: Self::get
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5243,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5245,1
    - Dst: vm::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5243,1
    - Dst: irq
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5243,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5249,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5249,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5250,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5251,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5250,1
    - Dst: aml::Name::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5283,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5283,1
    - Dst: aml::Package::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5283,1
    - Dst: Result::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5283,1
    - Dst: aml::Device::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5285,1
    - Dst: '&str::into'
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5286,1
    - Dst: Self::to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5285,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5295,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5295,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5295,1
    - Dst: to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5297,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5300,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5300,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5300,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5300,1
    - Dst: to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 153
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut dyn acpi_tables::AmlSink'
    constantsTouched: []
    func_position:
      end: 5306
      start: 5107
    functionDepth: 12
    functionLinenumber: 5107
    functionLinenumberEnd: 5306
    functionName: DeviceManager::to_aml_bytes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - to_aml_bytes
    - to_string
    - aml::MethodCall::new
    - Vec::new
    - Self::get
    - into
    - '&str::into'
    - aml::Memory32Fixed::new
    - aml::Device::new
    - len
    - aml::Package::new
    - Self::to_aml_bytes
    - Result::push
    - is_some
    - '&HashMap::clone'
    - Result::to_aml_bytes
    - vm::Result::unwrap
    - as_str
    - lock
    - DeviceManager::get_device_info
    - unwrap
    - clone
    - irq
    - aml::Name::new
    linkageType: ''
    returnType: void
    signature: 'fn to_aml_bytes(&self, sink: &mut dyn acpi_tables::AmlSink)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5311,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5311,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5311,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5313,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5313,1
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5313,1
    - Dst: DeviceManager::get_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5321,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5321,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5321,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5321,1
    - Dst: pause
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5321,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5329
      start: 5310
    functionDepth: 13
    functionLinenumber: 5310
    functionLinenumberEnd: 5329
    functionName: DeviceManager::pause
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - pause
    - iter
    - DeviceManager::get_interrupt_controller
    - Option::unwrap
    - lock
    - unwrap
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5332,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5332,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5332,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5334,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5334,1
    - Dst: resume
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5334,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5338
      start: 5331
    functionDepth: 13
    functionLinenumber: 5331
    functionLinenumberEnd: 5338
    functionName: DeviceManager::resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 1
    functionsReached:
    - iter
    - lock
    - resume
    - unwrap
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5344
      start: 5342
    functionDepth: 2
    functionLinenumber: 5342
    functionLinenumberEnd: 5344
    functionName: DeviceManager::id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::from_data
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5347,1
    - Dst: SnapshotData::new_from_state
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5347,1
    - Dst: DeviceManager::state
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5347,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5350,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5350,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5350,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5352,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5352,1
    - Dst: ApiResult::add_snapshot
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5353,1
    - Dst: id
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5353,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5353,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5358
      start: 5346
    functionDepth: 14
    functionLinenumber: 5346
    functionLinenumberEnd: 5358
    functionName: DeviceManager::snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - ApiResult::add_snapshot
    - SnapshotData::new_from_state
    - DeviceManager::state
    - lock
    - Ok
    - unwrap
    - snapshot
    - id
    - Snapshot::from_data
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5365,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5365,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5365,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5367,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5367,1
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5367,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5371
      start: 5364
    functionDepth: 13
    functionLinenumber: 5364
    functionLinenumberEnd: 5371
    functionName: DeviceManager::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - lock
    - unwrap
    - start_dirty_log
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5374,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5374,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5374,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5376,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5376,1
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5376,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5380
      start: 5373
    functionDepth: 13
    functionLinenumber: 5373
    functionLinenumberEnd: 5380
    functionName: DeviceManager::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - stop_dirty_log
    - lock
    - unwrap
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5383,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5384,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5384,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5384,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5386,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5386,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5386,1
    - Dst: dirty_log
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5386,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5389,1
    - Dst: MemoryRangeTable::new_from_tables
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5390
      start: 5382
    functionDepth: 13
    functionLinenumber: 5382
    functionLinenumberEnd: 5390
    functionName: DeviceManager::dirty_log
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - Vec::new
    - MemoryRangeTable::new_from_tables
    - lock
    - dirty_log
    - unwrap
    - Result::push
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn dirty_log(&mut self) -> std::result::Result<MemoryRangeTable, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5393,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5393,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5393,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5395,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5395,1
    - Dst: start_migration
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5395,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5399
      start: 5392
    functionDepth: 13
    functionLinenumber: 5392
    functionLinenumberEnd: 5399
    functionName: DeviceManager::start_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - lock
    - unwrap
    - start_migration
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5402,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5402,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5402,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5404,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5404,1
    - Dst: complete_migration
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5404,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5408
      start: 5401
    functionDepth: 13
    functionLinenumber: 5401
    functionLinenumberEnd: 5408
    functionName: DeviceManager::complete_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - complete_migration
    - lock
    - unwrap
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn complete_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5425,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5426,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5435,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5436,1
    - Dst: String::fill
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5447,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5451,1
    - Dst: to_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 51
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 5457
      start: 5421
    functionDepth: 0
    functionLinenumber: 5421
    functionLinenumberEnd: 5457
    functionName: DeviceManager::read
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - String::copy_from_slice
    - String::fill
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5464,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5465,1
    - Dst: trailing_zeros
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5468,1
    - Dst: DeviceManager::eject_device
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5469,1
    - Dst: DeviceManager::cleanup_vfio_container
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5472,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5479,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5480,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 5497
      start: 5459
    functionDepth: 14
    functionLinenumber: 5459
    functionLinenumberEnd: 5497
    functionName: DeviceManager::write
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - DeviceManager::cleanup_vfio_container
    - trailing_zeros
    - copy_from_slice
    - u32::from_le_bytes
    - len
    - DeviceManager::eject_device
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<std::sync::Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceManager::resume
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5504,1
    - Dst: drain
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5508,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5509,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5509,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5509,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5512,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5512,1
    - Dst: libc::tcsetattr
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5514,1
    - Dst: std::io::stdout
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5514,1
    - Dst: vmm_sys_util::errno::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5514,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5516
      start: 5501
    functionDepth: 14
    functionLinenumber: 5501
    functionLinenumberEnd: 5516
    functionName: DeviceManager::drop
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - libc::tcsetattr
    - drain
    - DeviceManager::resume
    - as_raw_fd
    - lock
    - vmm_sys_util::errno::Result::lock
    - unwrap
    - std::io::stdout
    - shutdown
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_mmio_allocators
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5525,1
    - Dst: create_mmio_allocators
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5536,1
    - Dst: create_mmio_allocators
      Src: /src/cloud-hypervisor/vmm/src/device_manager.rs:5555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5573
      start: 5524
    functionDepth: 10
    functionLinenumber: 5524
    functionLinenumberEnd: 5573
    functionName: unit_tests::test_create_mmio_allocators
    functionSourceFile: /src/cloud-hypervisor/vmm/src/device_manager.rs
    functionUses: 0
    functionsReached:
    - create_mmio_allocators
    linkageType: ''
    returnType: void
    signature: fn test_create_mmio_allocators()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:31,1
    - Dst: Arc::allocate_gsi
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:32,1
    - Dst: Option::ok_or_else
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:32,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:34,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:36,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - '&mut SystemAllocator'
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: InterruptRoute::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 1
    functionsReached:
    - EventFd::new
    - Option::ok_or_else
    - AtomicBool::new
    - io::Error::other
    - Arc::allocate_gsi
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(allocator: &mut SystemAllocator) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:44,1
    - Dst: register_irqfd
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:45,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:45,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:46,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:49,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - vm
    argTypes:
    - '&dyn hypervisor::Vm'
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 16
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: InterruptRoute::enable
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - load
    - register_irqfd
    - store
    - io::Error::other
    - vm::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn enable(&self, vm: &dyn hypervisor::Vm) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:56,1
    - Dst: unregister_irqfd
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:57,1
    - Dst: vm::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:57,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:58,1
    - Dst: store
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:61,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - vm
    argTypes:
    - '&dyn hypervisor::Vm'
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 16
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: InterruptRoute::disable
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - load
    - store
    - io::Error::other
    - vm::Result::map_err
    - unregister_irqfd
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn disable(&self, vm: &dyn hypervisor::Vm) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 8
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: InterruptRoute::trigger
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: Result
    signature: pub fn trigger(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:72,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:73,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: InterruptRoute::notifier
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - expect
    - Some
    - try_clone
    linkageType: ''
    returnType: Option
    signature: pub fn notifier(&self) -> Option<EventFd>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:93,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:94,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:99,1
    - Dst: set_gsi_routing
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:102,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:102,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - routes
    argTypes:
    - '&HashMap<u32, RoutingEntry>'
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: MsiInterruptGroup::set_gsi_routes
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 2
    functionsReached:
    - set_gsi_routing
    - map_err
    - Vec::new
    - Result::iter
    - io::Error::other
    - Result::push
    linkageType: ''
    returnType: Result
    signature: 'fn set_gsi_routes(&self, routes: &HashMap<u32, RoutingEntry>) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - vm
    - gsi_msi_routes
    - irq_routes
    argTypes:
    - Arc<dyn hypervisor::Vm>
    - Arc<Mutex<HashMap<u32, RoutingEntry>>>
    - HashMap<InterruptIndex, InterruptRoute>
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: MsiInterruptGroup::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(vm: Arc<dyn hypervisor::Vm>,gsi_msi_routes: Arc<Mutex<HashMap<u32,
      RoutingEntry>>>,irq_routes: HashMap<InterruptIndex, InterruptRoute>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:124,1
    - Dst: enable
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:125,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:125,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 8
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: MsiInterruptGroup::enable
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - iter
    - enable
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn enable(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:132,1
    - Dst: disable
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:133,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:133,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: MsiInterruptGroup::disable
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - iter
    - Ok
    - disable
    linkageType: ''
    returnType: Result
    signature: fn disable(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:140,1
    - Dst: trigger
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:141,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:144,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - InterruptIndex
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 8
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: MsiInterruptGroup::trigger
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - trigger
    - io::Error::other
    - Err
    - get
    linkageType: ''
    returnType: Result
    signature: 'fn trigger(&self, index: InterruptIndex) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:150,1
    - Dst: notifier
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - InterruptIndex
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 8
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: MsiInterruptGroup::notifier
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - notifier
    - get
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, index: InterruptIndex) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:164,1
    - Dst: make_routing_entry
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:166,1
    - Dst: disable
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:175,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:175,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:178,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:178,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:179,1
    - Dst: MsiInterruptGroup::set_gsi_routes
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:181,1
    - Dst: enable
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:188,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:188,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:191,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:194,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 53
    argCount: 4
    argNames:
    - index
    - config
    - masked
    - set_gsi
    argTypes:
    - InterruptIndex
    - InterruptSourceConfig
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 197
      start: 157
    functionDepth: 12
    functionLinenumber: 157
    functionLinenumberEnd: 197
    functionName: MsiInterruptGroup::update
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - enable
    - Err
    - lock
    - make_routing_entry
    - Ok
    - unwrap
    - io::Error::other
    - get
    - MsiInterruptGroup::set_gsi_routes
    - Result::insert
    - disable
    linkageType: ''
    returnType: Result
    signature: 'fn update(&self,index: InterruptIndex,config: InterruptSourceConfig,masked:
      bool,set_gsi: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:200,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:200,1
    - Dst: MsiInterruptGroup::set_gsi_routes
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 13
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: MsiInterruptGroup::set_gsi
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - lock
    - MsiInterruptGroup::set_gsi_routes
    - unwrap
    linkageType: ''
    returnType: Result
    signature: fn set_gsi(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ioapic
    - irq
    argTypes:
    - Arc<Mutex<dyn InterruptController>>
    - u32
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: LegacyUserspaceInterruptGroup::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(ioapic: Arc<Mutex<dyn InterruptController>>, irq: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:218,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:218,1
    - Dst: service_irq
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:218,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:218,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - _index
    argTypes:
    - InterruptIndex
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 13
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: LegacyUserspaceInterruptGroup::trigger
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - service_irq
    - map_err
    - lock
    - unwrap
    - io::Error::other
    linkageType: ''
    returnType: Result
    signature: 'fn trigger(&self, _index: InterruptIndex) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _index
    - _config
    - _masked
    - _set_gsi
    argTypes:
    - InterruptIndex
    - InterruptSourceConfig
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: LegacyUserspaceInterruptGroup::update
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update(&self,_index: InterruptIndex,_config: InterruptSourceConfig,_masked:
      bool,_set_gsi: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: LegacyUserspaceInterruptGroup::set_gsi
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn set_gsi(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:240,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:240,1
    - Dst: notifier
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - _index
    argTypes:
    - InterruptIndex
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 13
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: LegacyUserspaceInterruptGroup::notifier
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - notifier
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, _index: InterruptIndex) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ioapic
    argTypes:
    - Arc<Mutex<dyn InterruptController>>
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: LegacyUserspaceInterruptManager::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(ioapic: Arc<Mutex<dyn InterruptController>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:266,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:266,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - allocator
    - vm
    argTypes:
    - Arc<Mutex<SystemAllocator>>
    - Arc<dyn hypervisor::Vm>
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: MsiInterruptManager::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 1
    functionsReached:
    - Mutex::new
    - HashMap::new
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(allocator: Arc<Mutex<SystemAllocator>>, vm: Arc<dyn hypervisor::Vm>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:280,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:280,1
    - Dst: LegacyUserspaceInterruptGroup::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:280,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - config
    argTypes:
    - Self::GroupConfig
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: LegacyUserspaceInterruptManager::create_group
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - LegacyUserspaceInterruptGroup::new
    - Arc::new
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_group(&self, config: Self::GroupConfig) -> Result<Arc<dyn
      InterruptSourceGroup>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _group
    argTypes:
    - Arc<dyn InterruptSourceGroup>
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: LegacyUserspaceInterruptManager::destroy_group
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn destroy_group(&self, _group: Arc<dyn InterruptSourceGroup>) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:295,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:295,1
    - Dst: HashMap::with_capacity
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:297,1
    - Dst: insert
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:299,1
    - Dst: InterruptRoute::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:299,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:302,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:302,1
    - Dst: MsiInterruptGroup::new
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:302,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:303,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - config
    argTypes:
    - Self::GroupConfig
    constantsTouched: []
    func_position:
      end: 307
      start: 294
    functionDepth: 13
    functionLinenumber: 294
    functionLinenumberEnd: 307
    functionName: MsiInterruptManager::create_group
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - HashMap::with_capacity
    - insert
    - Arc::new
    - lock
    - MsiInterruptGroup::new
    - InterruptRoute::new
    - unwrap
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn create_group(&self, config: Self::GroupConfig) -> Result<Arc<dyn
      InterruptSourceGroup>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/interrupt.rs:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _group
    argTypes:
    - Arc<dyn InterruptSourceGroup>
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: MsiInterruptManager::destroy_group
    functionSourceFile: /src/cloud-hypervisor/vmm/src/interrupt.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn destroy_group(&self, _group: Arc<dyn InterruptSourceGroup>) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::is_empty
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:48,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:49,1
    - Dst: LandlockError::InvalidLandlockAccess
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:49,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:50,1
    - Dst: BitFlags::<AccessFs>::empty
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:54,1
    - Dst: FdtWriterResult::chars
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:55,1
    - Dst: AccessFs::from_read
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:57,1
    - Dst: AccessFs::from_write
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:58,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:60,1
    - Dst: LandlockError::InvalidLandlockAccess
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:60,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:61,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 67
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 67
    functionName: LandlockAccess::try_from
    functionSourceFile: /src/cloud-hypervisor/vmm/src/landlock.rs
    functionUses: 3
    functionsReached:
    - AccessFs::from_write
    - '&str::to_string'
    - Err
    - to_string
    - FdtWriterResult::chars
    - AccessFs::from_read
    - LandlockError::InvalidLandlockAccess
    - BitFlags::<AccessFs>::empty
    - FdtWriterResult::is_empty
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(s: &str) -> Result<LandlockAccess, LandlockError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AccessFs::from_all
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:75,1
    - Dst: Ruleset::default
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:77,1
    - Dst: Self::set_compatibility
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:77,1
    - Dst: handle_access
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:77,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:77,1
    - Dst: set_compatibility
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:77,1
    - Dst: create
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:85,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:85,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 14
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: Landlock::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/landlock.rs
    functionUses: 5
    functionsReached:
    - AccessFs::from_all
    - handle_access
    - Ruleset::default
    - map_err
    - Self::set_compatibility
    - set_compatibility
    - create
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn new() -> Result<Landlock, LandlockError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: landlock::path_beneath_rules
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:99,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:100,1
    - Dst: add_rules
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:100,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:100,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - path
    - access
    argTypes:
    - '&Path'
    - BitFlags<AccessFs>
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: Landlock::add_rule
    functionSourceFile: /src/cloud-hypervisor/vmm/src/landlock.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_mut
    - add_rules
    - landlock::path_beneath_rules
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn add_rule(&mut self,path: &Path,access: BitFlags<AccessFs>,)
      -> Result<(), LandlockError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Landlock::add_rule
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:112,1
    - Dst: LandlockAccess::try_from
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:112,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - path
    - access
    argTypes:
    - '&Path'
    - '&str'
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: Landlock::add_rule_with_access
    functionSourceFile: /src/cloud-hypervisor/vmm/src/landlock.rs
    functionUses: 0
    functionsReached:
    - LandlockAccess::try_from
    - Landlock::add_rule
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn add_rule_with_access(&mut self,path: &Path,access: &str,)
      -> Result<(), LandlockError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: restrict_self
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:117,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:117,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: Landlock::restrict_self
    functionSourceFile: /src/cloud-hypervisor/vmm/src/landlock.rs
    functionUses: 0
    functionsReached:
    - restrict_self
    - map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn restrict_self(self) -> Result<(), LandlockError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LandlockAccess::try_from
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:147,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:147,1
    - Dst: LandlockAccess::try_from
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:150,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:150,1
    - Dst: LandlockAccess::try_from
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:153,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:153,1
    - Dst: LandlockAccess::try_from
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:156,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/vmm/src/landlock.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 157
    functionName: test_try_from_access
    functionSourceFile: /src/cloud-hypervisor/vmm/src/landlock.rs
    functionUses: 0
    functionsReached:
    - LandlockAccess::try_from
    - Result::unwrap
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_try_from_access()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_range
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:123,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:124,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:124,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - region
    - proximity_domain
    - flags
    argTypes:
    - '&Arc<GuestRegionMmap>'
    - u32
    - MemAffinityFlags
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 7
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: MemoryAffinity::from_region
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - Self::from_range
    - Result::start_addr
    - Result::len
    - Result::raw_value
    linkageType: ''
    returnType: Self
    signature: 'fn from_region(region: &Arc<GuestRegionMmap>,proximity_domain: u32,flags:
      MemAffinityFlags,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:150,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - base_addr
    - size
    - proximity_domain
    - flags
    argTypes:
    - u64
    - u64
    - u32
    - MemAffinityFlags
    constantsTouched: []
    func_position:
      end: 153
      start: 131
    functionDepth: 6
    functionLinenumber: 131
    functionLinenumberEnd: 153
    functionName: MemoryAffinity::from_range
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 0
    functionsReached:
    - bits
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'fn from_range(base_addr: u64,size: u64,proximity_domain: u32,flags:
      MemAffinityFlags,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:189,1
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:191,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:193,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:195,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:195,1
    - Dst: to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:195,1
    - Dst: '&Arc<Mutex<CpuManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:196,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:196,1
    - Dst: to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:196,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:197,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:197,1
    - Dst: to_aml_bytes
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:197,1
    - Dst: Result::append_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 3
    argNames:
    - device_manager
    - cpu_manager
    - memory_manager
    argTypes:
    - '&Arc<Mutex<DeviceManager>>'
    - '&Arc<Mutex<CpuManager>>'
    - '&Arc<Mutex<MemoryManager>>'
    constantsTouched: []
    func_position:
      end: 201
      start: 184
    functionDepth: 13
    functionLinenumber: 184
    functionLinenumberEnd: 201
    functionName: create_dsdt_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - Result::lock
    - '&Arc<Mutex<DeviceManager>>::lock'
    - '&Arc<Mutex<CpuManager>>::lock'
    - Vec::new
    - to_aml_bytes
    - tracer::trace_scoped
    - Result::append_slice
    - unwrap
    - Sdt::new
    linkageType: ''
    returnType: Sdt
    signature: 'pub fn create_dsdt_table(device_manager: &Arc<Mutex<DeviceManager>>,cpu_manager:
      &Arc<Mutex<CpuManager>>,memory_manager: &Arc<Mutex<MemoryManager>>,) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:206,1
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:209,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:212,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:212,1
    - Dst: '&Arc<Mutex<DeviceManager>>::acpi_platform_addresses'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:213,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:215,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:217,1
    - Dst: '&Arc<Mutex<DeviceManager>>::acpi_platform_addresses'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:220,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:225,1
    - Dst: '&Arc<Mutex<DeviceManager>>::acpi_platform_addresses'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:228,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:233,1
    - Dst: '&Arc<Mutex<DeviceManager>>::acpi_platform_addresses'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:236,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:238,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:245,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:250,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:252,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:254,1
    - Dst: Result::write_bytes
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:256,1
    - Dst: Result::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 72
    argCount: 2
    argNames:
    - dsdt_offset
    - device_manager
    argTypes:
    - GuestAddress
    - '&Arc<Mutex<DeviceManager>>'
    constantsTouched: []
    func_position:
      end: 261
      start: 205
    functionDepth: 13
    functionLinenumber: 205
    functionLinenumberEnd: 261
    functionName: create_facp_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 2
    functionsReached:
    - '&Arc<Mutex<DeviceManager>>::lock'
    - Result::write
    - tracer::trace_scoped
    - Result::update_checksum
    - '&Arc<Mutex<DeviceManager>>::acpi_platform_addresses'
    - Result::write_bytes
    - unwrap
    - Sdt::new
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_facp_table(dsdt_offset: GuestAddress, device_manager: &Arc<Mutex<DeviceManager>>)
      -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:264,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:267,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:271,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - pci_segments
    argTypes:
    - '&[PciSegment]'
    constantsTouched: []
    func_position:
      end: 280
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 280
    functionName: create_mcfg_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 2
    functionsReached:
    - Sdt::new
    - Result::append
    - Default::default
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_mcfg_table(pci_segments: &[PciSegment]) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:283,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:285,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:286,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:287,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:288,1
    - Dst: update_checksum
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 7
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: create_tpm2_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - update_checksum
    - Sdt::new
    - write
    linkageType: ''
    returnType: Sdt
    signature: fn create_tpm2_table() -> Sdt
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:298,1
    - Dst: Result::append_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:300,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:306,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:310,1
    - Dst: MemoryAffinity::from_region
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:310,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:318,1
    - Dst: MemoryAffinity::from_region
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:318,1
    - Dst: arch::x86_64::get_x2apic_id
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:327,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:337,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:344,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 2
    argNames:
    - numa_nodes
    - topology
    argTypes:
    - '&NumaNodes'
    - Option<(u16, u16, u16, u16)>
    constantsTouched: []
    func_position:
      end: 358
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 358
    functionName: create_srat_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 2
    functionsReached:
    - iter
    - Result::append
    - Default::default
    - Result::append_slice
    - arch::x86_64::get_x2apic_id
    - MemoryAffinity::from_region
    - Sdt::new
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_srat_table(numa_nodes: &NumaNodes,#[cfg(target_arch = "x86_64")]
      topology: Option<(u16, u16, u16, u16)>,) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:361,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:363,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:363,1
    - Dst: keys
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:365,1
    - Dst: cloned
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:365,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:365,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:366,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:368,1
    - Dst: Result::get
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:371,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - numa_nodes
    argTypes:
    - '&NumaNodes'
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 381
    functionName: create_slit_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 2
    functionsReached:
    - iter
    - Result::get
    - Result::append
    - keys
    - len
    - cloned
    - Sdt::new
    - collect
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_slit_table(numa_nodes: &NumaNodes) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:394,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:396,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:398,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:400,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:402,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:404,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:406,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:408,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:410,1
    - Dst: Result::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 384
    functionDepth: 8
    functionLinenumber: 384
    functionLinenumberEnd: 415
    functionName: create_gtdt_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - Sdt::new
    - Result::write
    - Result::update_checksum
    linkageType: ''
    returnType: Sdt
    signature: fn create_gtdt_table() -> Sdt
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:420,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:422,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:424,1
    - Dst: GenericAddress::mmio_address::<u8>
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:424,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:426,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:428,1
    - Dst: Option::to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:428,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:430,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:432,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:434,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:436,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:438,1
    - Dst: Result::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - base_address
    - gsi
    argTypes:
    - u64
    - u32
    constantsTouched: []
    func_position:
      end: 443
      start: 418
    functionDepth: 8
    functionLinenumber: 418
    functionLinenumberEnd: 443
    functionName: create_spcr_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - Option::to_le
    - Result::write
    - GenericAddress::mmio_address::<u8>
    - Result::update_checksum
    - Sdt::new
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_spcr_table(base_address: u64, gsi: u32) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:452,1
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:454,1
    - Dst: Result::write_u32
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:457,1
    - Dst: Result::write_u32
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:459,1
    - Dst: Result::write_u8
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:467,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:469,1
    - Dst: Result::write_u8
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:471,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:473,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:473,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:475,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:477,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:479,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:481,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:483,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:485,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:487,1
    - Dst: Result::write_u16
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:489,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:491,1
    - Dst: GenericAddress::mmio_address::<u8>
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:493,1
    - Dst: Result::write_u32
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:496,1
    - Dst: chars
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:501,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:501,1
    - Dst: Result::write_u8
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:502,1
    - Dst: Result::write_u8
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:507,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:508,1
    - Dst: Result::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 106
    argCount: 1
    argNames:
    - base_address
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 515
      start: 446
    functionDepth: 8
    functionLinenumber: 446
    functionLinenumberEnd: 515
    functionName: create_dbg2_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - enumerate
    - Result::write
    - GenericAddress::mmio_address::<u8>
    - Result::update_checksum
    - Result::write_u8
    - len
    - chars
    - Result::write_u32
    - Sdt::new
    - Result::write_u16
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_dbg2_table(base_address: u64) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:529,1
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:531,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:532,1
    - Dst: u16::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:532,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:532,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:533,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:533,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:536,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:538,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:538,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:540,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:540,1
    - Dst: u16::iter
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:543,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:543,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:546,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:548,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:550,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:553,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:553,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:555,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:555,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:557,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:557,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:559,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:559,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:561,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:561,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:563,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:565,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:565,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:567,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:567,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:573,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:573,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:578,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:578,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:580,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:580,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:583,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:583,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:585,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:585,1
    - Dst: Result::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 160
    argCount: 1
    argNames:
    - pci_segments
    argTypes:
    - '&[PciSegment]'
    constantsTouched: []
    func_position:
      end: 591
      start: 518
    functionDepth: 8
    functionLinenumber: 518
    functionLinenumberEnd: 591
    functionName: create_iort_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - u16::len
    - Result::write
    - to_le
    - impl Iterator::enumerate
    - Result::update_checksum
    - u16::iter
    - Sdt::new
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_iort_table(pci_segments: &[PciSegment]) -> Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:595,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:597,1
    - Dst: '&[PciBdf]::len'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:597,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:599,1
    - Dst: Result::append_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:601,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:604,1
    - Dst: '&PciBdf::segment'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:607,1
    - Dst: '&PciBdf::into'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:608,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:609,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:613,1
    - Dst: DeviceManagerResult::into
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:616,1
    - Dst: DeviceManagerResult::segment
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:617,1
    - Dst: DeviceManagerResult::segment
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:618,1
    - Dst: DeviceManagerResult::into
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:619,1
    - Dst: DeviceManagerResult::into
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:620,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 2
    argNames:
    - iommu_bdf
    - devices_bdf
    argTypes:
    - '&PciBdf'
    - '&[PciBdf]'
    constantsTouched: []
    func_position:
      end: 627
      start: 593
    functionDepth: 17
    functionLinenumber: 593
    functionLinenumberEnd: 627
    functionName: create_viot_table
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 2
    functionsReached:
    - '&PciBdf::into'
    - '&[PciBdf]::len'
    - Result::append
    - DeviceManagerResult::segment
    - Default::default
    - Result::append_slice
    - DeviceManagerResult::into
    - Sdt::new
    - '&PciBdf::segment'
    linkageType: ''
    returnType: Sdt
    signature: 'fn create_viot_table(iommu_bdf: &PciBdf, devices_bdf: &[PciBdf]) ->
      Sdt'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:645,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:647,1
    - Dst: create_dsdt_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:650,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:651,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:651,1
    - Dst: create_facp_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:654,1
    - Dst: GuestAddress::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:655,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:655,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:655,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:656,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:656,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:657,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: get_interrupt_controller
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: get_vgic
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:661,1
    - Dst: '&Arc<Mutex<CpuManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:670,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:670,1
    - Dst: create_madt
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:670,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:674,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:674,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:674,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:675,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:675,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:676,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:677,1
    - Dst: '&Arc<Mutex<CpuManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:683,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:683,1
    - Dst: create_pptt
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:683,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:684,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:684,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:685,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:685,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:686,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:687,1
    - Dst: create_gtdt_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:694,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:695,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:695,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:696,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:696,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:697,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:698,1
    - Dst: create_mcfg_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:703,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:703,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:703,1
    - Dst: pci_segments
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:703,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:704,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:704,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:705,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:705,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:706,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:707,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:713,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:713,1
    - Dst: get_device_info
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:713,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:713,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:713,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:718,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:719,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:721,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:721,1
    - Dst: get_device_info
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:721,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:721,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:721,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:726,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:721,1
    - Dst: irq
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:721,1
    - Dst: create_spcr_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:735,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:736,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:736,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:737,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:737,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:738,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:739,1
    - Dst: create_dbg2_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:743,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:744,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:744,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:745,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:745,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:746,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:747,1
    - Dst: create_tpm2_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:753,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:754,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:754,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:755,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:755,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:756,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:758,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:763,1
    - Dst: '&Arc<Mutex<CpuManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:765,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:765,1
    - Dst: get_vcpu_topology
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:765,1
    - Dst: create_srat_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:767,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:772,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:772,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:773,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:773,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:774,1
    - Dst: create_slit_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:777,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:778,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:778,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:778,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:779,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:779,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:780,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:782,1
    - Dst: create_iort_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:788,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:788,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:788,1
    - Dst: pci_segments
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:788,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:789,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:789,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:790,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:790,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:791,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:792,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:797,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:797,1
    - Dst: iommu_attached_devices
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:797,1
    - Dst: create_viot_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:799,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:801,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:801,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:802,1
    - Dst: Sdt::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:802,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:803,1
    - Dst: Sdt::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:804,1
    - Dst: Sdt::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:809,1
    - Dst: Result::append
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:811,1
    - Dst: Result::update_checksum
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:813,1
    - Dst: madt_addr::checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:814,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:814,1
    - Dst: Result::extend_from_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:815,1
    - Dst: Result::as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:815,1
    - Dst: Rsdp::new
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:818,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 376
    argCount: 6
    argNames:
    - dsdt_addr
    - device_manager
    - cpu_manager
    - memory_manager
    - numa_nodes
    - tpm_enabled
    argTypes:
    - GuestAddress
    - '&Arc<Mutex<DeviceManager>>'
    - '&Arc<Mutex<CpuManager>>'
    - '&Arc<Mutex<MemoryManager>>'
    - '&NumaNodes'
    - bool
    constantsTouched: []
    func_position:
      end: 821
      start: 636
    functionDepth: 14
    functionLinenumber: 636
    functionLinenumberEnd: 821
    functionName: create_acpi_tables_internal
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 2
    functionsReached:
    - '&Arc<Mutex<CpuManager>>::lock'
    - create_mcfg_table
    - create_viot_table
    - create_dsdt_table
    - Sdt::len
    - Result::update_checksum
    - create_madt
    - contains_key
    - to_string
    - checked_add
    - '&Arc<Mutex<DeviceManager>>::lock'
    - Result::append
    - Vec::new
    - create_gtdt_table
    - iommu_attached_devices
    - Result::as_slice
    - create_iort_table
    - Sdt::as_slice
    - get
    - Result::push
    - get_device_info
    - raw_value
    - is_empty
    - get_vcpu_topology
    - pci_segments
    - madt_addr::checked_add
    - create_facp_table
    - get_interrupt_controller
    - lock
    - create_spcr_table
    - unwrap
    - get_vgic
    - Sdt::new
    - clone
    - create_srat_table
    - create_slit_table
    - Result::extend_from_slice
    - create_dbg2_table
    - create_tpm2_table
    - irq
    - GuestAddress::checked_add
    - create_pptt
    - Rsdp::new
    linkageType: ''
    returnType: (Rsdp, Vec
    signature: 'fn create_acpi_tables_internal(dsdt_addr: GuestAddress,device_manager:
      &Arc<Mutex<DeviceManager>>,cpu_manager: &Arc<Mutex<CpuManager>>,memory_manager:
      &Arc<Mutex<MemoryManager>>,numa_nodes: &NumaNodes,tpm_enabled: bool,) -> (Rsdp,
      Vec<u8>, Vec<u64>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:831,1
    - Dst: create_acpi_tables_internal
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:832,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:843,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:844,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:849,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:851,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:852,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:859,1
    - Dst: '&[(usize, usize)]::push'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:862,1
    - Dst: '&[(usize, usize)]::push'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:865,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:866,1
    - Dst: '&[(usize, usize)]::push'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:869,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    - Dst: fw_cfg
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    - Dst: add_acpi
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 5
    argNames:
    - device_manager
    - cpu_manager
    - memory_manager
    - numa_nodes
    - tpm_enabled
    argTypes:
    - '&Arc<Mutex<DeviceManager>>'
    - '&Arc<Mutex<CpuManager>>'
    - '&Arc<Mutex<MemoryManager>>'
    - '&NumaNodes'
    - bool
    constantsTouched: []
    func_position:
      end: 880
      start: 824
    functionDepth: 15
    functionLinenumber: 824
    functionLinenumberEnd: 880
    functionName: create_acpi_tables_for_fw_cfg
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - expect
    - vm_memory::GuestAddress
    - '&Arc<Mutex<DeviceManager>>::lock'
    - map_err
    - fw_cfg
    - push
    - add_acpi
    - lock
    - unwrap
    - len
    - get
    - create_acpi_tables_internal
    - '&[(usize, usize)]::push'
    linkageType: ''
    returnType: Result
    signature: 'pub fn create_acpi_tables_for_fw_cfg(device_manager: &Arc<Mutex<DeviceManager>>,cpu_manager:
      &Arc<Mutex<CpuManager>>,memory_manager: &Arc<Mutex<MemoryManager>>,numa_nodes:
      &NumaNodes,tpm_enabled: bool,) -> Result<(), crate::vm::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tracer::trace_scoped
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:890,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:892,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:894,1
    - Dst: Rsdp::len
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:894,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:894,1
    - Dst: create_acpi_tables_internal
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:896,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:905,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:906,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:905,1
    - Dst: GuestMemoryMmap::write_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:909,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:910,1
    - Dst: expect
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 6
    argNames:
    - guest_mem
    - device_manager
    - cpu_manager
    - memory_manager
    - numa_nodes
    - tpm_enabled
    argTypes:
    - '&GuestMemoryMmap'
    - '&Arc<Mutex<DeviceManager>>'
    - '&Arc<Mutex<CpuManager>>'
    - '&Arc<Mutex<MemoryManager>>'
    - '&NumaNodes'
    - bool
    constantsTouched: []
    func_position:
      end: 920
      start: 882
    functionDepth: 15
    functionLinenumber: 882
    functionLinenumberEnd: 920
    functionName: create_acpi_tables
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 2
    functionsReached:
    - expect
    - Instant::now
    - as_slice
    - tracer::trace_scoped
    - GuestMemoryMmap::write_slice
    - unwrap
    - Rsdp::len
    - create_acpi_tables_internal
    - as_bytes
    - checked_add
    linkageType: ''
    returnType: GuestAddress
    signature: 'pub fn create_acpi_tables(guest_mem: &GuestMemoryMmap,device_manager:
      &Arc<Mutex<DeviceManager>>,cpu_manager: &Arc<Mutex<CpuManager>>,memory_manager:
      &Arc<Mutex<MemoryManager>>,numa_nodes: &NumaNodes,tpm_enabled: bool,) -> GuestAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:937,1
    - Dst: create_facp_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:937,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:937,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:940,1
    - Dst: '&Arc<Mutex<CpuManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:940,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:940,1
    - Dst: create_madt
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:940,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:943,1
    - Dst: create_mcfg_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:943,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:944,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:944,1
    - Dst: pci_segments
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:944,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:949,1
    - Dst: '&Arc<Mutex<CpuManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:951,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:951,1
    - Dst: get_vcpu_topology
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:951,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:954,1
    - Dst: create_srat_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:954,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:961,1
    - Dst: create_slit_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:961,1
    - Dst: '&Arc<Mutex<DeviceManager>>::lock'
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:965,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:965,1
    - Dst: iommu_attached_devices
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:965,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:967,1
    - Dst: create_viot_table
      Src: /src/cloud-hypervisor/vmm/src/acpi.rs:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 55
    argCount: 4
    argNames:
    - device_manager
    - cpu_manager
    - memory_manager
    - numa_nodes
    argTypes:
    - '&Arc<Mutex<DeviceManager>>'
    - '&Arc<Mutex<CpuManager>>'
    - '&Arc<Mutex<MemoryManager>>'
    - '&NumaNodes'
    constantsTouched: []
    func_position:
      end: 971
      start: 923
    functionDepth: 14
    functionLinenumber: 923
    functionLinenumberEnd: 971
    functionName: create_acpi_tables_tdx
    functionSourceFile: /src/cloud-hypervisor/vmm/src/acpi.rs
    functionUses: 1
    functionsReached:
    - is_empty
    - vm_memory::GuestAddress
    - '&Arc<Mutex<CpuManager>>::lock'
    - create_mcfg_table
    - '&Arc<Mutex<DeviceManager>>::lock'
    - get_vcpu_topology
    - pci_segments
    - create_slit_table
    - create_viot_table
    - create_facp_table
    - iommu_attached_devices
    - create_madt
    - unwrap
    - Result::push
    - create_srat_table
    linkageType: ''
    returnType: Vec
    signature: 'pub fn create_acpi_tables_tdx(device_manager: &Arc<Mutex<DeviceManager>>,cpu_manager:
      &Arc<Mutex<CpuManager>>,memory_manager: &Arc<Mutex<MemoryManager>>,numa_nodes:
      &NumaNodes,) -> Vec<Sdt>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::isatty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:82,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:83,1
    - Dst: std::mem::zeroed
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:88,1
    - Dst: libc::tcgetattr
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:90,1
    - Dst: vmm_sys_util::errno::errno_result
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:92,1
    - Dst: '&mut Option<termios>::is_none'
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:94,1
    - Dst: '&mut Option<termios>::replace'
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:95,1
    - Dst: f
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:98,1
    - Dst: libc::tcsetattr
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:101,1
    - Dst: vmm_sys_util::errno::errno_result
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:103,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - fd
    - f
    - original_termios_opt
    argTypes:
    - RawFd
    - F
    - '&mut Option<termios>'
    constantsTouched: []
    func_position:
      end: 107
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 107
    functionName: modify_mode
    functionSourceFile: /src/cloud-hypervisor/vmm/src/console_devices.rs
    functionUses: 1
    functionsReached:
    - libc::isatty
    - libc::tcgetattr
    - libc::tcsetattr
    - vmm_sys_util::errno::errno_result
    - '&mut Option<termios>::replace'
    - std::mem::zeroed
    - f
    - '&mut Option<termios>::is_none'
    - Ok
    linkageType: ''
    returnType: vmm_sys_util::errno::Result
    signature: 'fn modify_mode<F: FnOnce(&mut termios)>(fd: RawFd,f: F,original_termios_opt:
      &mut Option<termios>,) -> vmm_sys_util::errno::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: modify_mode
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:113,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:114,1
    - Dst: libc::cfmakeraw
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:116,1
    - Dst: vmm_sys_util::errno::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - f
    - original_termios_opt
    argTypes:
    - '&dyn AsRawFd'
    - '&mut Option<termios>'
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: set_raw_mode
    functionSourceFile: /src/cloud-hypervisor/vmm/src/console_devices.rs
    functionUses: 1
    functionsReached:
    - modify_mode
    - vmm_sys_util::errno::Result::map_err
    - Result::as_raw_fd
    - libc::cfmakeraw
    linkageType: ''
    returnType: ConsoleDeviceResult
    signature: 'fn set_raw_mode(f: &dyn AsRawFd,original_termios_opt: &mut Option<termios>,)
      -> ConsoleDeviceResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:132,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:132,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:132,1
    - Dst: IoResult::custom_flags
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:132,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:132,1
    - Dst: OpenOptions::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:139,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:139,1
    - Dst: IoResult::write
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:139,1
    - Dst: IoResult::custom_flags
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:139,1
    - Dst: open
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:139,1
    - Dst: libc::ioctl
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:147,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:147,1
    - Dst: libc::ioctl
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:151,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:152,1
    - Dst: vmm_sys_util::errno::errno_result
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:158,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:158,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:158,1
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:161,1
    - Dst: std::fs::read_link
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:162,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:165,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:165,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 122
    functionDepth: 8
    functionLinenumber: 122
    functionLinenumberEnd: 166
    functionName: create_pty
    functionSourceFile: /src/cloud-hypervisor/vmm/src/console_devices.rs
    functionUses: 1
    functionsReached:
    - OpenOptions::new
    - map_err
    - usize::into
    - open
    - File::from_raw_fd
    - IoResult::custom_flags
    - libc::ioctl
    - PathBuf::from
    - vmm_sys_util::errno::errno_result
    - Ok
    - IoResult::write
    - Result::read
    - as_raw_fd
    - std::fs::read_link
    linkageType: ''
    returnType: io::Result
    signature: fn create_pty() -> io::Result<(File, File, PathBuf)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:170,1
    - Dst: vmm_sys_util::errno::errno_result
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:172,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:175,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: dup_stdout
    functionSourceFile: /src/cloud-hypervisor/vmm/src/console_devices.rs
    functionUses: 1
    functionsReached:
    - vmm_sys_util::errno::errno_result
    - File::from_raw_fd
    - libc::dup
    - Ok
    linkageType: ''
    returnType: vmm_sys_util::errno::Result
    signature: fn dup_stdout() -> vmm_sys_util::errno::Result<File>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:179,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:179,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:179,1
    - Dst: std::result::Result::lock
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:180,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:180,1
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:181,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:181,1
    - Dst: File::create
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:186,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:186,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:186,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:186,1
    - Dst: ConsoleOutput::File
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:188,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:188,1
    - Dst: create_pty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:192,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:192,1
    - Dst: set_raw_mode
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:193,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:193,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:194,1
    - Dst: String::clone
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:194,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:195,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:195,1
    - Dst: sigwinch_listener::listen_for_sigwinch_on_tty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:196,1
    - Dst: hypervisor_type
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:199,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:196,1
    - Dst: ConsoleOutput::Pty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:203,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:203,1
    - Dst: dup_stdout
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:209,1
    - Dst: vmm_sys_util::errno::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:209,1
    - Dst: libc::isatty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:212,1
    - Dst: vmm_sys_util::errno::Result::as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:212,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:213,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:213,1
    - Dst: sigwinch_listener::listen_for_sigwinch_on_tty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:214,1
    - Dst: vmm_sys_util::errno::Result::try_clone
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:215,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:215,1
    - Dst: hypervisor_type
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:217,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:214,1
    - Dst: set_raw_mode
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:224,1
    - Dst: ConsoleOutput::Tty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:225,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:225,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:228,1
    - Dst: File::create
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:235,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:235,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:235,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:235,1
    - Dst: ConsoleOutput::File
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:237,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:237,1
    - Dst: create_pty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:241,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:241,1
    - Dst: set_raw_mode
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:242,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:242,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:243,1
    - Dst: String::clone
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:243,1
    - Dst: ConsoleOutput::Pty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:244,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:244,1
    - Dst: dup_stdout
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:255,1
    - Dst: vmm_sys_util::errno::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:255,1
    - Dst: set_raw_mode
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:258,1
    - Dst: ConsoleOutput::Tty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:260,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:260,1
    - Dst: UnixListener::bind
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:263,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:263,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:263,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:263,1
    - Dst: ConsoleOutput::Socket
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:265,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:265,1
    - Dst: File::create
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:273,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:273,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:273,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:273,1
    - Dst: ConsoleOutput::File
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:275,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:275,1
    - Dst: create_pty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:279,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:279,1
    - Dst: set_raw_mode
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:280,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:280,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:281,1
    - Dst: String::clone
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:281,1
    - Dst: ConsoleOutput::Pty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:282,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:282,1
    - Dst: dup_stdout
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:286,1
    - Dst: vmm_sys_util::errno::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:286,1
    - Dst: ConsoleDeviceError::CreateConsoleDevice
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:286,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:286,1
    - Dst: set_raw_mode
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:287,1
    - Dst: ConsoleOutput::Tty
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:288,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:288,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:291,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/console_devices.rs:298,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 216
    argCount: 1
    argNames:
    - vmm
    argTypes:
    - '&mut Vmm'
    constantsTouched: []
    func_position:
      end: 299
      start: 178
    functionDepth: 16
    functionLinenumber: 178
    functionLinenumberEnd: 299
    functionName: pre_create_console_devices
    functionSourceFile: /src/cloud-hypervisor/vmm/src/console_devices.rs
    functionUses: 4
    functionsReached:
    - map_err
    - as_ref
    - File::create
    - io::Result::map_err
    - UnixListener::bind
    - vmm_sys_util::errno::Result::map_err
    - ConsoleOutput::Socket
    - Ok
    - sigwinch_listener::listen_for_sigwinch_on_tty
    - as_mut
    - vmm_sys_util::errno::Result::as_raw_fd
    - Arc::new
    - set_raw_mode
    - as_raw_fd
    - usize::into
    - libc::isatty
    - ConsoleDeviceError::CreateConsoleDevice
    - std::io::Result::unwrap
    - std::io::Result::map_err
    - std::result::Result::lock
    - Err
    - lock
    - create_pty
    - unwrap
    - String::clone
    - clone
    - ConsoleOutput::Pty
    - dup_stdout
    - hypervisor_type
    - vmm_sys_util::errno::Result::try_clone
    - ConsoleOutput::Tty
    - Result::map_err
    - Some
    - ConsoleOutput::File
    linkageType: ''
    returnType: ConsoleDeviceResult
    signature: 'pub(crate) fn pre_create_console_devices(vmm: &mut Vmm) -> ConsoleDeviceResult<ConsoleInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/mod.rs:45,1
    - Dst: IGVM_VHS_SNP_ID_BLOCK::new_zeroed
      Src: /src/cloud-hypervisor/vmm/src/igvm/mod.rs:47,1
    - Dst: SevVmsa::new_zeroed
      Src: /src/cloud-hypervisor/vmm/src/igvm/mod.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: IgvmLoadedInfo::default
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/mod.rs
    functionUses: 0
    functionsReached:
    - IGVM_VHS_SNP_ID_BLOCK::new_zeroed
    - SevVmsa::new_zeroed
    - Vec::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ram_range
    argTypes:
    - (u64, u64)
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: igvm_memmap_from_ram_range
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: IGVM_VHS_MEMORY_MAP_ENTRY
    signature: 'fn igvm_memmap_from_ram_range(ram_range: (u64, u64)) -> IGVM_VHS_MEMORY_MAP_ENTRY'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:88,1
    - Dst: arch::generate_ram_ranges
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:91,1
    - Dst: super::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:91,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:94,1
    - Dst: igvm_memmap_from_ram_range
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:94,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - guest_mem
    argTypes:
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: generate_memory_map
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - super::Result::map_err
    - igvm_memmap_from_ram_range
    - Result::push
    - arch::generate_ram_ranges
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn generate_memory_map(guest_mem: &GuestMemoryMmap,) -> Result<Vec<IGVM_VHS_MEMORY_MAP_ENTRY>,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut HashMap<u32, ParameterAreaState>::get_mut'
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:106,1
    - Dst: Option::expect
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:106,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:114,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:118,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:121,1
    - Dst: resize
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:122,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:125,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 3
    argNames:
    - parameter_areas
    - info
    - parameter
    argTypes:
    - '&mut HashMap<u32, ParameterAreaState>'
    - '&IGVM_VHS_PARAMETER'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 127
      start: 101
    functionDepth: 16
    functionLinenumber: 101
    functionLinenumberEnd: 127
    functionName: import_parameter
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs
    functionUses: 1
    functionsReached:
    - '&mut HashMap<u32, ParameterAreaState>::get_mut'
    - Result::len
    - Err
    - copy_from_slice
    - len
    - Option::expect
    - resize
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn import_parameter(parameter_areas: &mut HashMap<u32, ParameterAreaState>,info:
      &IGVM_VHS_PARAMETER,parameter: &[u8],) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::default
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:142,1
    - Dst: CString::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:143,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:143,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:144,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:145,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:145,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:145,1
    - Dst: guest_memory
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:145,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:146,1
    - Dst: Arc<Mutex<CpuManager>>::lock
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:147,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:147,1
    - Dst: vcpus
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:147,1
    - Dst: len
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:147,1
    - Dst: hex::decode_to_slice
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:153,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:153,1
    - Dst: Vec::seek
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:157,1
    - Dst: SeekFrom::Start
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:157,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:157,1
    - Dst: Vec::read_to_end
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:158,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:158,1
    - Dst: IgvmFile::new_from_binary
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:160,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:160,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:160,1
    - Dst: platforms
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:163,1
    - Dst: Loader::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:170,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:172,1
    - Dst: directives
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:174,1
    - Dst: unmeasured
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:192,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:193,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:200,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:209,1
    - Dst: String::as_ptr
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:220,1
    - Dst: Arc<Mutex<CpuManager>>::lock
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:224,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:224,1
    - Dst: get_cpuid_leaf
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:224,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:224,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:244,1
    - Dst: '[FwCfgItem; 3]::import_pages'
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:255,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:255,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:270,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:274,1
    - Dst: Result::is_some
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:270,1
    - Dst: import_parameter
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:284,1
    - Dst: u32::as_bytes
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:284,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:292,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:292,1
    - Dst: boot_guest_memory
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:292,1
    - Dst: generate_memory_map
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:293,1
    - Dst: import_parameter
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:294,1
    - Dst: Result::as_bytes
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:294,1
    - Dst: import_parameter
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:301,1
    - Dst: as_bytes_with_nul
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:301,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:310,1
    - Dst: '[FwCfgItem; 3]::verify_startup_memory_available'
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:311,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:311,1
    - Dst: size_of::<SevVmsa>
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:327,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:332,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:332,1
    - Dst: '[FwCfgItem; 3]::import_pages'
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:333,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:333,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:338,1
    - Dst: Result::get_mut
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:392,1
    - Dst: Option::expect
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:392,1
    - Dst: '[FwCfgItem; 3]::import_pages'
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:396,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:396,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:407,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:426,1
    - Dst: Result::sort_by
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:429,1
    - Dst: cmp
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:429,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:431,1
    - Dst: impl Iterator::fold
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:431,1
    - Dst: Vec::<Vec<GpaPages>>::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:433,1
    - Dst: last_mut
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:434,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:437,1
    - Dst: push
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:440,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:446,1
    - Dst: io::Result::iter
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:454,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:454,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:454,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:458,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:458,1
    - Dst: import_isolated_pages
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:458,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:458,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:476,1
    - Dst: Result::lock
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:478,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:478,1
    - Dst: complete_isolated_import
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:478,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:478,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs:492,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 438
    argCount: 5
    argNames:
    - file
    - memory_manager
    - cpu_manager
    - cmdline
    - host_data
    argTypes:
    - '&std::fs::File'
    - Arc<Mutex<MemoryManager>>
    - Arc<Mutex<CpuManager>>
    - '&str'
    - '&Option<String>'
    constantsTouched: []
    func_position:
      end: 493
      start: 135
    functionDepth: 13
    functionLinenumber: 135
    functionLinenumberEnd: 493
    functionName: load_igvm
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs
    functionUses: 1
    functionsReached:
    - HashMap::new
    - Instant::now
    - map_err
    - as_ref
    - Result::sort_by
    - impl Iterator::fold
    - Loader::new
    - CString::new
    - push
    - Box::default
    - directives
    - String::as_ptr
    - last_mut
    - Option::expect
    - guest_memory
    - size_of::<SevVmsa>
    - Arc<Mutex<CpuManager>>::lock
    - Result::as_bytes
    - vcpus
    - Result::is_some
    - Ok
    - Vec::new
    - cmp
    - len
    - Vec::seek
    - unmeasured
    - Result::push
    - import_isolated_pages
    - iter
    - Vec::read_to_end
    - as_bytes_with_nul
    - impl Iterator::map
    - import_parameter
    - generate_memory_map
    - Result::get_mut
    - std::io::Result::map_err
    - platforms
    - Vec::<Vec<GpaPages>>::new
    - unwrap
    - hex::decode_to_slice
    - '[FwCfgItem; 3]::import_pages'
    - io::Result::iter
    - boot_guest_memory
    - Self::collect
    - clone
    - Result::iter
    - Result::lock
    - get_cpuid_leaf
    - '[FwCfgItem; 3]::verify_startup_memory_available'
    - complete_isolated_import
    - IgvmFile::new_from_binary
    - u32::as_bytes
    - Result::map_err
    - SeekFrom::Start
    - copy_from_slice
    - as_bytes
    - Some
    - Result::insert
    linkageType: ''
    returnType: Result
    signature: 'pub fn load_igvm(mut file: &std::fs::File,memory_manager: Arc<Mutex<MemoryManager>>,cpu_manager:
      Arc<Mutex<CpuManager>>,cmdline: &str,#[cfg(feature = "sev_snp")] host_data:
      &Option<String>,) -> Result<Box<IgvmLoadedInfo>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RangeMap::new
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memory
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: Loader::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/loader.rs
    functionUses: 1
    functionsReached:
    - RangeMap::new
    linkageType: ''
    returnType: Loader
    signature: 'pub fn new(memory: GuestMemoryAtomic<GuestMemoryMmap<AtomicBitmap>>)
      -> Loader'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:63,1
    - Dst: super::Result::get
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:65,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:67,1
    - Dst: Error::OverlapsExistingRegion
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:67,1
    - Dst: super::Result::insert
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:74,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - page_base
    - page_count
    - acceptance
    argTypes:
    - u64
    - u64
    - BootPageAcceptance
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: Loader::accept_new_range
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/loader.rs
    functionUses: 1
    functionsReached:
    - entry
    - super::Result::insert
    - Error::OverlapsExistingRegion
    - Err
    - Ok
    - super::Result::get
    linkageType: ''
    returnType: Result
    signature: 'pub fn accept_new_range(&mut self,page_base: u64,page_count: u64,acceptance:
      BootPageAcceptance,) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::is_empty
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:92,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:94,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:97,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:98,1
    - Dst: Loader::accept_new_range
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:102,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:104,1
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:104,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:107,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:104,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:118,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:119,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 4
    argNames:
    - page_base
    - page_count
    - acceptance
    - data
    argTypes:
    - u64
    - u64
    - BootPageAcceptance
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 123
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 123
    functionName: Loader::import_pages
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/loader.rs
    functionUses: 0
    functionsReached:
    - vm_memory::GuestAddress
    - map_err
    - String::is_empty
    - Err
    - Loader::accept_new_range
    - String::len
    - write
    - memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn import_pages(&mut self,page_base: u64,page_count: u64,acceptance:
      BootPageAcceptance,data: &[u8],) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:132,1
    - Dst: memory
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:137,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:137,1
    - Dst: Self::start_addr
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:143,1
    - Dst: Self::last_addr
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:143,1
    - Dst: Self::last_addr
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:144,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:146,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:154,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/igvm/loader.rs:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 3
    argNames:
    - page_base
    - page_count
    - memory_type
    argTypes:
    - u64
    - u64
    - StartupMemoryType
    constantsTouched: []
    func_position:
      end: 159
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 159
    functionName: Loader::verify_startup_memory_available
    functionSourceFile: /src/cloud-hypervisor/vmm/src/igvm/loader.rs
    functionUses: 0
    functionsReached:
    - iter
    - Err
    - Self::last_addr
    - Self::start_addr
    - memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify_startup_memory_available(&mut self,page_base: u64,page_count:
      u64,memory_type: StartupMemoryType,) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::sync::mpsc::channel
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:391,1
    - Dst: request
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:393,1
    - Dst: Sender::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:396,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:396,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:397,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:397,1
    - Dst: recv
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:399,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - action
    - api_evt
    - api_sender
    - data
    argTypes:
    - '&Action'
    - EventFd
    - Sender<ApiRequest>
    - Action::RequestBody
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 8
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: get_response
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 5
    functionsReached:
    - map_err
    - std::result::Result::map_err
    - IoResult::map_err
    - std::sync::mpsc::channel
    - request
    - EventFd::write
    - recv
    - Sender::send
    linkageType: ''
    returnType: ApiResult
    signature: 'fn get_response<Action: ApiAction>(action: &Action,api_evt: EventFd,api_sender:
      Sender<ApiRequest>,data: Action::RequestBody,) -> ApiResult<ApiResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:408,1
    - Dst: ApiResult::map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:409,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:411,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - action
    - api_evt
    - api_sender
    - data
    argTypes:
    - '&Action'
    - EventFd
    - Sender<ApiRequest>
    - Action::RequestBody
    constantsTouched: []
    func_position:
      end: 415
      start: 402
    functionDepth: 9
    functionLinenumber: 402
    functionLinenumberEnd: 415
    functionName: get_response_body
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 26
    functionsReached:
    - get_response
    - ApiResult::map
    - Ok
    - Err
    linkageType: ''
    returnType: ApiResult
    signature: 'fn get_response_body<Action: ApiAction<ResponseBody = Option<Body>>>(action:
      &Action,api_evt: EventFd,api_sender: Sender<ApiRequest>,data: Action::RequestBody,)
      -> ApiResult<Option<Body>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:442,1
    - Dst: Result::vm_add_device
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:445,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:445,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:445,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:450,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:450,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 456
      start: 437
    functionDepth: 5
    functionLinenumber: 437
    functionLinenumberEnd: 456
    functionName: VmAddDevice::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_add_device
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 465
      start: 458
    functionDepth: 10
    functionLinenumber: 458
    functionLinenumberEnd: 465
    functionName: VmAddDevice::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:479,1
    - Dst: Result::vm_add_disk
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:482,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:482,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:482,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:487,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:487,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 493
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 493
    functionName: AddDisk::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Result::vm_add_disk
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 10
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: AddDisk::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:516,1
    - Dst: Result::vm_add_fs
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:519,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:519,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:519,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:524,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:524,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 530
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 530
    functionName: VmAddFs::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Result::vm_add_fs
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 539
      start: 532
    functionDepth: 10
    functionLinenumber: 532
    functionLinenumberEnd: 539
    functionName: VmAddFs::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:553,1
    - Dst: Result::vm_add_pmem
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:556,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:556,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:556,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:561,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:561,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 567
      start: 548
    functionDepth: 5
    functionLinenumber: 548
    functionLinenumberEnd: 567
    functionName: VmAddPmem::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Result::vm_add_pmem
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 576
      start: 569
    functionDepth: 10
    functionLinenumber: 569
    functionLinenumberEnd: 576
    functionName: VmAddPmem::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:590,1
    - Dst: Result::vm_add_net
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:593,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:593,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:593,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:598,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:598,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 604
      start: 585
    functionDepth: 5
    functionLinenumber: 585
    functionLinenumberEnd: 604
    functionName: VmAddNet::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_add_net
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 613
      start: 606
    functionDepth: 10
    functionLinenumber: 606
    functionLinenumberEnd: 613
    functionName: VmAddNet::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 1
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:627,1
    - Dst: Result::vm_add_vdpa
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:630,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:630,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:630,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:635,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:635,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 641
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 641
    functionName: VmAddVdpa::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - Result::vm_add_vdpa
    - map
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 650
      start: 643
    functionDepth: 10
    functionLinenumber: 643
    functionLinenumberEnd: 650
    functionName: VmAddVdpa::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:664,1
    - Dst: Result::vm_add_vsock
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:667,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:667,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:667,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:672,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:672,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 678
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 678
    functionName: VmAddVsock::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - Result::vm_add_vsock
    - map
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 10
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: VmAddVsock::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:701,1
    - Dst: Result::vm_add_user_device
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:704,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:704,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:704,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:709,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:709,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 715
      start: 696
    functionDepth: 5
    functionLinenumber: 696
    functionLinenumberEnd: 715
    functionName: VmAddUserDevice::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Result::vm_add_user_device
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 10
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: VmAddUserDevice::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:734,1
    - Dst: Result::vm_boot
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:737,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:737,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:737,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:742,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:742,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 748
      start: 733
    functionDepth: 5
    functionLinenumber: 733
    functionLinenumberEnd: 748
    functionName: VmBoot::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - Result::vm_boot
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 757
      start: 750
    functionDepth: 10
    functionLinenumber: 750
    functionLinenumberEnd: 757
    functionName: VmBoot::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:773,1
    - Dst: Result::vm_coredump
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:776,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:776,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:776,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:781,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:781,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - coredump_data
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 787
      start: 768
    functionDepth: 5
    functionLinenumber: 768
    functionLinenumberEnd: 787
    functionName: VmCoredump::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - Result::vm_coredump
    - map
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,coredump_data: Self::RequestBody,response_sender:
      Sender<ApiResponse>,) -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 796
      start: 789
    functionDepth: 10
    functionLinenumber: 789
    functionLinenumberEnd: 796
    functionName: VmCoredump::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:806,1
    - Dst: Result::vm_counters
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:809,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:809,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:809,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:814,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:814,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 820
      start: 805
    functionDepth: 5
    functionLinenumber: 805
    functionLinenumberEnd: 820
    functionName: VmCounters::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_counters
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 829
      start: 822
    functionDepth: 10
    functionLinenumber: 822
    functionLinenumberEnd: 829
    functionName: VmCounters::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:843,1
    - Dst: Result::vm_create
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:846,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:846,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:846,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:851,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:851,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 857
      start: 838
    functionDepth: 5
    functionLinenumber: 838
    functionLinenumberEnd: 857
    functionName: VmCreate::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_create
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:865,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 868
      start: 859
    functionDepth: 9
    functionLinenumber: 859
    functionLinenumberEnd: 868
    functionName: VmCreate::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response
    - Ok
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:878,1
    - Dst: Result::vm_delete
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:881,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:881,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:881,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:886,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:886,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 892
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 892
    functionName: VmDelete::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_delete
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 901
      start: 894
    functionDepth: 10
    functionLinenumber: 894
    functionLinenumberEnd: 901
    functionName: VmDelete::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:911,1
    - Dst: Result::vm_info
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:914,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:914,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:914,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:919,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:919,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 925
      start: 910
    functionDepth: 5
    functionLinenumber: 910
    functionLinenumberEnd: 925
    functionName: VmInfo::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Result::vm_info
    - Box::new
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:933,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:936,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - ()
    constantsTouched: []
    func_position:
      end: 939
      start: 927
    functionDepth: 9
    functionLinenumber: 927
    functionLinenumberEnd: 939
    functionName: VmInfo::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response
    - Err
    - Ok
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      (),) -> ApiResult<VmInfoResponse>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:949,1
    - Dst: Result::vm_pause
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:952,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:952,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:952,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:957,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:957,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 963
      start: 948
    functionDepth: 5
    functionLinenumber: 948
    functionLinenumberEnd: 963
    functionName: VmPause::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - Result::vm_pause
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 972
      start: 965
    functionDepth: 10
    functionLinenumber: 965
    functionLinenumberEnd: 972
    functionName: VmPause::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:982,1
    - Dst: Result::vm_power_button
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:985,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:985,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:985,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:990,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:990,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 996
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 996
    functionName: VmPowerButton::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - Result::vm_power_button
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1005
      start: 998
    functionDepth: 10
    functionLinenumber: 998
    functionLinenumberEnd: 1005
    functionName: VmPowerButton::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1015,1
    - Dst: Result::vm_reboot
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1018,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1018,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1018,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1023,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1023,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1029
      start: 1014
    functionDepth: 5
    functionLinenumber: 1014
    functionLinenumberEnd: 1029
    functionName: VmReboot::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Result::vm_reboot
    - Box::new
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1038
      start: 1031
    functionDepth: 10
    functionLinenumber: 1031
    functionLinenumberEnd: 1038
    functionName: VmReboot::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1048,1
    - Dst: Result::vm_receive_migration
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1051,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1051,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1051,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1056,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1056,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - data
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1062
      start: 1047
    functionDepth: 5
    functionLinenumber: 1047
    functionLinenumberEnd: 1062
    functionName: VmReceiveMigration::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Box::new
    - Result::vm_receive_migration
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, data: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1071
      start: 1064
    functionDepth: 10
    functionLinenumber: 1064
    functionLinenumberEnd: 1071
    functionName: VmReceiveMigration::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1085,1
    - Dst: Result::vm_remove_device
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1088,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1088,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1088,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1093,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1093,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - remove_device_data
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1099
      start: 1080
    functionDepth: 5
    functionLinenumber: 1080
    functionLinenumberEnd: 1099
    functionName: VmRemoveDevice::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - ApiResult::map_err
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - Result::vm_remove_device
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,remove_device_data: Self::RequestBody,response_sender:
      Sender<ApiResponse>,) -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1108
      start: 1101
    functionDepth: 10
    functionLinenumber: 1101
    functionLinenumberEnd: 1108
    functionName: VmRemoveDevice::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1122,1
    - Dst: Result::vm_resize
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1125,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1125,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1125,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1134,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1134,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - resize_data
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1140
      start: 1117
    functionDepth: 5
    functionLinenumber: 1117
    functionLinenumberEnd: 1140
    functionName: VmResize::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Result::vm_resize
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,resize_data: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1149
      start: 1142
    functionDepth: 10
    functionLinenumber: 1142
    functionLinenumberEnd: 1149
    functionName: VmResize::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 1
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1163,1
    - Dst: Result::vm_resize_disk
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1164,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1164,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1164,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1169,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1169,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - resize_disk_data
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1175
      start: 1158
    functionDepth: 5
    functionLinenumber: 1158
    functionLinenumberEnd: 1175
    functionName: VmResizeDisk::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - Result::vm_resize_disk
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,resize_disk_data: Self::RequestBody,response_sender:
      Sender<ApiResponse>,) -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1184
      start: 1177
    functionDepth: 10
    functionLinenumber: 1177
    functionLinenumberEnd: 1184
    functionName: VmResizeDisk::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1198,1
    - Dst: Result::vm_resize_zone
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1201,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1201,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1201,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1206,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1206,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - resize_zone_data
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1212
      start: 1193
    functionDepth: 5
    functionLinenumber: 1193
    functionLinenumberEnd: 1212
    functionName: VmResizeZone::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Result::vm_resize_zone
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,resize_zone_data: Self::RequestBody,response_sender:
      Sender<ApiResponse>,) -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 10
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: VmResizeZone::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1235,1
    - Dst: Result::vm_restore
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1238,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1238,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1238,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1243,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1243,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1249
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1249
    functionName: VmRestore::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_restore
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1258
      start: 1251
    functionDepth: 10
    functionLinenumber: 1251
    functionLinenumberEnd: 1258
    functionName: VmRestore::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 1
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1268,1
    - Dst: Result::vm_resume
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1271,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1271,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1271,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1276,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1276,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1282
      start: 1267
    functionDepth: 5
    functionLinenumber: 1267
    functionLinenumberEnd: 1282
    functionName: VmResume::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_resume
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1291
      start: 1284
    functionDepth: 10
    functionLinenumber: 1284
    functionLinenumberEnd: 1291
    functionName: VmResume::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1301,1
    - Dst: Result::vm_send_migration
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1304,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1304,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1304,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1309,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1309,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - data
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1315
      start: 1300
    functionDepth: 5
    functionLinenumber: 1300
    functionLinenumberEnd: 1315
    functionName: VmSendMigration::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - Result::vm_send_migration
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, data: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1324
      start: 1317
    functionDepth: 10
    functionLinenumber: 1317
    functionLinenumberEnd: 1324
    functionName: VmSendMigration::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1338,1
    - Dst: Result::vm_shutdown
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1341,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1341,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1341,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1346,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1346,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1352
      start: 1333
    functionDepth: 5
    functionLinenumber: 1333
    functionLinenumberEnd: 1352
    functionName: VmShutdown::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_shutdown
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1361
      start: 1354
    functionDepth: 10
    functionLinenumber: 1354
    functionLinenumberEnd: 1361
    functionName: VmShutdown::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1375,1
    - Dst: Result::vm_snapshot
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1378,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1378,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1378,1
    - Dst: Sender<ApiResponse>::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1383,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1383,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - config
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1389
      start: 1370
    functionDepth: 5
    functionLinenumber: 1370
    functionLinenumberEnd: 1389
    functionName: VmSnapshot::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - std::result::Result::map_err
    - Box::new
    - Sender<ApiResponse>::send
    - Result::vm_snapshot
    - ApiResult::map_err
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self,config: Self::RequestBody,response_sender: Sender<ApiResponse>,)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1398
      start: 1391
    functionDepth: 10
    functionLinenumber: 1391
    functionLinenumberEnd: 1398
    functionName: VmSnapshot::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1408,1
    - Dst: ApiResponsePayload::VmmPing
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1411,1
    - Dst: Result::vmm_ping
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1411,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1413,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1414,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1413,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1419
      start: 1407
    functionDepth: 5
    functionLinenumber: 1407
    functionLinenumberEnd: 1419
    functionName: VmmPing::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - Result::vmm_ping
    - ApiResponsePayload::VmmPing
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1427,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1430,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - ()
    constantsTouched: []
    func_position:
      end: 1433
      start: 1421
    functionDepth: 9
    functionLinenumber: 1421
    functionLinenumberEnd: 1433
    functionName: VmmPing::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response
    - Err
    - Ok
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      (),) -> ApiResult<VmmPingResponse>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1443,1
    - Dst: Result::vmm_shutdown
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1446,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1446,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1446,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1451,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1451,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1457
      start: 1442
    functionDepth: 5
    functionLinenumber: 1442
    functionLinenumberEnd: 1457
    functionName: VmmShutdown::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Box::new
    - Ok
    - ApiResult::map_err
    - Result::vmm_shutdown
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1460,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - ()
    constantsTouched: []
    func_position:
      end: 1463
      start: 1459
    functionDepth: 9
    functionLinenumber: 1459
    functionLinenumberEnd: 1463
    functionName: VmmShutdown::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response
    - Ok
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self, api_evt: EventFd, api_sender: Sender<ApiRequest>, data:
      ()) -> ApiResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1473,1
    - Dst: Result::vm_nmi
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1476,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1476,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1476,1
    - Dst: Self::RequestBody::send
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1481,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1481,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - response_sender
    argTypes:
    - Self::RequestBody
    - Sender<ApiResponse>
    constantsTouched: []
    func_position:
      end: 1487
      start: 1472
    functionDepth: 5
    functionLinenumber: 1472
    functionLinenumberEnd: 1487
    functionName: VmNmi::request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::vm_nmi
    - Self::RequestBody::send
    - std::result::Result::map_err
    - Result::map_err
    - Box::new
    - Ok
    linkageType: ''
    returnType: ApiRequest
    signature: 'fn request(&self, _: Self::RequestBody, response_sender: Sender<ApiResponse>)
      -> ApiRequest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_response_body
      Src: /src/cloud-hypervisor/vmm/src/api/mod.rs:1495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - api_evt
    - api_sender
    - data
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - Self::RequestBody
    constantsTouched: []
    func_position:
      end: 1496
      start: 1489
    functionDepth: 10
    functionLinenumber: 1489
    functionLinenumberEnd: 1496
    functionName: VmNmi::send
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/mod.rs
    functionUses: 0
    functionsReached:
    - get_response_body
    linkageType: ''
    returnType: ApiResult
    signature: 'fn send(&self,api_evt: EventFd,api_sender: Sender<ApiRequest>,data:
      Self::RequestBody,) -> ApiResult<Self::ResponseBody>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: fds_helper::NetConfig::id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: fn id(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: fds_helper::NetConfig::fds_from_http_body
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: fn fds_from_http_body(&self) -> Option<&[RawFd]>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fds
    argTypes:
    - Option<Vec<RawFd>>
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: fds_helper::NetConfig::set_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_fds(&mut self, fds: Option<Vec<RawFd>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:138,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: fds_helper::RestoredNetConfig::id
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - as_str
    - Some
    linkageType: ''
    returnType: Option
    signature: fn id(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: fds_helper::RestoredNetConfig::fds_from_http_body
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: fn fds_from_http_body(&self) -> Option<&[RawFd]>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fds
    argTypes:
    - Option<Vec<RawFd>>
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: fds_helper::RestoredNetConfig::set_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_fds(&mut self, fds: Option<Vec<RawFd>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: fds_helper::RestoredNetConfig::expected_num_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn expected_num_fds(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fds_from_http_body
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:162,1
    - Dst: Option::is_some
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:162,1
    - Dst: set_fds
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:172,1
    - Dst: Result::drain
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:176,1
    - Dst: drain(..fds_amount).collect::<Vec<_>>
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:176,1
    - Dst: set_fds
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:181,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - fds
    - fds_amount
    - cfg
    argTypes:
    - '&mut Vec<RawFd>'
    - usize
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 183
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 183
    functionName: fds_helper::attach_fds_to_cfg_inner
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - set_fds
    - fds_from_http_body
    - drain(..fds_amount).collect::<Vec<_>>
    - Result::drain
    - Some
    - Option::is_some
    linkageType: ''
    returnType: void
    signature: 'fn attach_fds_to_cfg_inner<T: ConfigWithFDs>(fds: &mut Vec<RawFd>,fds_amount:
      usize,cfg: &mut T,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:202,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:202,1
    - Dst: expected_num_fds
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:202,1
    - Dst: Self::sum
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:202,1
    - Dst: Vec<File>::len
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:204,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:210,1
    - Dst: Vec<File>::into_iter
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:215,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:215,1
    - Dst: Result::into_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:217,1
    - Dst: "into_iter()\n            .map(|f| f.into_raw_fd())\n            .collect::<Vec<_>>"
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:215,1
    - Dst: attach_fds_to_cfg_inner
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:222,1
    - Dst: expected_num_fds
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:222,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 2
    argNames:
    - device_fds
    - cfgs
    argTypes:
    - Vec<File>
    - '&mut [&mut T]'
    constantsTouched: []
    func_position:
      end: 230
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 230
    functionName: fds_helper::attach_fds_to_cfgs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 2
    functionsReached:
    - Vec<File>::into_iter
    - expected_num_fds
    - impl Iterator::map
    - Self::sum
    - map
    - "into_iter()\n            .map(|f| f.into_raw_fd())\n            .collect::<Vec<_>>"
    - Result::into_raw_fd
    - Err
    - Vec<File>::len
    - attach_fds_to_cfg_inner
    - Result::iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn attach_fds_to_cfgs<T: ConfigWithVariableFDs>(device_fds: Vec<File>,cfgs:
      &mut [&mut T],) -> Result<(), HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<File>::into_iter
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:247,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:247,1
    - Dst: Result::into_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:249,1
    - Dst: "into_iter()\n            .map(|f| f.into_raw_fd())\n            .collect::<Vec<_>>"
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:247,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:252,1
    - Dst: attach_fds_to_cfg_inner
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:253,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - device_fds
    - cfg
    argTypes:
    - Vec<File>
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: fds_helper::attach_fds_to_cfg
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 4
    functionsReached:
    - map
    - "into_iter()\n            .map(|f| f.into_raw_fd())\n            .collect::<Vec<_>>"
    - Result::len
    - Result::into_raw_fd
    - Vec<File>::into_iter
    - attach_fds_to_cfg_inner
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn attach_fds_to_cfg<T: ConfigWithFDs>(device_fds: Vec<File>,cfg:
      &mut T,) -> Result<(), HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: net_gen::ifreq::method
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:269,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:274,1
    - Dst: String::raw
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:274,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:274,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:278,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:282,1
    - Dst: iter_mut().collect::<Vec<&mut _>>
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:282,1
    - Dst: Result::as_mut_slice
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:283,1
    - Dst: api::http::http_endpoint::fds_helper::attach_fds_to_cfg
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:289,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:289,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:290,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:297,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:297,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:301,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:302,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:306,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 3
    argNames:
    - req
    - api_notifier
    - api_sender
    argTypes:
    - '&Request'
    - EventFd
    - Sender<ApiRequest>
    constantsTouched: []
    func_position:
      end: 312
      start: 263
    functionDepth: 7
    functionLinenumber: 263
    functionLinenumberEnd: 312
    functionName: VmCreate::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - api::http::http_endpoint::fds_helper::attach_fds_to_cfg
    - iter_mut
    - map_err
    - api::http::error_response
    - net_gen::ifreq::method
    - Result::as_mut_slice
    - Result::map_err
    - Response::new
    - send
    - serde_json::from_slice
    - iter_mut().collect::<Vec<&mut _>>
    - String::raw
    linkageType: ''
    returnType: Response
    signature: 'fn handle_request(&self,req: &Request,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,) -> Response'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _api_notifier
    - _api_sender
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: GetHandler::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 1
    functionsReached:
    - Err
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn handle_request(&''static self,_api_notifier: EventFd,_api_sender:
      Sender<ApiRequest>,) -> std::result::Result<Option<Body>, HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _api_notifier
    - _api_sender
    - _body
    - _files
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    - Vec<File>
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: PutHandler::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 1
    functionsReached:
    - Err
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn handle_request(&''static self,_api_notifier: EventFd,_api_sender:
      Sender<ApiRequest>,_body: &Option<Body>,_files: Vec<File>,) -> std::result::Result<Option<Body>,
      HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_action_get_handler::send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:8,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 356
    functionName: vm_action_get_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - vm_action_get_handler::send
    - std::result::Result::map_err
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::is_some
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:10,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:11,1
    - Dst: vm_action_put_handler::send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:13,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 379
    functionName: vm_action_put_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - vm_action_put_handler::send
    - std::result::Result::map_err
    - String::is_some
    - Err
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_action_put_handler_body::send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:11,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:14,1
    - Dst: String::raw
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:14,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:11,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 406
    functionName: vm_action_put_handler_body
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - Err
    - serde_json::from_slice
    - vm_action_put_handler_body::send
    - String::raw
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:447,1
    - Dst: String::raw
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:447,1
    - Dst: api::http::http_endpoint::fds_helper::attach_fds_to_cfg
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:448,1
    - Dst: VmAddNet::send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:450,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:450,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - api_notifier
    - api_sender
    - body
    - files
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    - Vec<File>
    constantsTouched: []
    func_position:
      end: 455
      start: 439
    functionDepth: 11
    functionLinenumber: 439
    functionLinenumberEnd: 455
    functionName: VmAddNet::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - api::http::http_endpoint::fds_helper::attach_fds_to_cfg
    - ApiResult::map_err
    - Err
    - serde_json::from_slice
    - String::raw
    - VmAddNet::send
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn handle_request(&''static self,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,body: &Option<Body>,files: Vec<File>,) -> std::result::Result<Option<Body>,
      HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VmResize::send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:469,1
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:472,1
    - Dst: String::raw
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:472,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:469,1
    - Dst: HttpError::ApiError
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:478,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - api_notifier
    - api_sender
    - body
    - _files
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    - Vec<File>
    constantsTouched: []
    func_position:
      end: 483
      start: 461
    functionDepth: 11
    functionLinenumber: 461
    functionLinenumberEnd: 483
    functionName: VmResize::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - VmResize::send
    - ApiResult::map_err
    - Err
    - HttpError::ApiError
    - serde_json::from_slice
    - String::raw
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn handle_request(&''static self,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,body: &Option<Body>,_files: Vec<File>,) -> std::result::Result<Option<Body>,
      HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_slice
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:499,1
    - Dst: String::raw
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:499,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:501,1
    - Dst: Result::iter_mut
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:502,1
    - Dst: iter_mut().collect::<Vec<&mut _>>
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:502,1
    - Dst: Result::as_mut_slice
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:503,1
    - Dst: api::http::http_endpoint::fds_helper::attach_fds_to_cfgs
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:504,1
    - Dst: VmRestore::send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:507,1
    - Dst: ApiResult::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:507,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - api_notifier
    - api_sender
    - body
    - files
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    - Vec<File>
    constantsTouched: []
    func_position:
      end: 512
      start: 491
    functionDepth: 11
    functionLinenumber: 491
    functionLinenumberEnd: 512
    functionName: VmRestore::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - api::http::http_endpoint::fds_helper::attach_fds_to_cfgs
    - ApiResult::map_err
    - as_mut
    - Result::iter_mut
    - Err
    - Result::as_mut_slice
    - VmRestore::send
    - serde_json::from_slice
    - iter_mut().collect::<Vec<&mut _>>
    - String::raw
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn handle_request(&''static self,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,body: &Option<Body>,files: Vec<File>,) -> std::result::Result<Option<Body>,
      HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - action
    argTypes:
    - '&''static dyn HttpVmAction'
    constantsTouched: []
    func_position:
      end: 525
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 525
    functionName: VmActionHandler::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(action: &''static dyn HttpVmAction) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PutHandler::handle_request
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - api_notifier
    - api_sender
    - body
    - files
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    - Vec<File>
    constantsTouched: []
    func_position:
      end: 537
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 537
    functionName: VmActionHandler::put_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - PutHandler::handle_request
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn put_handler(&self,api_notifier: EventFd,api_sender: Sender<ApiRequest>,body:
      &Option<Body>,files: Vec<File>,) -> std::result::Result<Option<Body>, HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetHandler::handle_request
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - api_notifier
    - api_sender
    - _body
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: VmActionHandler::get_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - GetHandler::handle_request
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn get_handler(&self,api_notifier: EventFd,api_sender: Sender<ApiRequest>,_body:
      &Option<Body>,) -> std::result::Result<Option<Body>, HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: net_gen::ifreq::method
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:559,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:560,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:560,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:565,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:566,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:566,1
    - Dst: ApiResult::set_body
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:568,1
    - Dst: Body::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:568,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:571,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - req
    - api_notifier
    - api_sender
    argTypes:
    - '&Request'
    - EventFd
    - Sender<ApiRequest>
    constantsTouched: []
    func_position:
      end: 575
      start: 553
    functionDepth: 7
    functionLinenumber: 553
    functionLinenumberEnd: 575
    functionName: VmInfo::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_string
    - map_err
    - api::http::error_response
    - String::unwrap
    - net_gen::ifreq::method
    - ApiResult::set_body
    - Body::new
    - Response::new
    - send
    linkageType: ''
    returnType: Response
    signature: 'fn handle_request(&self,req: &Request,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,) -> Response'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: net_gen::ifreq::method
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:588,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:589,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:589,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:594,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:595,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:595,1
    - Dst: ApiResult::set_body
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:597,1
    - Dst: Body::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:597,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:600,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - req
    - api_notifier
    - api_sender
    argTypes:
    - '&Request'
    - EventFd
    - Sender<ApiRequest>
    constantsTouched: []
    func_position:
      end: 605
      start: 582
    functionDepth: 7
    functionLinenumber: 582
    functionLinenumberEnd: 605
    functionName: VmmPing::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_string
    - map_err
    - api::http::error_response
    - String::unwrap
    - net_gen::ifreq::method
    - ApiResult::set_body
    - Body::new
    - Response::new
    - send
    linkageType: ''
    returnType: Response
    signature: 'fn handle_request(&self,req: &Request,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,) -> Response'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: net_gen::ifreq::method
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:618,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:620,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:620,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:624,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:625,1
    - Dst: api::http::error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - req
    - api_notifier
    - api_sender
    argTypes:
    - '&Request'
    - EventFd
    - Sender<ApiRequest>
    constantsTouched: []
    func_position:
      end: 630
      start: 612
    functionDepth: 7
    functionLinenumber: 612
    functionLinenumberEnd: 630
    functionName: VmmShutdown::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - map_err
    - api::http::error_response
    - net_gen::ifreq::method
    - Response::new
    - send
    linkageType: ''
    returnType: Response
    signature: 'fn handle_request(&self,req: &Request,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,) -> Response'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:684,1
    - Dst: api::http::http_endpoint::fds_helper::attach_fds_to_cfg
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:687,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 689
    functionName: external_fds_tests::test_fds_provided_via_http_api_are_reset
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - api::http::http_endpoint::fds_helper::attach_fds_to_cfg
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_fds_provided_via_http_api_are_reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:701,1
    - Dst: api::http::http_endpoint::fds_helper::attach_fds_to_cfg
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:704,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 706
    functionName: external_fds_tests::test_new_device_cfg_takes_all_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - api::http::http_endpoint::fds_helper::attach_fds_to_cfg
    - Result::unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_new_device_cfg_takes_all_fds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: api::http::http_endpoint::fds_helper::attach_fds_to_cfgs
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:737,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 742
    functionName: external_fds_tests::test_restore_cfgs_take_only_their_fds
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - api::http::http_endpoint::fds_helper::attach_fds_to_cfgs
    linkageType: ''
    returnType: void
    signature: fn test_restore_cfgs_take_only_their_fds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:81,1
    - Dst: std::iter::successors
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:85,1
    - Dst: Some
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:85,1
    - Dst: source
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:88,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:85,1
    - Dst: "\n        // See <https://github.com/rust-lang/rust/issues/141673>\n \
        \       (*sub_error).source()\n    })\n    .map(|error| format!(\"{error}\"\
        ))\n    .collect::<Vec<_>>"
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:85,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:94,1
    - Dst: String::unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:94,1
    - Dst: Body::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:96,1
    - Dst: ApiResult::set_body
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - error
    - status
    argTypes:
    - HttpError
    - StatusCode
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 7
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: error_response
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 6
    functionsReached:
    - std::iter::successors
    - map
    - serde_json::to_string
    - "\n        // See <https://github.com/rust-lang/rust/issues/141673>\n      \
      \  (*sub_error).source()\n    })\n    .map(|error| format!(\"{error}\"))\n \
      \   .collect::<Vec<_>>"
    - Some
    - String::unwrap
    - ApiResult::set_body
    - Body::new
    - Response::new
    - source
    linkageType: ''
    returnType: Response
    signature: 'pub fn error_response(error: HttpError, status: StatusCode) -> Response'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:119,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:119,1
    - Dst: Result::try_clone
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:119,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:119,1
    - Dst: collect
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:119,1
    - Dst: net_gen::ifreq::method
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:120,1
    - Dst: EndpointHandler::put_handler
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:121,1
    - Dst: EndpointHandler::get_handler
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:122,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:123,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:129,1
    - Dst: ApiResult::set_body
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:130,1
    - Dst: Response::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:133,1
    - Dst: error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:136,1
    - Dst: error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:138,1
    - Dst: error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:140,1
    - Dst: error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 3
    argNames:
    - req
    - api_notifier
    - api_sender
    argTypes:
    - '&Request'
    - EventFd
    - Sender<ApiRequest>
    constantsTouched: []
    func_position:
      end: 143
      start: 109
    functionDepth: 7
    functionLinenumber: 109
    functionLinenumberEnd: 143
    functionName: EndpointHandler::handle_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - std::io::Result::unwrap
    - Result::try_clone
    - EndpointHandler::put_handler
    - EndpointHandler::get_handler
    - net_gen::ifreq::method
    - error_response
    - ApiResult::set_body
    - Response::new
    - collect
    linkageType: ''
    returnType: Response
    signature: 'fn handle_request(&self,req: &Request,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,) -> Response'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _api_notifier
    - _api_sender
    - _body
    - _files
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    - Vec<File>
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: EndpointHandler::put_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 1
    functionsReached:
    - Err
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn put_handler(&self,_api_notifier: EventFd,_api_sender: Sender<ApiRequest>,_body:
      &Option<Body>,_files: Vec<File>,) -> std::result::Result<Option<Body>, HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _api_notifier
    - _api_sender
    - _body
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    - '&Option<Body>'
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: EndpointHandler::get_handler
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 1
    functionsReached:
    - Err
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn get_handler(&self,_api_notifier: EventFd,_api_sender: Sender<ApiRequest>,_body:
      &Option<Body>,) -> std::result::Result<Option<Body>, HttpError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: endpoint
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::uri
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:302,1
    - Dst: get_abs_path
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:302,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:302,1
    - Dst: get
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:303,1
    - Dst: Result::try_clone
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:304,1
    - Dst: handle_request
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:305,1
    - Dst: Sender::clone
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:305,1
    - Dst: error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:306,1
    - Dst: error_response
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:311,1
    - Dst: ApiResult::set_server
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:314,1
    - Dst: ApiResult::set_content_type
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - request
    - api_notifier
    - api_sender
    argTypes:
    - '&Request'
    - '&EventFd'
    - '&Sender<ApiRequest>'
    constantsTouched: []
    func_position:
      end: 317
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 317
    functionName: handle_http_request
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 1
    functionsReached:
    - handle_request
    - ApiResult::set_server
    - Result::try_clone
    - Result::uri
    - error_response
    - ApiResult::set_content_type
    - get_abs_path
    - get
    - to_string
    - Sender::clone
    linkageType: ''
    returnType: Response
    signature: 'fn handle_http_request(request: &Request,api_notifier: &EventFd,api_sender:
      &Sender<ApiRequest>,) -> Response'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:329,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:329,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:332,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:332,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:333,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:333,1
    - Dst: HttpServer::add_kill_switch
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:335,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:335,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:339,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:339,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:340,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:339,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:343,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:344,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:344,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:344,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:348,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:348,1
    - Dst: Landlock::new
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:354,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:354,1
    - Dst: restrict_self
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:354,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:354,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:354,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:360,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:360,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:365,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:365,1
    - Dst: HttpServer::start_server
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:366,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:366,1
    - Dst: HttpServer::requests
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:368,1
    - Dst: HttpServer::respond
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:371,1
    - Dst: process
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:371,1
    - Dst: handle_http_request
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:372,1
    - Dst: HttpServer::flush_outgoing_writes
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:379,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:365,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:390,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:390,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:365,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:394,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:339,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:398,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 118
    argCount: 7
    argNames:
    - server
    - api_notifier
    - api_sender
    - seccomp_action
    - exit_evt
    - hypervisor_type
    - landlock_enable
    argTypes:
    - HttpServer
    - EventFd
    - Sender<ApiRequest>
    - '&SeccompAction'
    - EventFd
    - HypervisorType
    - bool
    constantsTouched: []
    func_position:
      end: 399
      start: 319
    functionDepth: 14
    functionLinenumber: 319
    functionLinenumberEnd: 399
    functionName: start_http_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 2
    functionsReached:
    - Result::name
    - map_err
    - handle_http_request
    - EventFd::new
    - '&str::to_string'
    - io::Result::map_err
    - process
    - Landlock::new
    - Ok
    - try_clone
    - Result::spawn
    - std::panic::AssertUnwindSafe
    - HttpServer::flush_outgoing_writes
    - is_empty
    - seccompiler::apply_filter
    - HttpServer::add_kill_switch
    - HttpServer::start_server
    - seccomp_filters::get_seccomp_filter
    - unwrap
    - HttpServer::requests
    - std::panic::catch_unwind
    - ok
    - Result::map_err
    - EventFd::write
    - restrict_self
    - thread::Builder::new
    - IoResult::ok
    - HttpServer::respond
    linkageType: ''
    returnType: Result
    signature: 'fn start_http_thread(mut server: HttpServer,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,seccomp_action: &SeccompAction,exit_evt: EventFd,hypervisor_type:
      HypervisorType,landlock_enable: bool,) -> Result<HttpApiHandle>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:410,1
    - Dst: UnixListener::bind
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:411,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:411,1
    - Dst: HttpServer::new_from_fd
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:413,1
    - Dst: into_raw_fd
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:413,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:413,1
    - Dst: start_http_thread
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - path
    - api_notifier
    - api_sender
    - seccomp_action
    - exit_evt
    - hypervisor_type
    - landlock_enable
    argTypes:
    - '&str'
    - EventFd
    - Sender<ApiRequest>
    - '&SeccompAction'
    - EventFd
    - HypervisorType
    - bool
    constantsTouched: []
    func_position:
      end: 425
      start: 401
    functionDepth: 15
    functionLinenumber: 401
    functionLinenumberEnd: 425
    functionName: start_http_path_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 1
    functionsReached:
    - start_http_thread
    - map_err
    - into_raw_fd
    - UnixListener::bind
    - PathBuf::from
    - Result::map_err
    - HttpServer::new_from_fd
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_http_path_thread(path: &str,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,seccomp_action: &SeccompAction,exit_evt: EventFd,hypervisor_type:
      HypervisorType,landlock_enable: bool,) -> Result<HttpApiHandle>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HttpServer::new_from_fd
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:437,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:437,1
    - Dst: start_http_thread
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 7
    argNames:
    - fd
    - api_notifier
    - api_sender
    - seccomp_action
    - exit_evt
    - hypervisor_type
    - landlock_enable
    argTypes:
    - RawFd
    - EventFd
    - Sender<ApiRequest>
    - '&SeccompAction'
    - EventFd
    - HypervisorType
    - bool
    constantsTouched: []
    func_position:
      end: 447
      start: 427
    functionDepth: 15
    functionLinenumber: 427
    functionLinenumberEnd: 447
    functionName: start_http_fd_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 1
    functionsReached:
    - start_http_thread
    - HttpServer::new_from_fd
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_http_fd_thread(fd: RawFd,api_notifier: EventFd,api_sender:
      Sender<ApiRequest>,seccomp_action: &SeccompAction,exit_evt: EventFd,hypervisor_type:
      HypervisorType,landlock_enable: bool,) -> Result<HttpApiHandle>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:452,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:452,1
    - Dst: join
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:453,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/http/mod.rs:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - http_handle
    argTypes:
    - HttpApiHandle
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 8
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: http_api_graceful_shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
    functionUses: 1
    functionsReached:
    - join
    - unwrap
    - map_err
    - write
    linkageType: ''
    returnType: Result
    signature: 'pub fn http_api_graceful_shutdown(http_handle: HttpApiHandle) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdo::Error::Failed
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - error
    argTypes:
    - impl std::fmt::Debug + std::fmt::Display
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: api_error
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 1
    functionsReached:
    - fdo::Error::Failed
    linkageType: ''
    returnType: fdo::Error
    signature: 'fn api_error(error: impl std::fmt::Debug + std::fmt::Display) -> fdo::Error'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:61,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:61,1
    - Dst: try_recv
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ch
    argTypes:
    - DBusApiShutdownChannels
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: dbus_api_graceful_shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 1
    functionsReached:
    - send
    - try_recv
    - is_err
    linkageType: ''
    returnType: void
    signature: 'pub fn dbus_api_graceful_shutdown(ch: DBusApiShutdownChannels)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: futures::lock::Mutex::new
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - api_notifier
    - api_sender
    argTypes:
    - EventFd
    - Sender<ApiRequest>
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: DBusApi::new
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 1
    functionsReached:
    - futures::lock::Mutex::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(api_notifier: EventFd, api_sender: Sender<ApiRequest>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:83,1
    - Dst: clone
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 13
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: DBusApi::clone_api_sender
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 5
    functionsReached:
    - lock
    - clone
    linkageType: ''
    returnType: Sender
    signature: async fn clone_api_sender(&self) -> Sender<ApiRequest>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_clone
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:87,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:87,1
    - Dst: fdo::Error::IOError
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: DBusApi::clone_api_notifier
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 5
    functionsReached:
    - fdo::Error::IOError
    - try_clone
    - map_err
    linkageType: ''
    returnType: Result
    signature: fn clone_api_notifier(&self) -> Result<EventFd>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::clone_api_sender
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:97,1
    - Dst: DBusApi::clone_api_notifier
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:98,1
    - Dst: blocking::unblock
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:100,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:100,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:100,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:100,1
    - Dst: String::from_utf8_lossy
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:105,1
    - Dst: to_string
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:105,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:107,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - action
    - body
    argTypes:
    - '&''static Action'
    - Action::RequestBody
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 14
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: DBusApi::vm_action
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 24
    functionsReached:
    - map
    - map_err
    - Result::into
    - String::from_utf8_lossy
    - to_string
    - Ok
    - DBusApi::clone_api_notifier
    - send
    - blocking::unblock
    - DBusApi::clone_api_sender
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_action<Action: ApiAction<ResponseBody = Option<Body>>>(&self,action:
      &''static Action,body: Action::RequestBody,) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::clone_api_sender
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:114,1
    - Dst: DBusApi::clone_api_notifier
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:115,1
    - Dst: blocking::unblock
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:117,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:117,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:117,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:120,1
    - Dst: String::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 14
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: DBusApi::vmm_ping
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_string
    - map_err
    - String::map_err
    - DBusApi::clone_api_notifier
    - send
    - blocking::unblock
    - DBusApi::clone_api_sender
    linkageType: ''
    returnType: Result
    signature: async fn vmm_ping(&self) -> Result<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::clone_api_sender
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:124,1
    - Dst: DBusApi::clone_api_notifier
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:125,1
    - Dst: blocking::unblock
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:127,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:127,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 14
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: DBusApi::vmm_shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - DBusApi::clone_api_notifier
    - send
    - blocking::unblock
    - DBusApi::clone_api_sender
    linkageType: ''
    returnType: Result
    signature: async fn vmm_shutdown(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:133,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:133,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - device_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 15
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: DBusApi::vm_add_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_device(&self, device_config: String) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:138,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:138,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - disk_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 15
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: DBusApi::vm_add_disk
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_disk(&self, disk_config: String) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:143,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:143,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fs_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 15
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: DBusApi::vm_add_fs
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_fs(&self, fs_config: String) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:148,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:148,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:149,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - net_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 15
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: DBusApi::vm_add_net
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - is_some
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_net(&self, net_config: String) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:157,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:157,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pmem_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 15
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: DBusApi::vm_add_pmem
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_pmem(&self, pmem_config: String) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:162,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:162,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - vm_add_user_device
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 15
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: DBusApi::vm_add_user_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_user_device(&self, vm_add_user_device: String) ->
      Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:167,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:167,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - vdpa_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 15
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: DBusApi::vm_add_vdpa
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_vdpa(&self, vdpa_config: String) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:172,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:172,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - vsock_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 15
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: DBusApi::vm_add_vsock
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_add_vsock(&self, vsock_config: String) -> Result<Optional<String>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:177,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 15
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: DBusApi::vm_boot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    linkageType: ''
    returnType: Result
    signature: async fn vm_boot(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:187,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:187,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:188,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:188,1
    - Dst: Err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:194,1
    - Dst: api_error
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - vm_coredump_data
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 15
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: DBusApi::vm_coredump
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    - std::result::Result::map_err
    - serde_json::from_str
    - Err
    - api_error
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_coredump(&self, vm_coredump_data: String) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 15
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: DBusApi::vm_counters
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    linkageType: ''
    returnType: Result
    signature: async fn vm_counters(&self) -> Result<Optional<String>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::clone_api_sender
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:204,1
    - Dst: DBusApi::clone_api_notifier
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:205,1
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:207,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:207,1
    - Dst: iter
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:210,1
    - Dst: any
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:210,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:210,1
    - Dst: blocking::unblock
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:218,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:218,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:218,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - vm_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 223
      start: 203
    functionDepth: 14
    functionLinenumber: 203
    functionLinenumberEnd: 223
    functionName: DBusApi::vm_create
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - is_some
    - iter
    - any
    - map_err
    - std::result::Result::map_err
    - serde_json::from_str
    - Ok
    - DBusApi::clone_api_notifier
    - send
    - blocking::unblock
    - DBusApi::clone_api_sender
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_create(&self, vm_config: String) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:226,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 15
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: DBusApi::vm_delete
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    linkageType: ''
    returnType: Result
    signature: async fn vm_delete(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::clone_api_sender
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:230,1
    - Dst: DBusApi::clone_api_notifier
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:231,1
    - Dst: blocking::unblock
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:233,1
    - Dst: send
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:233,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:233,1
    - Dst: serde_json::to_string
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:236,1
    - Dst: String::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 14
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: DBusApi::vm_info
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_string
    - map_err
    - String::map_err
    - DBusApi::clone_api_notifier
    - send
    - blocking::unblock
    - DBusApi::clone_api_sender
    linkageType: ''
    returnType: Result
    signature: async fn vm_info(&self) -> Result<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:240,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 15
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: DBusApi::vm_pause
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    linkageType: ''
    returnType: Result
    signature: async fn vm_pause(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:244,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 15
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: DBusApi::vm_power_button
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    linkageType: ''
    returnType: Result
    signature: async fn vm_power_button(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:248,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 15
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: DBusApi::vm_reboot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    linkageType: ''
    returnType: Result
    signature: async fn vm_reboot(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:252,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:252,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:253,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - vm_remove_device
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 15
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: DBusApi::vm_remove_device
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - map
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_remove_device(&self, vm_remove_device: String) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:259,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:259,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:260,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - vm_resize
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 15
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: DBusApi::vm_resize
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - map
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_resize(&self, vm_resize: String) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:264,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:264,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:265,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - vm_resize_zone
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 15
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: DBusApi::vm_resize_zone
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - map
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_resize_zone(&self, vm_resize_zone: String) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:271,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:271,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:272,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - restore_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 15
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: DBusApi::vm_restore
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - map
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_restore(&self, restore_config: String) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:277,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:277,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:278,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - receive_migration_data
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 15
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: DBusApi::vm_receive_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - map
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_receive_migration(&self, receive_migration_data: String)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:284,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:284,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:285,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - send_migration_data
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 15
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: DBusApi::vm_send_migration
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - map
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_send_migration(&self, send_migration_data: String) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:291,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 15
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: DBusApi::vm_resume
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    linkageType: ''
    returnType: Result
    signature: async fn vm_resume(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:295,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 15
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: DBusApi::vm_shutdown
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - DBusApi::vm_action
    - map
    linkageType: ''
    returnType: Result
    signature: async fn vm_shutdown(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:299,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:299,1
    - Dst: DBusApi::vm_action
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:300,1
    - Dst: map
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - vm_snapshot_config
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 15
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: DBusApi::vm_snapshot
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::map_err
    - DBusApi::vm_action
    - map
    - serde_json::from_str
    linkageType: ''
    returnType: Result
    signature: 'async fn vm_snapshot(&self, vm_snapshot_config: String) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBusApi::new
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:321,1
    - Dst: executor::block_on
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:322,1
    - Dst: Builder::system
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:324,1
    - Dst: Builder::session
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:326,1
    - Dst: internal_executor
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:329,1
    - Dst: name
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:329,1
    - Dst: serve_at
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:329,1
    - Dst: as_str
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:332,1
    - Dst: build
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:329,1
    - Dst: object_server
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:336,1
    - Dst: "object_server()\n            .interface::<_, DBusApi>"
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:336,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:341,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:322,1
    - Dst: oneshot::channel::<()>
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:345,1
    - Dst: oneshot::channel::<()>
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:346,1
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:349,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:349,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:352,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:352,1
    - Dst: '&str::to_string'
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:353,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:352,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:356,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:357,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:357,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:357,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:361,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:361,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:366,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:366,1
    - Dst: executor::block_on
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:367,1
    - Dst: fuse
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:368,1
    - Dst: futures::future::Fuse::terminated
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:369,1
    - Dst: set
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:371,1
    - Dst: Result::executor
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:371,1
    - Dst: tick
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:371,1
    - Dst: fuse
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:371,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:366,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:391,1
    - Dst: IoResult::ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:391,1
    - Dst: ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:366,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:395,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:352,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs:399,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 109
    argCount: 6
    argNames:
    - dbus_options
    - api_notifier
    - api_sender
    - seccomp_action
    - exit_evt
    - hypervisor_type
    argTypes:
    - DBusApiOptions
    - EventFd
    - Sender<ApiRequest>
    - '&SeccompAction'
    - EventFd
    - HypervisorType
    constantsTouched: []
    func_position:
      end: 400
      start: 313
    functionDepth: 8
    functionLinenumber: 313
    functionLinenumberEnd: 400
    functionName: start_dbus_thread
    functionSourceFile: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
    functionUses: 1
    functionsReached:
    - Result::name
    - internal_executor
    - map_err
    - futures::future::Fuse::terminated
    - io::Result::map_err
    - '&str::to_string'
    - DBusApi::new
    - Ok
    - name
    - Result::spawn
    - std::panic::AssertUnwindSafe
    - Builder::session
    - executor::block_on
    - is_empty
    - seccompiler::apply_filter
    - Builder::system
    - oneshot::channel::<()>
    - as_str
    - set
    - object_server
    - seccomp_filters::get_seccomp_filter
    - fuse
    - Result::executor
    - build
    - "object_server()\n            .interface::<_, DBusApi>"
    - ok
    - std::panic::catch_unwind
    - Result::map_err
    - EventFd::write
    - serve_at
    - thread::Builder::new
    - IoResult::ok
    - tick
    linkageType: ''
    returnType: VmmResult
    signature: 'pub fn start_dbus_thread(dbus_options: DBusApiOptions,api_notifier:
      EventFd,api_sender: Sender<ApiRequest>,seccomp_action: &SeccompAction,exit_evt:
      EventFd,hypervisor_type: HypervisorType,) -> VmmResult<(thread::JoinHandle<VmmResult<()>>,
      DBusApiShutdownChannels)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: PciVfioUserSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc<Mutex<Client>>::lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:84,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:84,1
    - Dst: resettable
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:84,1
    - Dst: Arc<Mutex<Client>>::lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:86,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:86,1
    - Dst: reset
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:86,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:86,1
    - Dst: Arc<Mutex<Client>>::clone
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:94,1
    - Dst: VfioCommon::new
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:97,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:100,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:103,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:97,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 8
    argNames:
    - id
    - vm
    - client
    - msi_interrupt_manager
    - legacy_interrupt_group
    - bdf
    - memory_slot_allocator
    - snapshot
    argTypes:
    - String
    - Arc<dyn hypervisor::Vm>
    - Arc<Mutex<Client>>
    - Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>
    - Option<Arc<dyn InterruptSourceGroup>>
    - PciBdf
    - MemorySlotAllocator
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 115
      start: 74
    functionDepth: 13
    functionLinenumber: 74
    functionLinenumberEnd: 115
    functionName: VfioUserPciDevice::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 1
    functionsReached:
    - reset
    - map_err
    - resettable
    - VfioCommon::new
    - Arc::new
    - Arc<Mutex<Client>>::clone
    - Result::map_err
    - unwrap
    - Arc<Mutex<Client>>::lock
    - vm_migration::snapshot_from_id
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,vm: Arc<dyn hypervisor::Vm>,client: Arc<Mutex<Client>>,msi_interrupt_manager:
      Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>,legacy_interrupt_group:
      Option<Arc<dyn InterruptSourceGroup>>,bdf: PciBdf,memory_slot_allocator: MemorySlotAllocator,snapshot:
      Option<&Snapshot>,) -> Result<Self, VfioUserPciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:120,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:120,1
    - Dst: region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:120,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:120,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:127,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:127,1
    - Dst: region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:127,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:127,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:127,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:136,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:136,1
    - Dst: region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:136,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:136,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:136,1
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:154,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:163,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:163,1
    - Dst: iter
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:165,1
    - Dst: MmapRegion::mmap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:166,1
    - Dst: file
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:169,1
    - Dst: as_fd
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:169,1
    - Dst: start
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:170,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:173,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:179,1
    - Dst: VfioUserPciDeviceError::Other
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:179,1
    - Dst: next_memory_slot
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:184,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:191,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:194,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:195,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:190,1
    - Dst: push
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:202,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 118
    functionDepth: 13
    functionLinenumber: 118
    functionLinenumberEnd: 208
    functionName: VfioUserPciDevice::map_mmio_regions
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - addr
    - push
    - next_memory_slot
    - region
    - Ok
    - Result::is_empty
    - Arc::new
    - file
    - len
    - start
    - as_fd
    - iter
    - MmapRegion::mmap
    - Err
    - lock
    - create_user_memory_region
    - unwrap
    - clone
    - VfioUserPciDeviceError::Other
    linkageType: ''
    returnType: Result
    signature: pub fn map_mmio_regions(&mut self) -> Result<(), VfioUserPciDeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:211,1
    - Dst: drain
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:212,1
    - Dst: remove_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:216,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:219,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:220,1
    - Dst: free_memory_slot
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 210
    functionDepth: 13
    functionLinenumber: 210
    functionLinenumberEnd: 233
    functionName: VfioUserPciDevice::unmap_mmio_regions
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 1
    functionsReached:
    - remove_user_memory_region
    - addr
    - drain
    - len
    - free_memory_slot
    - iter_mut
    linkageType: ''
    returnType: void
    signature: fn unmap_mmio_regions(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:239,1
    - Dst: file
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:240,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:240,1
    - Dst: start
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:240,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:241,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:244,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:244,1
    - Dst: dma_map
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:244,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:247,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:247,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:247,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - region
    argTypes:
    - '&GuestRegionMmap<AtomicBitmap>'
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 10
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: VfioUserPciDevice::dma_map
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Result::raw_value
    - Result::start_addr
    - Result::len
    - lock
    - Result::file_offset
    - file
    - unwrap
    - dma_map
    - start
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn dma_map(&mut self,region: &GuestRegionMmap<AtomicBitmap>,)
      -> Result<(), VfioUserPciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:255,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:255,1
    - Dst: dma_unmap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:255,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:258,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:258,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:258,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - region
    argTypes:
    - '&GuestRegionMmap<AtomicBitmap>'
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 13
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: VfioUserPciDevice::dma_unmap
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Result::raw_value
    - Result::start_addr
    - Result::len
    - lock
    - unwrap
    - dma_unmap
    linkageType: ''
    returnType: Result
    signature: 'pub fn dma_unmap(&mut self,region: &GuestRegionMmap<AtomicBitmap>,)
      -> Result<(), VfioUserPciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioUserPciDevice::read_bar
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: VfioUserPciDevice::read
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - VfioUserPciDevice::read_bar
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioUserPciDevice::write_bar
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: VfioUserPciDevice::write
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - VfioUserPciDevice::write_bar
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:295,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:295,1
    - Dst: region_read
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:295,1
    - Dst: ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - index
    - offset
    - data
    argTypes:
    - u32
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 13
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: VfioUserClientWrapper::region_read
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - lock
    - region_read
    - unwrap
    - ok
    linkageType: ''
    returnType: void
    signature: 'fn region_read(&self, index: u32, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:303,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:303,1
    - Dst: region_write
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:303,1
    - Dst: ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - index
    - offset
    - data
    argTypes:
    - u32
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 13
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: VfioUserClientWrapper::region_write
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - lock
    - region_write
    - unwrap
    - ok
    linkageType: ''
    returnType: void
    signature: 'fn region_write(&self, index: u32, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:311,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:311,1
    - Dst: get_irq_info
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:311,1
    - Dst: ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:311,1
    - Dst: map
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 321
      start: 310
    functionDepth: 13
    functionLinenumber: 310
    functionLinenumberEnd: 321
    functionName: VfioUserClientWrapper::get_irq_info
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - map
    - ok
    - lock
    - unwrap
    - get_irq_info
    linkageType: ''
    returnType: Option
    signature: 'fn get_irq_info(&self, irq_index: u32) -> Option<VfioIrq>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<&EventFd>::iter
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:329,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:329,1
    - Dst: usize::as_raw_fd
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:329,1
    - Dst: Self::collect
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:329,1
    - Dst: Vec<&EventFd>::len
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:333,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:342,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:342,1
    - Dst: set_irqs
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:342,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:342,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 2
    argNames:
    - irq_index
    - event_fds
    argTypes:
    - u32
    - Vec<&EventFd>
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 13
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: VfioUserClientWrapper::enable_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - map_err
    - Vec<&EventFd>::iter
    - Vec<&EventFd>::len
    - lock
    - set_irqs
    - unwrap
    - Self::collect
    - usize::as_raw_fd
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn enable_irq(&self, irq_index: u32, event_fds: Vec<&EventFd>) ->
      Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:362,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:362,1
    - Dst: set_irqs
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:362,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 373
      start: 360
    functionDepth: 13
    functionLinenumber: 360
    functionLinenumberEnd: 373
    functionName: VfioUserClientWrapper::disable_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - lock
    - set_irqs
    - unwrap
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn disable_irq(&self, irq_index: u32) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:377,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:377,1
    - Dst: set_irqs
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:377,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 13
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: VfioUserClientWrapper::unmask_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - lock
    - set_irqs
    - unwrap
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn unmask_irq(&self, irq_index: u32) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allocate_bars
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:399,1
    - Dst: Vec::as_deref
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - allocator
    - mmio32_allocator
    - mmio64_allocator
    - resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 405
      start: 392
    functionDepth: 10
    functionLinenumber: 392
    functionLinenumberEnd: 405
    functionName: VfioUserPciDevice::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - allocate_bars
    - Vec::as_deref
    linkageType: ''
    returnType: Result
    signature: 'fn allocate_bars(&mut self,allocator: &Arc<Mutex<SystemAllocator>>,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,resources: Option<Vec<Resource>>,)
      -> Result<Vec<PciBarConfiguration>, PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_bars
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - allocator
    - mmio32_allocator
    - mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 415
      start: 407
    functionDepth: 10
    functionLinenumber: 407
    functionLinenumberEnd: 415
    functionName: VfioUserPciDevice::free_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - free_bars
    linkageType: ''
    returnType: Result
    signature: 'fn free_bars(&mut self,allocator: &mut SystemAllocator,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,) -> Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    functionName: VfioUserPciDevice::as_any_mut
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 428
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 428
    functionName: VfioUserPciDevice::write_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - write_config_register
    linkageType: ''
    returnType: (Vec
    signature: 'fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_config_register
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: VfioUserPciDevice::read_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - read_config_register
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_bar
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: VfioUserPciDevice::read_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 1
    functionsReached:
    - read_bar
    linkageType: ''
    returnType: void
    signature: 'fn read_bar(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_bar
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: VfioUserPciDevice::write_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 1
    functionsReached:
    - write_bar
    linkageType: ''
    returnType: Option
    signature: 'fn write_bar(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:444,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:445,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:446,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:448,1
    - Dst: remove_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:452,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:455,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:456,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:451,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:473,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:476,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:477,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:472,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 64
    argCount: 2
    argNames:
    - old_base
    - new_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 489
      start: 442
    functionDepth: 9
    functionLinenumber: 442
    functionLinenumberEnd: 489
    functionName: VfioUserPciDevice::move_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - iter_mut
    - vm_memory::GuestAddress
    - remove_user_memory_region
    - map_err
    - addr
    - create_user_memory_region
    - Ok
    - len
    - raw_value
    linkageType: ''
    returnType: Result
    signature: 'fn move_bar(&mut self, old_base: u64, new_base: u64) -> Result<(),
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 527
    functionName: VfioUserPciDevice::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioUserPciDevice::unmap_mmio_regions
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:498,1
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:501,1
    - Dst: disable_msix
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:503,1
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:507,1
    - Dst: disable_msi
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:509,1
    - Dst: intx_in_use
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:512,1
    - Dst: disable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:513,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:516,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:516,1
    - Dst: shutdown
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 497
    functionDepth: 14
    functionLinenumber: 497
    functionLinenumberEnd: 519
    functionName: VfioUserPciDevice::drop
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - intx_in_use
    - VfioUserPciDevice::unmap_mmio_regions
    - disable_msi
    - disable_intx
    - disable_msix
    - lock
    - enabled
    - unwrap
    - shutdown
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::default
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:530,1
    - Dst: Self::add_snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:533,1
    - Dst: id
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:533,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:533,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 9
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: VfioUserPciDevice::snapshot
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - Snapshot::default
    - snapshot
    - id
    - Self::add_snapshot
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - client
    - memory
    argTypes:
    - Arc<Mutex<Client>>
    - Arc<M>
    constantsTouched: []
    func_position:
      end: 549
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 549
    functionName: VfioUserDmaMapping::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(client: Arc<Mutex<Client>>, memory: Arc<M>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:554,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:555,1
    - Dst: GuestMemoryMmap::find_region
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:556,1
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:559,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:559,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:560,1
    - Dst: checked_offset_from
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:560,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:560,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:560,1
    - Dst: start
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:561,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:563,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:563,1
    - Dst: dma_map
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:563,1
    - Dst: file
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:566,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:566,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:563,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:567,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:569,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - iova
    - gpa
    - size
    argTypes:
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 573
      start: 553
    functionDepth: 13
    functionLinenumber: 553
    functionLinenumberEnd: 573
    functionName: VfioUserDmaMapping::map
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - checked_offset_from
    - vm_memory::GuestAddress
    - map_err
    - std::io::Error::other
    - Result::start_addr
    - GuestMemoryMmap::find_region
    - as_raw_fd
    - lock
    - Err
    - Result::file_offset
    - file
    - unwrap
    - start
    - dma_map
    - memory
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn map(&self, iova: u64, gpa: u64, size: u64) -> std::result::Result<(),
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:576,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:576,1
    - Dst: dma_unmap
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:576,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:576,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio_user.rs:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - iova
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 13
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: VfioUserDmaMapping::unmap
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio_user.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::other
    - map_err
    - lock
    - unwrap
    - dma_unmap
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn unmap(&self, iova: u64, size: u64) -> std::result::Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: PciVfioSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:124,1
    - Dst: update
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:126,1
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:128,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:131,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: VfioMsi::update
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - enabled
    - Some
    - update
    linkageType: ''
    returnType: Option
    signature: 'fn update(&mut self, offset: u64, data: &[u8]) -> Option<InterruptUpdateAction>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:158,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:161,1
    - Dst: set_msg_ctl
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:162,1
    - Dst: LittleEndian::read_u16
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:162,1
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:165,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:168,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: VfioMsix::update
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::read_u16
    - set_msg_ctl
    - enabled
    - String::len
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn update(&mut self, offset: u64, data: &[u8]) -> Option<InterruptUpdateAction>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:179,1
    - Dst: table_offset
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:179,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:180,1
    - Dst: table_size
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:180,1
    - Dst: table_bir
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - bar_index
    - offset
    argTypes:
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 8
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: VfioMsix::table_accessed
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - table_bir
    - table_offset
    - table_size
    linkageType: ''
    returnType: bool
    signature: 'fn table_accessed(&self, bar_index: u32, offset: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: Interrupt::update_msi
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: Option
    signature: 'fn update_msi(&mut self, offset: u64, data: &[u8]) -> Option<InterruptUpdateAction>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::update
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: Interrupt::update_msix
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Option::update
    linkageType: ''
    returnType: Option
    signature: 'fn update_msix(&mut self, offset: u64, data: &[u8]) -> Option<InterruptUpdateAction>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:214,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:215,1
    - Dst: size
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:215,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:217,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:219,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:224,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:226,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 230
      start: 212
    functionDepth: 8
    functionLinenumber: 212
    functionLinenumberEnd: 230
    functionName: Interrupt::accessed
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - size
    - u64::from
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn accessed(&self, offset: u64) -> Option<(PciCapabilityId, u64)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::table_accessed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bar_index
    - offset
    argTypes:
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 9
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: Interrupt::msix_table_accessed
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Option::table_accessed
    linkageType: ''
    returnType: bool
    signature: 'fn msix_table_accessed(&self, bar_index: u32, offset: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:242,1
    - Dst: table_offset
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:242,1
    - Dst: write_table
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 8
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: Interrupt::msix_write_table
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - table_offset
    - write_table
    linkageType: ''
    returnType: void
    signature: 'fn msix_write_table(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:249,1
    - Dst: table_offset
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:249,1
    - Dst: read_table
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 8
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: Interrupt::msix_read_table
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - table_offset
    - read_table
    linkageType: ''
    returnType: void
    signature: 'fn msix_read_table(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: Interrupt::intx_in_use
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn intx_in_use(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:292,1
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:295,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:296,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:296,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - guest_addr
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 304
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 304
    functionName: Vec::check_range
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - u64::checked_add
    - checked_add
    - raw_value
    - Vec::iter
    linkageType: ''
    returnType: bool
    signature: 'fn check_range(&self, guest_addr: u64, size: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:308,1
    - Dst: iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:309,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:312,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:312,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:312,1
    - Dst: u64::checked_sub
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:314,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:333,1
    - Dst: Result::addr
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:333,1
    - Dst: u64::add
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:333,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:337,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:337,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - guest_addr
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 340
      start: 307
    functionDepth: 7
    functionLinenumber: 307
    functionLinenumberEnd: 340
    functionName: Vec::find_user_address
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - iter
    - u64::checked_sub
    - Result::addr
    - usize::try_into
    - std::result::Result::unwrap
    - Result::len
    - Err
    - u64::add
    - io::Error::other
    - Vec::iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn find_user_address(&self, guest_addr: u64, size: u64) -> Result<*mut
      u8, io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::read_config
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 8
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: Vfio::read_config_byte
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Vfio::read_config
    linkageType: ''
    returnType: u8
    signature: 'fn read_config_byte(&self, offset: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::read_config
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:360,1
    - Dst: u16::from_le_bytes
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 8
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: Vfio::read_config_word
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - u16::from_le_bytes
    - Vfio::read_config
    linkageType: ''
    returnType: u16
    signature: 'fn read_config_word(&self, offset: u32) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::read_config
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:366,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 8
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: Vfio::read_config_dword
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Vfio::read_config
    - u32::from_le_bytes
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_dword(&self, offset: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::to_le_bytes
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:371,1
    - Dst: Vfio::write_config
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - buf
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 8
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: Vfio::write_config_dword
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Vfio::write_config
    - Self::to_le_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_config_dword(&self, offset: u32, buf: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::region_read
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:376,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:376,1
    - Dst: String::as_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u32
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 7
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: Vfio::read_config
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 3
    functionsReached:
    - String::as_mut
    - Vfio::region_read
    - Result::into
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u32, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::region_write
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:380,1
    - Dst: Result::into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 7
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Vfio::write_config
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - Vfio::region_write
    - Result::into
    linkageType: ''
    returnType: void
    signature: 'fn write_config(&self, offset: u32, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::enable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fds
    argTypes:
    - Vec<&EventFd>
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: Vfio::enable_msi
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Vfio::enable_irq
    linkageType: ''
    returnType: Result
    signature: 'fn enable_msi(&self, fds: Vec<&EventFd>) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::disable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: Vfio::disable_msi
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Vfio::disable_irq
    linkageType: ''
    returnType: Result
    signature: fn disable_msi(&self) -> Result<(), VfioError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::enable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fds
    argTypes:
    - Vec<&EventFd>
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: Vfio::enable_msix
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Vfio::enable_irq
    linkageType: ''
    returnType: Result
    signature: 'fn enable_msix(&self, fds: Vec<&EventFd>) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vfio::disable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: Vfio::disable_msix
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Vfio::disable_irq
    linkageType: ''
    returnType: Result
    signature: fn disable_msix(&self) -> Result<(), VfioError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _index
    - _offset
    - _data
    argTypes:
    - u32
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: Vfio::region_read
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn region_read(&self, _index: u32, _offset: u64, _data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _index
    - _offset
    - _data
    argTypes:
    - u32
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: Vfio::region_write
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn region_write(&self, _index: u32, _offset: u64, _data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: Vfio::get_irq_info
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn get_irq_info(&self, _irq_index: u32) -> Option<VfioIrq>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _irq_index
    - _event_fds
    argTypes:
    - u32
    - Vec<&EventFd>
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: Vfio::enable_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn enable_irq(&self, _irq_index: u32, _event_fds: Vec<&EventFd>) ->
      Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: Vfio::disable_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn disable_irq(&self, _irq_index: u32) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: Vfio::unmask_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn unmask_irq(&self, _irq_index: u32) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - device
    argTypes:
    - Arc<VfioDevice>
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: VfioDeviceWrapper::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(device: Arc<VfioDevice>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: region_read
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - index
    - offset
    - data
    argTypes:
    - u32
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 437
      start: 435
    functionDepth: 14
    functionLinenumber: 435
    functionLinenumberEnd: 437
    functionName: VfioDeviceWrapper::region_read
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - region_read
    linkageType: ''
    returnType: void
    signature: 'fn region_read(&self, index: u32, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: region_write
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - index
    - offset
    - data
    argTypes:
    - u32
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 14
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: VfioDeviceWrapper::region_write
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - region_write
    linkageType: ''
    returnType: void
    signature: 'fn region_write(&self, index: u32, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_irq_info
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:444,1
    - Dst: copied
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 14
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: VfioDeviceWrapper::get_irq_info
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - copied
    - get_irq_info
    linkageType: ''
    returnType: Option
    signature: 'fn get_irq_info(&self, irq_index: u32) -> Option<VfioIrq>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:448,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - irq_index
    - event_fds
    argTypes:
    - u32
    - Vec<&EventFd>
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 14
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: VfioDeviceWrapper::enable_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - enable_irq
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn enable_irq(&self, irq_index: u32, event_fds: Vec<&EventFd>) ->
      Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: disable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:454,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 14
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: VfioDeviceWrapper::disable_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - disable_irq
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn disable_irq(&self, irq_index: u32) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unmask_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:460,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - irq_index
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 14
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: VfioDeviceWrapper::unmask_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - unmask_irq
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn unmask_irq(&self, irq_index: u32) -> Result<(), VfioError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:499,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:499,1
    - Dst: VfioPciError::RetrievePciConfigurationState
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:501,1
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:506,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:521,1
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:531,1
    - Dst: ApiResult::as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:535,1
    - Dst: map
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:535,1
    - Dst: FdtWriterResult::to_state
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:537,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:535,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:535,1
    - Dst: VfioPciError::RetrieveVfioCommonState
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:540,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:544,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:544,1
    - Dst: VfioPciError::RetrieveMsiConfigState
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:545,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:549,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:549,1
    - Dst: VfioPciError::RetrieveMsixConfigState
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:550,1
    - Dst: String::as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:555,1
    - Dst: set_state
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:556,1
    - Dst: parse_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:558,1
    - Dst: initialize_legacy_interrupt
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:559,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 53
    argCount: 7
    argNames:
    - msi_interrupt_manager
    - legacy_interrupt_group
    - vfio_wrapper
    - subclass
    - bdf
    - snapshot
    - x_nv_gpudirect_clique
    argTypes:
    - Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>
    - Option<Arc<dyn InterruptSourceGroup>>
    - Arc<dyn Vfio>
    - '&dyn PciSubclass'
    - PciBdf
    - Option<&Snapshot>
    - Option<u8>
    constantsTouched: []
    func_position:
      end: 563
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 563
    functionName: VfioCommon::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached:
    - HashMap::new
    - set_state
    - map_err
    - PciConfiguration::new
    - ApiResult::as_ref
    - Ok
    - VfioPciError::RetrievePciConfigurationState
    - transpose
    - FdtWriterResult::to_state
    - Vec::new
    - VfioPciError::RetrieveVfioCommonState
    - VfioPciError::RetrieveMsixConfigState
    - parse_capabilities
    - vm_migration::state_from_id
    - VfioPciError::RetrieveMsiConfigState
    - map
    - initialize_legacy_interrupt
    - String::as_ref
    - Result::map_err
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn new(msi_interrupt_manager: Arc<dyn InterruptManager<GroupConfig
      = MsiIrqGroupConfig>>,legacy_interrupt_group: Option<Arc<dyn InterruptSourceGroup>>,vfio_wrapper:
      Arc<dyn Vfio>,subclass: &dyn PciSubclass,bdf: PciBdf,snapshot: Option<&Snapshot>,x_nv_gpudirect_clique:
      Option<u8>,) -> Result<Self, VfioPciError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:568,1
    - Dst: table_range
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:572,1
    - Dst: vm_allocator::page_size::is_page_size_aligned
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:573,1
    - Dst: table_bir
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:573,1
    - Dst: pba_range
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:577,1
    - Dst: vm_allocator::page_size::align_page_size_up
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:578,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:580,1
    - Dst: table_set_offset
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:582,1
    - Dst: pba_set_offset
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - bar_id
    - region_size
    argTypes:
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 590
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 590
    functionName: VfioCommon::fixup_msix_region
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - table_bir
    - std::cmp::max
    - as_mut
    - table_range
    - vm_allocator::page_size::align_page_size_up
    - pba_set_offset
    - pba_range
    - vm_allocator::page_size::is_page_size_aligned
    - table_set_offset
    linkageType: ''
    returnType: u64
    signature: 'fn fixup_msix_region(&mut self, bar_id: u32, region_size: u64) ->
      u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:601,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:626,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:626,1
    - Dst: PciBarRegionType::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:628,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:632,1
    - Dst: read_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:644,1
    - Dst: write_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:671,1
    - Dst: read_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:675,1
    - Dst: write_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:698,1
    - Dst: read_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:700,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:702,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:702,1
    - Dst: Arc::lock
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:734,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:734,1
    - Dst: allocate_io_addresses
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:734,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:737,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:734,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:738,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:742,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:743,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:742,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:744,1
    - Dst: VfioCommon::fixup_msix_region
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:749,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:750,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:754,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:754,1
    - Dst: libc::sysconf
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:756,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:750,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:760,1
    - Dst: PciBarConfiguration::default
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:765,1
    - Dst: Self::set_index
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:765,1
    - Dst: Self::set_address
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:765,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:767,1
    - Dst: Self::set_size
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:765,1
    - Dst: Self::set_region_type
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:765,1
    - Dst: Self::set_prefetchable
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:765,1
    - Dst: add_pci_rom_bar
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:773,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:773,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:775,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:775,1
    - Dst: add_pci_bar
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:777,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:777,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:779,1
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:779,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:782,1
    - Dst: push
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:783,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:788,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:797,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 216
    argCount: 4
    argNames:
    - allocator
    - mmio32_allocator
    - mmio64_allocator
    - resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<&[Resource]>
    constantsTouched: []
    func_position:
      end: 798
      start: 594
    functionDepth: 12
    functionLinenumber: 594
    functionLinenumberEnd: 798
    functionName: VfioCommon::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Self::set_prefetchable
    - Self::set_index
    - map_err
    - push
    - write_config_dword
    - u64::from
    - ok_or
    - Ok
    - Self::set_size
    - Vec::new
    - PciDeviceError::IoAllocationFailed
    - add_pci_rom_bar
    - Arc::lock
    - '&mut AddressAllocator::allocate'
    - libc::sysconf
    - PciBarConfiguration::default
    - PciDeviceError::IoRegistrationFailed
    - Result::push
    - Self::set_region_type
    - vm_memory::GuestAddress
    - std::cmp::max
    - add_pci_bar
    - Self::set_address
    - unwrap
    - Option::ok_or
    - u64::raw_value
    - None::is_none
    - PciBarRegionType::from
    - read_config_dword
    - allocate_io_addresses
    - VfioCommon::fixup_msix_region
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn allocate_bars(&mut self,allocator: &Arc<Mutex<SystemAllocator>>,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,resources: Option<&[Resource]>,)
      -> Result<Vec<PciBarConfiguration>, PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:808,1
    - Dst: Arc::free_io_addresses
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:811,1
    - Dst: '&mut AddressAllocator::free'
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:814,1
    - Dst: '&mut AddressAllocator::free'
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:817,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - allocator
    - mmio32_allocator
    - mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 822
      start: 802
    functionDepth: 10
    functionLinenumber: 802
    functionLinenumberEnd: 822
    functionName: VfioCommon::free_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Arc::free_io_addresses
    - iter
    - '&mut AddressAllocator::free'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn free_bars(&mut self,allocator: &mut SystemAllocator,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,) -> Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_config_word
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:825,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:825,1
    - Dst: read_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:827,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:827,1
    - Dst: read_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:829,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - cap
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 836
      start: 824
    functionDepth: 9
    functionLinenumber: 824
    functionLinenumberEnd: 836
    functionName: VfioCommon::parse_msix_capabilities
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - read_config_word
    - read_config_dword
    - into
    linkageType: ''
    returnType: MsixCap
    signature: 'fn parse_msix_capabilities(&mut self, cap: u8) -> MsixCap'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_group
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:845,1
    - Dst: MsixCap::table_size
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:849,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:845,1
    - Dst: MsixConfig::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:853,1
    - Dst: MsixCap::table_size
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:854,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:855,1
    - Dst: DeviceManagerResult::into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:856,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:853,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 4
    argNames:
    - msix_cap
    - cap_offset
    - bdf
    - state
    argTypes:
    - MsixCap
    - u32
    - PciBdf
    - Option<MsixConfigState>
    constantsTouched: []
    func_position:
      end: 867
      start: 838
    functionDepth: 6
    functionLinenumber: 838
    functionLinenumberEnd: 867
    functionName: VfioCommon::initialize_msix
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached:
    - create_group
    - Some
    - MsixCap::table_size
    - DeviceManagerResult::into
    - MsixConfig::new
    - unwrap
    - result::Result::unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: 'fn initialize_msix(&mut self,msix_cap: MsixCap,cap_offset: u32,bdf:
      PciBdf,state: Option<MsixConfigState>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_config_word
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:870,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cap
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 871
      start: 869
    functionDepth: 9
    functionLinenumber: 869
    functionLinenumberEnd: 871
    functionName: VfioCommon::parse_msi_capabilities
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - read_config_word
    - into
    linkageType: ''
    returnType: u16
    signature: 'fn parse_msi_capabilities(&mut self, cap: u8) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_group
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:874,1
    - Dst: msi_num_enabled_vectors
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:878,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:874,1
    - Dst: MsiConfig::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:882,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:882,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:882,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - msg_ctl
    - cap_offset
    - state
    argTypes:
    - u16
    - u32
    - Option<MsiConfigState>
    constantsTouched: []
    func_position:
      end: 889
      start: 873
    functionDepth: 6
    functionLinenumber: 873
    functionLinenumberEnd: 889
    functionName: VfioCommon::initialize_msi
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached:
    - create_group
    - MsiConfig::new
    - Some
    - unwrap
    - msi_num_enabled_vectors
    - Result::unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: 'fn initialize_msi(&mut self, msg_ctl: u16, cap_offset: u32, state:
      Option<MsiConfigState>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_config_word
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 892
    functionDepth: 9
    functionLinenumber: 892
    functionLinenumberEnd: 895
    functionName: VfioCommon::has_capabilities
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached:
    - read_config_word
    linkageType: ''
    returnType: bool
    signature: fn has_capabilities(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioCommon::has_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:898,1
    - Dst: read_config_byte
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:902,1
    - Dst: read_config_byte
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:908,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:908,1
    - Dst: PciCapabilityId::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:909,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:910,1
    - Dst: read_config_byte
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:912,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:912,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 923
      start: 897
    functionDepth: 10
    functionLinenumber: 897
    functionLinenumberEnd: 923
    functionName: VfioCommon::get_msix_cap_idx
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - into
    - read_config_byte
    - VfioCommon::has_capabilities
    - Some
    - PciCapabilityId::from
    linkageType: ''
    returnType: Option
    signature: fn get_msix_cap_idx(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioCommon::has_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:926,1
    - Dst: read_config_byte
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:930,1
    - Dst: read_config_byte
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:939,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:939,1
    - Dst: PciCapabilityId::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:941,1
    - Dst: get_irq_info
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:943,1
    - Dst: VfioCommon::parse_msi_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:948,1
    - Dst: VfioCommon::initialize_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:949,1
    - Dst: get_irq_info
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:953,1
    - Dst: VfioCommon::parse_msix_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:958,1
    - Dst: VfioCommon::initialize_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:959,1
    - Dst: read_config_byte
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:967,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:967,1
    - Dst: VfioCommon::add_nv_gpudirect_clique_cap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:982,1
    - Dst: VfioCommon::parse_extended_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:986,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 79
    argCount: 1
    argNames:
    - bdf
    argTypes:
    - PciBdf
    constantsTouched: []
    func_position:
      end: 988
      start: 925
    functionDepth: 13
    functionLinenumber: 925
    functionLinenumberEnd: 988
    functionName: VfioCommon::parse_capabilities
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - VfioCommon::parse_msi_capabilities
    - VfioCommon::add_nv_gpudirect_clique_cap
    - VfioCommon::initialize_msix
    - into
    - read_config_byte
    - VfioCommon::parse_extended_capabilities
    - get_irq_info
    - VfioCommon::has_capabilities
    - VfioCommon::initialize_msi
    - VfioCommon::parse_msix_capabilities
    - PciCapabilityId::from
    linkageType: ''
    returnType: void
    signature: 'fn parse_capabilities(&mut self, bdf: PciBdf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:996,1
    - Dst: insert
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1005,1
    - Dst: insert
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1012,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - cap_iter
    - clique_id
    argTypes:
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 1019
      start: 990
    functionDepth: 9
    functionLinenumber: 990
    functionLinenumberEnd: 1019
    functionName: VfioCommon::add_nv_gpudirect_clique_cap
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - u32::from
    - insert
    linkageType: ''
    returnType: void
    signature: 'fn add_nv_gpudirect_clique_cap(&mut self, cap_iter: u8, clique_id:
      u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1025,1
    - Dst: PciExpressCapabilityId::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1030,1
    - Dst: insert
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1035,1
    - Dst: u16::into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1021
    functionDepth: 9
    functionLinenumber: 1021
    functionLinenumberEnd: 1052
    functionName: VfioCommon::parse_extended_capabilities
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - PciExpressCapabilityId::from
    - read_config_dword
    - insert
    - u16::into
    linkageType: ''
    returnType: void
    signature: fn parse_extended_capabilities(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notifier
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1058,1
    - Dst: enable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1059,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1059,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1065,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1054
    functionDepth: 14
    functionLinenumber: 1054
    functionLinenumberEnd: 1070
    functionName: VfioCommon::enable_intx
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 4
    functionsReached:
    - enable_irq
    - notifier
    - map_err
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn enable_intx(&mut self) -> Result<(), VfioPciError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: disable_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1072
    functionDepth: 14
    functionLinenumber: 1072
    functionLinenumberEnd: 1082
    functionName: VfioCommon::disable_intx
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached:
    - disable_irq
    linkageType: ''
    returnType: void
    signature: pub(crate) fn disable_intx(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1086,1
    - Dst: num_enabled_vectors
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1087,1
    - Dst: notifier
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1088,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1089,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1091,1
    - Dst: enable_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1095,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1096,1
    - Dst: impl Iterator::collect
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1096,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1095,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1084
    functionDepth: 5
    functionLinenumber: 1084
    functionLinenumberEnd: 1101
    functionName: VfioCommon::enable_msi
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - enable_msi
    - notifier
    - map_err
    - Vec::new
    - impl Iterator::collect
    - Err
    - Result::iter
    - num_enabled_vectors
    - Result::push
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn enable_msi(&self) -> Result<(), VfioPciError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: disable_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1107
    functionName: VfioCommon::disable_msi
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - disable_msi
    linkageType: ''
    returnType: void
    signature: pub(crate) fn disable_msi(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1111,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1112,1
    - Dst: notifier
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1113,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1114,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1116,1
    - Dst: enable_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1120,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1121,1
    - Dst: impl Iterator::collect
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1121,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1120,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1109
    functionDepth: 5
    functionLinenumber: 1109
    functionLinenumberEnd: 1126
    functionName: VfioCommon::enable_msix
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - notifier
    - map_err
    - Vec::new
    - impl Iterator::collect
    - Err
    - Result::iter
    - len
    - enable_msix
    - Result::push
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn enable_msix(&self) -> Result<(), VfioPciError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: disable_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1132
    functionName: VfioCommon::disable_msix
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - disable_msix
    linkageType: ''
    returnType: void
    signature: pub(crate) fn disable_msix(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_irq_info
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1135,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1140,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1143,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1144,1
    - Dst: VfioCommon::enable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1149,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1134
    functionDepth: 14
    functionLinenumber: 1134
    functionLinenumberEnd: 1153
    functionName: VfioCommon::initialize_legacy_interrupt
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - VfioCommon::enable_intx
    - clone
    - get_irq_info
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn initialize_legacy_interrupt(&mut self) -> Result<(), VfioPciError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1156,1
    - Dst: VfioCommon::disable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1159,1
    - Dst: VfioCommon::enable_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1160,1
    - Dst: VfioCommon::disable_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1164,1
    - Dst: VfioCommon::enable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1165,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1171
      start: 1155
    functionDepth: 15
    functionLinenumber: 1155
    functionLinenumberEnd: 1171
    functionName: VfioCommon::update_msi_capabilities
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - VfioCommon::disable_intx
    - VfioCommon::enable_msi
    - VfioCommon::enable_intx
    - update_msi
    - VfioCommon::disable_msi
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_msi_capabilities(&mut self, offset: u64, data: &[u8]) ->
      Result<(), VfioPciError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1174,1
    - Dst: VfioCommon::disable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1177,1
    - Dst: VfioCommon::enable_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1178,1
    - Dst: VfioCommon::disable_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1182,1
    - Dst: VfioCommon::enable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1183,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1189
      start: 1173
    functionDepth: 15
    functionLinenumber: 1173
    functionLinenumberEnd: 1189
    functionName: VfioCommon::update_msix_capabilities
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - VfioCommon::disable_intx
    - VfioCommon::enable_msix
    - VfioCommon::disable_msix
    - VfioCommon::enable_intx
    - update_msix
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn update_msix_capabilities(&mut self, offset: u64, data: &[u8]) ->
      Result<(), VfioPciError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1192,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1193,1
    - Dst: unchecked_add
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1194,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1194,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1196,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1200
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1200
    functionName: VfioCommon::find_region
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 2
    functionsReached:
    - iter
    - unchecked_add
    - Result::clone
    - Some
    - raw_value
    linkageType: ''
    returnType: Option
    signature: 'fn find_region(&self, addr: u64) -> Option<MmioRegion>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioCommon::find_region
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1204,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1205,1
    - Dst: msix_table_accessed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1207,1
    - Dst: msix_read_table
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1208,1
    - Dst: region_read
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1210,1
    - Dst: intx_in_use
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1217,1
    - Dst: unmask_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1222
      start: 1202
    functionDepth: 13
    functionLinenumber: 1202
    functionLinenumberEnd: 1222
    functionName: VfioCommon::read_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - VfioCommon::find_region
    - msix_read_table
    - intx_in_use
    - region_read
    - unmask_irq
    - msix_table_accessed
    - raw_value
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn read_bar(&mut self, base: u64, offset: u64, data: &mut
      [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioCommon::find_region
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1231,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1232,1
    - Dst: msix_table_accessed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1235,1
    - Dst: msix_write_table
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1236,1
    - Dst: region_write
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1238,1
    - Dst: intx_in_use
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1245,1
    - Dst: unmask_irq
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1252
      start: 1224
    functionDepth: 13
    functionLinenumber: 1224
    functionLinenumberEnd: 1252
    functionName: VfioCommon::write_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - VfioCommon::find_region
    - intx_in_use
    - region_write
    - unmask_irq
    - msix_table_accessed
    - msix_write_table
    - raw_value
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn write_bar(&mut self,base: u64,offset: u64,data: &[u8],)
      -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1263,1
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1270,1
    - Dst: accessed
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1282,1
    - Dst: VfioCommon::update_msi_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1286,1
    - Dst: VfioCommon::update_msix_capabilities
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1291,1
    - Dst: write_config
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1307,1
    - Dst: pending_bar_reprogram
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1310,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1311,1
    - Dst: VfioCommon::read_config_register
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1312,1
    - Dst: clear_pending_bar_reprogram
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1317,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 69
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1328
      start: 1254
    functionDepth: 15
    functionLinenumber: 1254
    functionLinenumberEnd: 1328
    functionName: VfioCommon::write_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - clear_pending_bar_reprogram
    - is_empty
    - accessed
    - VfioCommon::update_msi_capabilities
    - Vec::new
    - VfioCommon::update_msix_capabilities
    - pending_bar_reprogram
    - VfioCommon::read_config_register
    - contains
    - write_config_register
    - write_config
    linkageType: ''
    returnType: (Vec
    signature: 'pub(crate) fn write_config_register(&mut self,reg_idx: usize,offset:
      u64,data: &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1335,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1338,1
    - Dst: VfioCommon::get_msix_cap_idx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1341,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1342,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1342,1
    - Dst: read_config_dword
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1360,1
    - Dst: get
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 65
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1367
      start: 1330
    functionDepth: 11
    functionLinenumber: 1330
    functionLinenumberEnd: 1367
    functionName: VfioCommon::read_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - as_mut
    - read_config_dword
    - unwrap
    - contains
    - VfioCommon::get_msix_cap_idx
    - get
    - read_reg
    linkageType: ''
    returnType: u32
    signature: 'pub(crate) fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1370,1
    - Dst: map
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1370,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1374,1
    - Dst: map
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1374,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1379,1
    - Dst: map
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1390
    functionName: VfioCommon::state
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - map
    linkageType: ''
    returnType: VfioCommonState
    signature: fn state(&self) -> VfioCommonState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1399,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1401,1
    - Dst: VfioCommon::enable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1407,1
    - Dst: VfioCommon::initialize_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1412,1
    - Dst: VfioCommon::initialize_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1416,1
    - Dst: into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1416,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 3
    argNames:
    - state
    - msi_state
    - msix_state
    argTypes:
    - '&VfioCommonState'
    - Option<MsiConfigState>
    - Option<MsixConfigState>
    constantsTouched: []
    func_position:
      end: 1420
      start: 1392
    functionDepth: 15
    functionLinenumber: 1392
    functionLinenumberEnd: 1420
    functionName: VfioCommon::set_state
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - VfioCommon::enable_intx
    - VfioCommon::initialize_msix
    - clone
    - into
    - VfioCommon::initialize_msi
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_state(&mut self,state: &VfioCommonState,msi_state: Option<MsiConfigState>,msix_state:
      Option<MsixConfigState>,) -> Result<(), VfioPciError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1428
    functionName: VfioCommon::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - String::from
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1431,1
    - Dst: VfioCommon::state
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1431,1
    - Dst: add_snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1434,1
    - Dst: id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1434,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1434,1
    - Dst: add_snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1438,1
    - Dst: id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1438,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1438,1
    - Dst: add_snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1443,1
    - Dst: id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1443,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1443,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1446,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1430
    functionDepth: 9
    functionLinenumber: 1430
    functionLinenumberEnd: 1447
    functionName: VfioCommon::snapshot
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - VfioCommon::state
    - snapshot
    - id
    - add_snapshot
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1485,1
    - Dst: String::reset
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1486,1
    - Dst: VfioDeviceWrapper::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1488,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1488,1
    - Dst: VfioCommon::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1490,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1493,1
    - Dst: vm_migration::snapshot_from_id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1496,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 12
    argNames:
    - id
    - vm
    - device
    - container
    - msi_interrupt_manager
    - legacy_interrupt_group
    - iommu_attached
    - bdf
    - memory_slot_allocator
    - snapshot
    - x_nv_gpudirect_clique
    - device_path
    argTypes:
    - String
    - Arc<dyn hypervisor::Vm>
    - VfioDevice
    - Arc<VfioContainer>
    - Arc<dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>>
    - Option<Arc<dyn InterruptSourceGroup>>
    - bool
    - PciBdf
    - MemorySlotAllocator
    - Option<&Snapshot>
    - Option<u8>
    - PathBuf
    constantsTouched: []
    func_position:
      end: 1513
      start: 1471
    functionDepth: 13
    functionLinenumber: 1471
    functionLinenumberEnd: 1513
    functionName: VfioPciDevice::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - VfioCommon::new
    - Arc::new
    - VfioDeviceWrapper::new
    - String::reset
    - Arc::clone
    - vm_migration::snapshot_from_id
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,vm: Arc<dyn hypervisor::Vm>,device: VfioDevice,container:
      Arc<VfioContainer>,msi_interrupt_manager: Arc<dyn InterruptManager<GroupConfig
      = MsiIrqGroupConfig>>,legacy_interrupt_group: Option<Arc<dyn InterruptSourceGroup>>,iommu_attached:
      bool,bdf: PciBdf,memory_slot_allocator: MemorySlotAllocator,snapshot: Option<&Snapshot>,x_nv_gpudirect_clique:
      Option<u8>,device_path: PathBuf,) -> Result<Self, VfioPciError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1517
    functionName: VfioPciDevice::iommu_attached
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn iommu_attached(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1528,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1528,1
    - Dst: vm_allocator::page_size::is_4k_aligned
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1530,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1534,1
    - Dst: vm_allocator::page_size::is_4k_multiple
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1536,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1538,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1550,1
    - Dst: table_bir
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1552,1
    - Dst: table_range
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1553,1
    - Dst: align_page_size_down
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1554,1
    - Dst: vm_allocator::page_size::align_page_size_up
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1555,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1556,1
    - Dst: pba_bir
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1558,1
    - Dst: pba_range
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1559,1
    - Dst: align_page_size_down
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1560,1
    - Dst: vm_allocator::page_size::align_page_size_up
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1561,1
    - Dst: Result::insert
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1562,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1566,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1570,1
    - Dst: align_page_size_down
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1575,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1579,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1585,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1593,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 83
    argCount: 5
    argNames:
    - caps
    - region_index
    - region_start
    - region_size
    - vfio_msix
    argTypes:
    - '&[VfioRegionInfoCap]'
    - u32
    - u64
    - u64
    - Option<&VfioMsix>
    constantsTouched: []
    func_position:
      end: 1597
      start: 1519
    functionDepth: 8
    functionLinenumber: 1519
    functionLinenumberEnd: 1597
    functionName: VfioPciDevice::generate_sparse_areas
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - table_bir
    - Result::push
    - vm_allocator::page_size::is_4k_multiple
    - Vec::new
    - table_range
    - vm_allocator::page_size::is_4k_aligned
    - align_page_size_down
    - vm_allocator::page_size::align_page_size_up
    - Err
    - BTreeMap::new
    - pba_bir
    - pba_range
    - clone
    - Result::insert
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn generate_sparse_areas(caps: &[VfioRegionInfoCap],region_index:
      u32,region_start: u64,region_size: u64,vfio_msix: Option<&VfioMsix>,) -> Result<Vec<VfioRegionSparseMmapArea>,
      VfioPciError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1608,1
    - Dst: BorrowedFd::borrow_raw
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1610,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1611,1
    - Dst: get_region_flags
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1612,1
    - Dst: get_region_caps
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1624,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1626,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1632,1
    - Dst: table_bir
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1633,1
    - Dst: pba_bir
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1633,1
    - Dst: Result::contains
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1634,1
    - Dst: get_region_size
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1639,1
    - Dst: get_region_offset
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1640,1
    - Dst: Self::generate_sparse_areas
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1642,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1647,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1650,1
    - Dst: MmapRegion::mmap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1651,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1666,1
    - Dst: next_memory_slot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1671,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1673,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1680,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1683,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1684,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1679,1
    - Dst: vfio_dma_map
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1699,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1701,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1701,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1701,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1702,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1702,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1702,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1698,1
    - Dst: VfioPciError::DmaMap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1707,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1707,1
    - Dst: push
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1709,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1714,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 156
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1607
    functionDepth: 13
    functionLinenumber: 1607
    functionLinenumberEnd: 1715
    functionName: VfioPciDevice::map_mmio_regions
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - BorrowedFd::borrow_raw
    - map_err
    - as_ref
    - addr
    - VfioPciError::DmaMap
    - push
    - next_memory_slot
    - Ok
    - get_region_size
    - try_into
    - Vec::new
    - get_region_caps
    - Arc::new
    - Self::generate_sparse_areas
    - pba_bir
    - len
    - as_raw_fd
    - iter_mut
    - MmapRegion::mmap
    - Result::contains
    - Err
    - get_region_offset
    - vfio_dma_map
    - create_user_memory_region
    - unwrap
    - Result::iter
    - clone
    - table_bir
    - get_region_flags
    linkageType: ''
    returnType: Result
    signature: pub fn map_mmio_regions(&mut self) -> Result<(), VfioPciError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1718,1
    - Dst: drain
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1719,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1720,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1721,1
    - Dst: vfio_dma_unmap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1724,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1726,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1726,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1724,1
    - Dst: VfioPciError::DmaUnmap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1727,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1727,1
    - Dst: remove_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1741,1
    - Dst: free_memory_slot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1753,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1717
    functionDepth: 13
    functionLinenumber: 1717
    functionLinenumberEnd: 1757
    functionName: VfioPciDevice::unmap_mmio_regions
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - map_err
    - usize::try_into
    - addr
    - drain
    - remove_user_memory_region
    - vfio_dma_unmap
    - std::result::Result::unwrap
    - len
    - free_memory_slot
    - clone
    - VfioPciError::DmaUnmap
    - iter_mut
    linkageType: ''
    returnType: void
    signature: pub fn unmap_mmio_regions(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1759
    functionDepth: 3
    functionLinenumber: 1759
    functionLinenumberEnd: 1761
    functionName: VfioPciDevice::mmio_regions
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Vec
    signature: pub fn mmio_regions(&self) -> Vec<MmioRegion>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioPciDevice::unmap_mmio_regions
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1766,1
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1769,1
    - Dst: disable_msix
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1771,1
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1775,1
    - Dst: disable_msi
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1777,1
    - Dst: intx_in_use
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1780,1
    - Dst: disable_intx
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1781,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1765
    functionDepth: 14
    functionLinenumber: 1765
    functionLinenumberEnd: 1783
    functionName: VfioPciDevice::drop
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - intx_in_use
    - VfioPciDevice::unmap_mmio_regions
    - disable_msi
    - disable_intx
    - disable_msix
    - enabled
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioPciDevice::read_bar
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1789
      start: 1787
    functionDepth: 5
    functionLinenumber: 1787
    functionLinenumberEnd: 1789
    functionName: VfioPciDevice::read
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - VfioPciDevice::read_bar
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VfioPciDevice::write_bar
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1793
      start: 1791
    functionDepth: 2
    functionLinenumber: 1791
    functionLinenumberEnd: 1793
    functionName: VfioPciDevice::write
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - VfioPciDevice::write_bar
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allocate_bars
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1833,1
    - Dst: Vec::as_deref
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - allocator
    - mmio32_allocator
    - mmio64_allocator
    - resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 1839
      start: 1826
    functionDepth: 10
    functionLinenumber: 1826
    functionLinenumberEnd: 1839
    functionName: VfioPciDevice::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - allocate_bars
    - Vec::as_deref
    linkageType: ''
    returnType: Result
    signature: 'fn allocate_bars(&mut self,allocator: &Arc<Mutex<SystemAllocator>>,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,resources: Option<Vec<Resource>>,)
      -> Result<Vec<PciBarConfiguration>, PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_bars
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - allocator
    - mmio32_allocator
    - mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 1849
      start: 1841
    functionDepth: 10
    functionLinenumber: 1841
    functionLinenumberEnd: 1849
    functionName: VfioPciDevice::free_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - free_bars
    linkageType: ''
    returnType: Result
    signature: 'fn free_bars(&mut self,allocator: &mut SystemAllocator,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,) -> Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1858
      start: 1851
    functionDepth: 2
    functionLinenumber: 1851
    functionLinenumberEnd: 1858
    functionName: VfioPciDevice::write_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - write_config_register
    linkageType: ''
    returnType: (Vec
    signature: 'fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_config_register
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1862
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1862
    functionName: VfioPciDevice::read_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - read_config_register
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_bar
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1866
      start: 1864
    functionDepth: 4
    functionLinenumber: 1864
    functionLinenumberEnd: 1866
    functionName: VfioPciDevice::read_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - read_bar
    linkageType: ''
    returnType: void
    signature: 'fn read_bar(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_bar
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1870
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 1870
    functionName: VfioPciDevice::write_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached:
    - write_bar
    linkageType: ''
    returnType: Option
    signature: 'fn write_bar(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1873,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1874,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1875,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1877,1
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1878,1
    - Dst: addr
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1879,1
    - Dst: vfio_dma_unmap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1882,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1884,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1884,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1882,1
    - Dst: VfioPciError::DmaUnmap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1886,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1886,1
    - Dst: remove_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1900,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1899,1
    - Dst: create_user_memory_region
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1923,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1922,1
    - Dst: vfio_dma_map
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1942,1
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1944,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1944,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1945,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1945,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1941,1
    - Dst: VfioPciError::DmaMap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1948,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1948,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1941,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1950,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1961,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 109
    argCount: 2
    argNames:
    - old_base
    - new_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1962
      start: 1872
    functionDepth: 7
    functionLinenumber: 1872
    functionLinenumberEnd: 1962
    functionName: VfioPciDevice::move_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - map_err
    - addr
    - VfioPciError::DmaMap
    - vfio_dma_unmap
    - Ok
    - remove_user_memory_region
    - try_into
    - len
    - iter_mut
    - raw_value
    - vm_memory::GuestAddress
    - std::result::Result::unwrap
    - vfio_dma_map
    - create_user_memory_region
    - unwrap
    - clone
    - VfioPciError::DmaUnmap
    - usize::try_into
    - io::Error::other
    linkageType: ''
    returnType: Result
    signature: 'fn move_bar(&mut self, old_base: u64, new_base: u64) -> Result<(),
      io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1964
    functionDepth: 0
    functionLinenumber: 1964
    functionLinenumberEnd: 1966
    functionName: VfioPciDevice::as_any_mut
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1976
    functionDepth: 3
    functionLinenumber: 1976
    functionLinenumberEnd: 1978
    functionName: VfioPciDevice::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::default
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1981,1
    - Dst: Self::add_snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1984,1
    - Dst: id
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1984,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1984,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:1986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1980
    functionDepth: 9
    functionLinenumber: 1980
    functionLinenumberEnd: 1987
    functionName: VfioPciDevice::snapshot
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - Snapshot::default
    - snapshot
    - id
    - Self::add_snapshot
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - container
    - memory
    - mmio_regions
    argTypes:
    - Arc<VfioContainer>
    - Arc<M>
    - Arc<Mutex<Vec<MmioRegion>>>
    constantsTouched: []
    func_position:
      end: 2018
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2018
    functionName: VfioDmaMapping::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(container: Arc<VfioContainer>,memory: Arc<M>,mmio_regions:
      Arc<Mutex<Vec<MmioRegion>>>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2023,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2024,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2024,1
    - Dst: memory
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2026,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2027,1
    - Dst: GuestMemoryMmap::check_range
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2028,1
    - Dst: GuestMemoryMmap::get_slice
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2029,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2032,1
    - Dst: fmt::Result::ptr_guard_mut
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2032,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2035,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2035,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2040,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2040,1
    - Dst: check_range
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2040,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2041,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2041,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2041,1
    - Dst: find_user_address
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2041,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2047,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2047,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2052,1
    - Dst: vfio_dma_map
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2062,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2063,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2063,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2061,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2066,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 3
    argNames:
    - iova
    - gpa
    - size
    argTypes:
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 2071
      start: 2022
    functionDepth: 12
    functionLinenumber: 2022
    functionLinenumberEnd: 2071
    functionName: VfioDmaMapping::map
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - fmt::Result::ptr_guard_mut
    - vm_memory::GuestAddress
    - try_into
    - usize::try_into
    - map_err
    - GuestMemoryMmap::check_range
    - Result::as_ptr
    - Err
    - lock
    - vfio_dma_map
    - GuestMemoryMmap::get_slice
    - unwrap
    - io::Error::other
    - check_range
    - find_user_address
    - memory
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn map(&self, iova: u64, gpa: u64, size: u64) -> std::result::Result<(),
      io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vfio_dma_unmap
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2074,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2074,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/pci/src/vfio.rs:2075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - iova
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 2080
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2080
    functionName: VfioDmaMapping::unmap
    functionSourceFile: /src/cloud-hypervisor/pci/src/vfio.rs
    functionUses: 0
    functionsReached:
    - io::Error::other
    - vfio_dma_unmap
    - map_err
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn unmap(&self, iova: u64, size: u64) -> std::result::Result<(), io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: MsixTableEntry::masked
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn masked(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: MsixTableEntry::default
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/pci/src/msix.rs:95,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/pci/src/msix.rs:95,1
    - Dst: masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:96,1
    - Dst: Arc<dyn InterruptSourceGroup>::update
      Src: /src/cloud-hypervisor/pci/src/msix.rs:107,1
    - Dst: InterruptSourceConfig::MsiIrq
      Src: /src/cloud-hypervisor/pci/src/msix.rs:110,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/msix.rs:107,1
    - Dst: Arc<dyn InterruptSourceGroup>::enable
      Src: /src/cloud-hypervisor/pci/src/msix.rs:116,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/msix.rs:116,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/msix.rs:129,1
    - Dst: Result::resize_with
      Src: /src/cloud-hypervisor/pci/src/msix.rs:130,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/msix.rs:131,1
    - Dst: Result::resize_with
      Src: /src/cloud-hypervisor/pci/src/msix.rs:133,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/msix.rs:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 4
    argNames:
    - msix_vectors
    - interrupt_source_group
    - devid
    - state
    argTypes:
    - u16
    - Arc<dyn InterruptSourceGroup>
    - u32
    - Option<MsixConfigState>
    constantsTouched: []
    func_position:
      end: 146
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 146
    functionName: MsixConfig::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 2
    functionsReached:
    - iter
    - masked
    - Arc<dyn InterruptSourceGroup>::update
    - map_err
    - Vec::new
    - Arc<dyn InterruptSourceGroup>::enable
    - Result::resize_with
    - Result::map_err
    - InterruptSourceConfig::MsiIrq
    - enumerate
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn new(msix_vectors: u16,interrupt_source_group: Arc<dyn InterruptSourceGroup>,devid:
      u32,state: Option<MsixConfigState>,) -> result::Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/msix.rs:150,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/msix.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: MsixConfig::state
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 1
    functionsReached:
    - clone
    linkageType: ''
    returnType: MsixConfigState
    signature: fn state(&self) -> MsixConfigState
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: MsixConfig::masked
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn masked(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: MsixConfig::enabled
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/pci/src/msix.rs:176,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/pci/src/msix.rs:176,1
    - Dst: update
      Src: /src/cloud-hypervisor/pci/src/msix.rs:184,1
    - Dst: InterruptSourceConfig::MsiIrq
      Src: /src/cloud-hypervisor/pci/src/msix.rs:186,1
    - Dst: masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:187,1
    - Dst: disable
      Src: /src/cloud-hypervisor/pci/src/msix.rs:195,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/msix.rs:206,1
    - Dst: iter
      Src: /src/cloud-hypervisor/pci/src/msix.rs:206,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/pci/src/msix.rs:206,1
    - Dst: super::Result::masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:207,1
    - Dst: MsixConfig::get_pba_bit
      Src: /src/cloud-hypervisor/pci/src/msix.rs:207,1
    - Dst: MsixConfig::inject_msix_and_clear_pba
      Src: /src/cloud-hypervisor/pci/src/msix.rs:208,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 91
    argCount: 1
    argNames:
    - reg
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 212
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 212
    functionName: MsixConfig::set_msg_ctl
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - iter
    - MsixConfig::inject_msix_and_clear_pba
    - masked
    - super::Result::masked
    - update
    - MsixConfig::get_pba_bit
    - InterruptSourceConfig::MsiIrq
    - enumerate
    - clone
    - disable
    linkageType: ''
    returnType: void
    signature: 'pub fn set_msg_ctl(&mut self, reg: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:220,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/pci/src/msix.rs:222,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:222,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:226,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/pci/src/msix.rs:240,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/msix.rs:245,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/msix.rs:246,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/msix.rs:249,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/msix.rs:250,1
    - Dst: LittleEndian::write_u64
      Src: /src/cloud-hypervisor/pci/src/msix.rs:259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 72
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 265
      start: 214
    functionDepth: 8
    functionLinenumber: 214
    functionLinenumberEnd: 265
    functionName: MsixConfig::read_table
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - String::copy_from_slice
    - LittleEndian::write_u64
    - u64::from
    - len
    - String::len
    - LittleEndian::write_u32
    linkageType: ''
    returnType: void
    signature: 'pub fn read_table(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:273,1
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/msix.rs:279,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:281,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/pci/src/msix.rs:283,1
    - Dst: LittleEndian::read_u64
      Src: /src/cloud-hypervisor/pci/src/msix.rs:297,1
    - Dst: masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:326,1
    - Dst: update
      Src: /src/cloud-hypervisor/pci/src/msix.rs:334,1
    - Dst: InterruptSourceConfig::MsiIrq
      Src: /src/cloud-hypervisor/pci/src/msix.rs:336,1
    - Dst: masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:337,1
    - Dst: MsixConfig::masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:353,1
    - Dst: MsixConfig::enabled
      Src: /src/cloud-hypervisor/pci/src/msix.rs:354,1
    - Dst: masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:355,1
    - Dst: masked
      Src: /src/cloud-hypervisor/pci/src/msix.rs:356,1
    - Dst: MsixConfig::get_pba_bit
      Src: /src/cloud-hypervisor/pci/src/msix.rs:357,1
    - Dst: MsixConfig::inject_msix_and_clear_pba
      Src: /src/cloud-hypervisor/pci/src/msix.rs:359,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 136
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 361
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 361
    functionName: MsixConfig::write_table
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - MsixConfig::enabled
    - MsixConfig::inject_msix_and_clear_pba
    - masked
    - InterruptSourceConfig::MsiIrq
    - update
    - LittleEndian::read_u64
    - MsixConfig::get_pba_bit
    - len
    - MsixConfig::masked
    - String::len
    - LittleEndian::read_u32
    - clone
    linkageType: ''
    returnType: void
    signature: 'pub fn write_table(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:369,1
    - Dst: String::copy_from_slice
      Src: /src/cloud-hypervisor/pci/src/msix.rs:371,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:371,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/msix.rs:375,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/pci/src/msix.rs:387,1
    - Dst: LittleEndian::write_u64
      Src: /src/cloud-hypervisor/pci/src/msix.rs:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 405
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 405
    functionName: MsixConfig::read_pba
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - String::copy_from_slice
    - LittleEndian::write_u64
    - len
    - String::len
    - LittleEndian::write_u32
    linkageType: ''
    returnType: void
    signature: 'pub fn read_pba(&mut self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _offset
    - _data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: MsixConfig::write_pba
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn write_pba(&mut self, _offset: u64, _data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - vector
    - reset
    argTypes:
    - u16
    - bool
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: MsixConfig::set_pba_bit
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_pba_bit(&mut self, vector: u16, reset: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - vector
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 433
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 433
    functionName: MsixConfig::get_pba_bit
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn get_pba_bit(&self, vector: u16) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/pci/src/msix.rs:437,1
    - Dst: MsixConfig::set_pba_bit
      Src: /src/cloud-hypervisor/pci/src/msix.rs:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - vector
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 447
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 447
    functionName: MsixConfig::inject_msix_and_clear_pba
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 2
    functionsReached:
    - trigger
    - MsixConfig::set_pba_bit
    linkageType: ''
    returnType: void
    signature: 'fn inject_msix_and_clear_pba(&mut self, vector: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/pci/src/msix.rs:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: MsixConfig::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - String::from
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/pci/src/msix.rs:458,1
    - Dst: MsixConfig::state
      Src: /src/cloud-hypervisor/pci/src/msix.rs:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 8
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: MsixConfig::snapshot
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - MsixConfig::state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MsixCap::as_slice
      Src: /src/cloud-hypervisor/pci/src/msix.rs:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 488
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 488
    functionName: MsixCap::bytes
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - MsixCap::as_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 492
    functionName: MsixCap::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PciCapabilityId
    signature: fn id(&self) -> PciCapabilityId
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/msix.rs:510,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/msix.rs:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - table_pci_bar
    - table_size
    - table_off
    - pba_pci_bar
    - pba_off
    argTypes:
    - u8
    - u16
    - u32
    - u8
    - u32
    constantsTouched: []
    func_position:
      end: 513
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 513
    functionName: MsixCap::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 1
    functionsReached:
    - u32::from
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(table_pci_bar: u8,table_size: u16,table_off: u32,pba_pci_bar:
      u8,pba_off: u32,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: MsixCap::set_msg_ctl
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_msg_ctl(&mut self, data: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: MsixCap::masked
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn masked(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: MsixCap::enabled
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 530
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 530
    functionName: MsixCap::table_offset
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn table_offset(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: MsixCap::pba_offset
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn pba_offset(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 539
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 539
    functionName: MsixCap::table_set_offset
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn table_set_offset(&mut self, addr: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 544
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 544
    functionName: MsixCap::pba_set_offset
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn pba_set_offset(&mut self, addr: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: MsixCap::table_bir
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn table_bir(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 552
    functionName: MsixCap::pba_bir
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn pba_bir(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: MsixCap::table_size
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn table_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MsixCap::table_size
      Src: /src/cloud-hypervisor/pci/src/msix.rs:560,1
    - Dst: MsixCap::table_offset
      Src: /src/cloud-hypervisor/pci/src/msix.rs:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: MsixCap::table_range
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - MsixCap::table_size
    - MsixCap::table_offset
    linkageType: ''
    returnType: (u64, u64)
    signature: pub fn table_range(&self) -> (u64, u64)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MsixCap::table_size
      Src: /src/cloud-hypervisor/pci/src/msix.rs:566,1
    - Dst: MsixCap::pba_offset
      Src: /src/cloud-hypervisor/pci/src/msix.rs:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 568
    functionName: MsixCap::pba_range
    functionSourceFile: /src/cloud-hypervisor/pci/src/msix.rs
    functionUses: 0
    functionsReached:
    - MsixCap::table_size
    - MsixCap::pba_offset
    linkageType: ''
    returnType: (u64, u64)
    signature: pub fn pba_range(&self) -> (u64, u64)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/device.rs:56,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/device.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _allocator
    - _mmio32_allocator
    - _mmio64_allocator
    - _resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: PciDevice::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/device.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn allocate_bars(&mut self,_allocator: &Arc<Mutex<SystemAllocator>>,_mmio32_allocator:
      &mut AddressAllocator,_mmio64_allocator: &mut AddressAllocator,_resources: Option<Vec<Resource>>,)
      -> Result<Vec<PciBarConfiguration>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/device.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _allocator
    - _mmio32_allocator
    - _mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: PciDevice::free_bars
    functionSourceFile: /src/cloud-hypervisor/pci/src/device.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn free_bars(&mut self,_allocator: &mut SystemAllocator,_mmio32_allocator:
      &mut AddressAllocator,_mmio64_allocator: &mut AddressAllocator,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _base
    - _offset
    - _data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: PciDevice::read_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/device.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn read_bar(&mut self, _base: u64, _offset: u64, _data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _base
    - _offset
    - _data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: PciDevice::write_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/device.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn write_bar(&mut self, _base: u64, _offset: u64, _data: &[u8]) ->
      Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/device.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _old_base
    - _new_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: PciDevice::move_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/device.rs
    functionUses: 1
    functionsReached:
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn move_bar(&mut self, _old_base: u64, _new_base: u64) -> result::Result<(),
      io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: PciInterruptPin::to_mask
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn to_mask(self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut fmt::Formatter::write_str'
      Src: /src/cloud-hypervisor/pci/src/lib.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - formatter
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: PciBdfVisitor::expecting
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut fmt::Formatter::write_str'
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/lib.rs:75,1
    - Dst: std::result::Result::into
      Src: /src/cloud-hypervisor/pci/src/lib.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: PciBdfVisitor::visit_str
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>whereE: serde::de::Error,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D::deserialize_str
      Src: /src/cloud-hypervisor/pci/src/lib.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deserializer
    argTypes:
    - D
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: PciBdf::deserialize
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached:
    - D::deserialize_str
    linkageType: ''
    returnType: Result
    signature: 'fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>whereD:
      serde::Deserializer<''de>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S::collect_str
      Src: /src/cloud-hypervisor/pci/src/lib.rs:93,1
    - Dst: PciBdf::to_string
      Src: /src/cloud-hypervisor/pci/src/lib.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - serializer
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: PciBdf::serialize
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached:
    - S::collect_str
    - PciBdf::to_string
    linkageType: ''
    returnType: Result
    signature: 'fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>whereS:
      serde::Serializer,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: PciBdf::segment
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn segment(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: PciBdf::bus
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn bus(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: PciBdf::device
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn device(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: PciBdf::function
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn function(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/cloud-hypervisor/pci/src/lib.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 4
    argNames:
    - segment
    - bus
    - device
    - function
    argTypes:
    - u16
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: PciBdf::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 4
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(segment: u16, bus: u8, device: u8, function: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_str
      Src: /src/cloud-hypervisor/pci/src/lib.rs:198,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/lib.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bdf
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: PciBdf::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::unwrap
    - Self::from_str
    linkageType: ''
    returnType: Self
    signature: 'fn from(bdf: &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bdf
    argTypes:
    - '&PciBdf'
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: u32::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(bdf: &PciBdf) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bdf
    argTypes:
    - '&PciBdf'
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: u16::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(bdf: &PciBdf) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: PciBdf::fmt
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FdtWriterResult::split
      Src: /src/cloud-hypervisor/pci/src/lib.rs:184,1
    - Dst: collect
      Src: /src/cloud-hypervisor/pci/src/lib.rs:184,1
    - Dst: u8::from_str_radix
      Src: /src/cloud-hypervisor/pci/src/lib.rs:186,1
    - Dst: split
      Src: /src/cloud-hypervisor/pci/src/lib.rs:187,1
    - Dst: collect
      Src: /src/cloud-hypervisor/pci/src/lib.rs:187,1
    - Dst: u16::from_str_radix
      Src: /src/cloud-hypervisor/pci/src/lib.rs:189,1
    - Dst: u8::from_str_radix
      Src: /src/cloud-hypervisor/pci/src/lib.rs:190,1
    - Dst: u8::from_str_radix
      Src: /src/cloud-hypervisor/pci/src/lib.rs:191,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/lib.rs:192,1
    - Dst: PciBdf::new
      Src: /src/cloud-hypervisor/pci/src/lib.rs:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: PciBdf::from_str
    functionSourceFile: /src/cloud-hypervisor/pci/src/lib.rs
    functionUses: 0
    functionsReached:
    - u16::from_str_radix
    - split
    - FdtWriterResult::split
    - PciBdf::new
    - Ok
    - u8::from_str_radix
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_str(s: &str) -> Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - msg_ctl
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: msi_num_enabled_vectors
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'pub fn msi_num_enabled_vectors(msg_ctl: u16) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: MsiCap::addr_64_bits
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn addr_64_bits(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: MsiCap::per_vector_mask
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn per_vector_mask(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: MsiCap::enabled
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: msi_num_enabled_vectors
      Src: /src/cloud-hypervisor/pci/src/msi.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: MsiCap::num_enabled_vectors
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - msi_num_enabled_vectors
    linkageType: ''
    returnType: usize
    signature: fn num_enabled_vectors(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MsiCap::per_vector_mask
      Src: /src/cloud-hypervisor/pci/src/msi.rs:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - vector
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: MsiCap::vector_masked
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - MsiCap::per_vector_mask
    linkageType: ''
    returnType: bool
    signature: 'fn vector_masked(&self, vector: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MsiCap::addr_64_bits
      Src: /src/cloud-hypervisor/pci/src/msi.rs:107,1
    - Dst: MsiCap::per_vector_mask
      Src: /src/cloud-hypervisor/pci/src/msi.rs:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: MsiCap::size
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - MsiCap::addr_64_bits
    - MsiCap::per_vector_mask
    linkageType: ''
    returnType: u64
    signature: fn size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MsiCap::addr_64_bits
      Src: /src/cloud-hypervisor/pci/src/msi.rs:124,1
    - Dst: MsiCap::per_vector_mask
      Src: /src/cloud-hypervisor/pci/src/msi.rs:125,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/msi.rs:126,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/msi.rs:130,1
    - Dst: MsiCap::per_vector_mask
      Src: /src/cloud-hypervisor/pci/src/msi.rs:132,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/msi.rs:133,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/msi.rs:141,1
    - Dst: LittleEndian::read_u16
      Src: /src/cloud-hypervisor/pci/src/msi.rs:143,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/pci/src/msi.rs:155,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/pci/src/msi.rs:164,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/msi.rs:164,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/pci/src/msi.rs:167,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/msi.rs:167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 175
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 175
    functionName: MsiCap::update
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - is_some
    - MsiCap::addr_64_bits
    - LittleEndian::read_u16
    - unwrap
    - String::len
    - LittleEndian::read_u32
    - Some
    - MsiCap::per_vector_mask
    linkageType: ''
    returnType: void
    signature: 'fn update(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/msi.rs:195,1
    - Dst: num_enabled_vectors
      Src: /src/cloud-hypervisor/pci/src/msi.rs:196,1
    - Dst: Arc<dyn InterruptSourceGroup>::update
      Src: /src/cloud-hypervisor/pci/src/msi.rs:204,1
    - Dst: InterruptSourceConfig::MsiIrq
      Src: /src/cloud-hypervisor/pci/src/msi.rs:207,1
    - Dst: vector_masked
      Src: /src/cloud-hypervisor/pci/src/msi.rs:208,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/pci/src/msi.rs:204,1
    - Dst: Arc<dyn InterruptSourceGroup>::set_gsi
      Src: /src/cloud-hypervisor/pci/src/msi.rs:214,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/msi.rs:214,1
    - Dst: Arc<dyn InterruptSourceGroup>::enable
      Src: /src/cloud-hypervisor/pci/src/msi.rs:218,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/msi.rs:218,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/pci/src/msi.rs:227,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/msi.rs:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 3
    argNames:
    - msg_ctl
    - interrupt_source_group
    - state
    argTypes:
    - u16
    - Arc<dyn InterruptSourceGroup>
    - Option<MsiConfigState>
    constantsTouched: []
    func_position:
      end: 235
      start: 189
    functionDepth: 8
    functionLinenumber: 189
    functionLinenumberEnd: 235
    functionName: MsiConfig::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 1
    functionsReached:
    - Arc<dyn InterruptSourceGroup>::set_gsi
    - Arc<dyn InterruptSourceGroup>::update
    - map_err
    - Default::default
    - Arc<dyn InterruptSourceGroup>::enable
    - num_enabled_vectors
    - enabled
    - Result::map_err
    - vector_masked
    - InterruptSourceConfig::MsiIrq
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(msg_ctl: u16,interrupt_source_group: Arc<dyn InterruptSourceGroup>,state:
      Option<MsiConfigState>,) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: MsiConfig::state
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: MsiConfigState
    signature: fn state(&self) -> MsiConfigState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/msi.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: MsiConfig::enabled
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - enabled
    linkageType: ''
    returnType: bool
    signature: pub fn enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/cloud-hypervisor/pci/src/msi.rs:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: MsiConfig::size
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: u64
    signature: pub fn size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: num_enabled_vectors
      Src: /src/cloud-hypervisor/pci/src/msi.rs:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: MsiConfig::num_enabled_vectors
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 1
    functionsReached:
    - num_enabled_vectors
    linkageType: ''
    returnType: usize
    signature: pub fn num_enabled_vectors(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/msi.rs:254,1
    - Dst: update
      Src: /src/cloud-hypervisor/pci/src/msi.rs:256,1
    - Dst: enabled
      Src: /src/cloud-hypervisor/pci/src/msi.rs:258,1
    - Dst: MsiConfig::num_enabled_vectors
      Src: /src/cloud-hypervisor/pci/src/msi.rs:259,1
    - Dst: update
      Src: /src/cloud-hypervisor/pci/src/msi.rs:267,1
    - Dst: InterruptSourceConfig::MsiIrq
      Src: /src/cloud-hypervisor/pci/src/msi.rs:269,1
    - Dst: vector_masked
      Src: /src/cloud-hypervisor/pci/src/msi.rs:270,1
    - Dst: enable
      Src: /src/cloud-hypervisor/pci/src/msi.rs:277,1
    - Dst: disable
      Src: /src/cloud-hypervisor/pci/src/msi.rs:280,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 283
      start: 253
    functionDepth: 8
    functionLinenumber: 253
    functionLinenumberEnd: 283
    functionName: MsiConfig::update
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - update
    - enable
    - MsiConfig::num_enabled_vectors
    - enabled
    - vector_masked
    - InterruptSourceConfig::MsiIrq
    - disable
    linkageType: ''
    returnType: void
    signature: 'pub fn update(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/pci/src/msi.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: MsiConfig::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - String::from
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/pci/src/msi.rs:294,1
    - Dst: MsiConfig::state
      Src: /src/cloud-hypervisor/pci/src/msi.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 8
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: MsiConfig::snapshot
    functionSourceFile: /src/cloud-hypervisor/pci/src/msi.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - MsiConfig::state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/pci/src/bus.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - Option<PciConfiguration>
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 8
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: PciRoot::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached:
    - PciConfiguration::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(config: Option<PciConfiguration>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/pci/src/bus.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: PciRoot::write_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - write_config_register
    linkageType: ''
    returnType: (Vec
    signature: 'fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_reg
      Src: /src/cloud-hypervisor/pci/src/bus.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: PciRoot::read_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - read_reg
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: PciRoot::as_any_mut
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: PciRoot::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn id(&self) -> Option<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/pci/src/bus.rs:123,1
    - Dst: insert
      Src: /src/cloud-hypervisor/pci/src/bus.rs:126,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/pci/src/bus.rs:126,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/pci/src/bus.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - pci_root
    - device_reloc
    argTypes:
    - PciRoot
    - Arc<dyn DeviceRelocation>
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 8
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: PciBus::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached:
    - Mutex::new
    - HashMap::new
    - Arc::new
    - insert
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(pci_root: PciRoot, device_reloc: Arc<dyn DeviceRelocation>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: result::Result::region_type
      Src: /src/cloud-hypervisor/pci/src/bus.rs:145,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/pci/src/bus.rs:147,1
    - Dst: Arc<dyn BusDeviceSync>::clone
      Src: /src/cloud-hypervisor/pci/src/bus.rs:148,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/pci/src/bus.rs:148,1
    - Dst: result::Result::size
      Src: /src/cloud-hypervisor/pci/src/bus.rs:148,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/bus.rs:147,1
    - Dst: '&Arc::insert'
      Src: /src/cloud-hypervisor/pci/src/bus.rs:152,1
    - Dst: Arc<dyn BusDeviceSync>::clone
      Src: /src/cloud-hypervisor/pci/src/bus.rs:153,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/pci/src/bus.rs:153,1
    - Dst: result::Result::size
      Src: /src/cloud-hypervisor/pci/src/bus.rs:153,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/pci/src/bus.rs:152,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/bus.rs:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 4
    argNames:
    - dev
    - io_bus
    - mmio_bus
    - bars
    argTypes:
    - Arc<dyn BusDeviceSync>
    - '&Bus'
    - '&Bus'
    - Vec<PciBarConfiguration>
    constantsTouched: []
    func_position:
      end: 159
      start: 137
    functionDepth: 9
    functionLinenumber: 137
    functionLinenumberEnd: 159
    functionName: PciBus::register_mapping
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - result::Result::size
    - result::Result::region_type
    - Arc<dyn BusDeviceSync>::clone
    - '&Arc::insert'
    - result::Result::addr
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn register_mapping(&self,dev: Arc<dyn BusDeviceSync>,io_bus:
      &Bus,mmio_bus: &Bus,bars: Vec<PciBarConfiguration>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/pci/src/bus.rs:162,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/bus.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device_id
    - device
    argTypes:
    - u32
    - Arc<Mutex<dyn PciDevice>>
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 9
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: PciBus::add_device
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - insert
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_device(&mut self, device_id: u32, device: Arc<Mutex<dyn
      PciDevice>>) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: retain
      Src: /src/cloud-hypervisor/pci/src/bus.rs:167,1
    - Dst: Arc::ptr_eq
      Src: /src/cloud-hypervisor/pci/src/bus.rs:167,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/bus.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - device
    argTypes:
    - '&Arc<Mutex<dyn PciDevice>>'
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: PciBus::remove_by_device
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - retain
    - Arc::ptr_eq
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn remove_by_device(&mut self, device: &Arc<Mutex<dyn PciDevice>>)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/pci/src/bus.rs:172,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/pci/src/bus.rs:172,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/bus.rs:175,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/bus.rs:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 180
    functionName: PciBus::next_device_id
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - Ok
    - Err
    - iter_mut
    linkageType: ''
    returnType: Result
    signature: pub fn next_device_id(&mut self) -> Result<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/bus.rs:185,1
    - Dst: PciRootError::AlreadyInUsePciDeviceSlot
      Src: /src/cloud-hypervisor/pci/src/bus.rs:185,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/bus.rs:188,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/bus.rs:191,1
    - Dst: PciRootError::InvalidPciDeviceSlot
      Src: /src/cloud-hypervisor/pci/src/bus.rs:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: PciBus::get_device_id
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - PciRootError::InvalidPciDeviceSlot
    - PciRootError::AlreadyInUsePciDeviceSlot
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_device_id(&mut self, id: usize) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/bus.rs:198,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/bus.rs:200,1
    - Dst: PciRootError::InvalidPciDeviceSlot
      Src: /src/cloud-hypervisor/pci/src/bus.rs:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: PciBus::put_device_id
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - PciRootError::InvalidPciDeviceSlot
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn put_device_id(&mut self, id: usize) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pci_bus
    argTypes:
    - Arc<Mutex<PciBus>>
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: PciConfigIo::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(pci_bus: Arc<Mutex<PciBus>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_io_config_address
      Src: /src/cloud-hypervisor/pci/src/bus.rs:226,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/bus.rs:238,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:238,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:238,1
    - Dst: get
      Src: /src/cloud-hypervisor/pci/src/bus.rs:238,1
    - Dst: map_or
      Src: /src/cloud-hypervisor/pci/src/bus.rs:238,1
    - Dst: bool::lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:245,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:245,1
    - Dst: read_config_register
      Src: /src/cloud-hypervisor/pci/src/bus.rs:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 219
    functionDepth: 13
    functionLinenumber: 219
    functionLinenumberEnd: 247
    functionName: PciConfigIo::config_space_read
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached:
    - map_or
    - bool::lock
    - as_ref
    - read_config_register
    - lock
    - parse_io_config_address
    - unwrap
    - get
    linkageType: ''
    returnType: u32
    signature: pub fn config_space_read(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/bus.rs:250,1
    - Dst: parse_io_config_address
      Src: /src/cloud-hypervisor/pci/src/bus.rs:260,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/pci/src/bus.rs:267,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:267,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:267,1
    - Dst: get
      Src: /src/cloud-hypervisor/pci/src/bus.rs:268,1
    - Dst: bool::lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:269,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:269,1
    - Dst: String::write_config_register
      Src: /src/cloud-hypervisor/pci/src/bus.rs:272,1
    - Dst: move_bar
      Src: /src/cloud-hypervisor/pci/src/bus.rs:276,1
    - Dst: String::deref_mut
      Src: /src/cloud-hypervisor/pci/src/bus.rs:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 294
      start: 249
    functionDepth: 13
    functionLinenumber: 249
    functionLinenumberEnd: 294
    functionName: PciConfigIo::config_space_write
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached:
    - String::write_config_register
    - bool::lock
    - as_ref
    - String::deref_mut
    - lock
    - parse_io_config_address
    - unwrap
    - get
    - String::len
    - move_bar
    linkageType: ''
    returnType: Option
    signature: 'pub fn config_space_write(&mut self, offset: u64, data: &[u8]) ->
      Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/bus.rs:297,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/bus.rs:300,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/bus.rs:303,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/bus.rs:307,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/bus.rs:307,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/pci/src/bus.rs:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: PciConfigIo::set_config_address
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached:
    - String::len
    - LittleEndian::read_u32
    - u32::from
    linkageType: ''
    returnType: void
    signature: 'fn set_config_address(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciConfigIo::config_space_read
      Src: /src/cloud-hypervisor/pci/src/bus.rs:321,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/bus.rs:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 14
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: PciConfigIo::read
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - String::len
    - PciConfigIo::config_space_read
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciConfigIo::set_config_address
      Src: /src/cloud-hypervisor/pci/src/bus.rs:343,1
    - Dst: PciConfigIo::config_space_write
      Src: /src/cloud-hypervisor/pci/src/bus.rs:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 14
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: PciConfigIo::write
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - PciConfigIo::set_config_address
    - PciConfigIo::config_space_write
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pci_bus
    argTypes:
    - Arc<Mutex<PciBus>>
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: PciConfigMmio::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(pci_bus: Arc<Mutex<PciBus>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_mmio_config_address
      Src: /src/cloud-hypervisor/pci/src/bus.rs:363,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:370,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:370,1
    - Dst: get
      Src: /src/cloud-hypervisor/pci/src/bus.rs:370,1
    - Dst: map_or
      Src: /src/cloud-hypervisor/pci/src/bus.rs:370,1
    - Dst: bool::lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:376,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:376,1
    - Dst: read_config_register
      Src: /src/cloud-hypervisor/pci/src/bus.rs:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - config_address
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 13
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: PciConfigMmio::config_space_read
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached:
    - map_or
    - bool::lock
    - read_config_register
    - parse_mmio_config_address
    - lock
    - unwrap
    - get
    linkageType: ''
    returnType: u32
    signature: 'fn config_space_read(&self, config_address: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/bus.rs:381,1
    - Dst: parse_mmio_config_address
      Src: /src/cloud-hypervisor/pci/src/bus.rs:385,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:392,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:392,1
    - Dst: get
      Src: /src/cloud-hypervisor/pci/src/bus.rs:393,1
    - Dst: bool::lock
      Src: /src/cloud-hypervisor/pci/src/bus.rs:394,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/bus.rs:394,1
    - Dst: String::write_config_register
      Src: /src/cloud-hypervisor/pci/src/bus.rs:397,1
    - Dst: move_bar
      Src: /src/cloud-hypervisor/pci/src/bus.rs:401,1
    - Dst: String::deref_mut
      Src: /src/cloud-hypervisor/pci/src/bus.rs:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 3
    argNames:
    - config_address
    - offset
    - data
    argTypes:
    - u32
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 415
      start: 380
    functionDepth: 13
    functionLinenumber: 380
    functionLinenumberEnd: 415
    functionName: PciConfigMmio::config_space_write
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 1
    functionsReached:
    - String::write_config_register
    - bool::lock
    - String::deref_mut
    - parse_mmio_config_address
    - lock
    - unwrap
    - get
    - String::len
    - move_bar
    linkageType: ''
    returnType: void
    signature: 'fn config_space_write(&mut self, config_address: u32, offset: u64,
      data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/bus.rs:422,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/bus.rs:423,1
    - Dst: PciConfigMmio::config_space_read
      Src: /src/cloud-hypervisor/pci/src/bus.rs:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 434
      start: 419
    functionDepth: 13
    functionLinenumber: 419
    functionLinenumberEnd: 434
    functionName: PciConfigMmio::read
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - String::len
    - PciConfigMmio::config_space_read
    - u64::from
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/bus.rs:437,1
    - Dst: PciConfigMmio::config_space_write
      Src: /src/cloud-hypervisor/pci/src/bus.rs:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 13
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: PciConfigMmio::write
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - PciConfigMmio::config_space_write
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - value
    - offset
    - mask
    argTypes:
    - u32
    - usize
    - u32
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: shift_and_mask
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'fn shift_and_mask(value: u32, offset: usize, mask: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:464,1
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:465,1
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:466,1
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - config_address
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 469
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 469
    functionName: parse_mmio_config_address
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 2
    functionsReached:
    - shift_and_mask
    linkageType: ''
    returnType: (usize, usize, usize, usize)
    signature: 'fn parse_mmio_config_address(config_address: u32) -> (usize, usize,
      usize, usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:483,1
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:484,1
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:485,1
    - Dst: shift_and_mask
      Src: /src/cloud-hypervisor/pci/src/bus.rs:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - config_address
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 488
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 488
    functionName: parse_io_config_address
    functionSourceFile: /src/cloud-hypervisor/pci/src/bus.rs
    functionUses: 2
    functionsReached:
    - shift_and_mask
    linkageType: ''
    returnType: (usize, usize, usize, usize)
    signature: 'fn parse_io_config_address(config_address: u32) -> (usize, usize,
      usize, usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: PciClassCode::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn get_register_value(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: PciMultimediaSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: PciBridgeSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: PciSerialBusSubClass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: PciMassStorageSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: PciNetworkControllerSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 254
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 254
    functionName: PciCapabilityId::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(c: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 366
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 366
    functionName: PciExpressCapabilityId::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(c: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bar_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: encode_32_bits_bar_size
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 2
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn encode_32_bits_bar_size(bar_size: u32) -> Option<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bar_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 387
    functionName: decode_32_bits_bar_size
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn decode_32_bits_bar_size(bar_size: u32) -> Option<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bar_size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: encode_64_bits_bar_size
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn encode_64_bits_bar_size(bar_size: u64) -> Option<(u32, u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - bar_size_hi
    - bar_size_lo
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: decode_64_bits_bar_size
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn decode_64_bits_bar_size(bar_size_hi: u32, bar_size_lo: u32) ->
      Option<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type_
    argTypes:
    - PciBarType
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: PciBarRegionType::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(type_: PciBarType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - PciBarRegionType
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: PciBarType::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(val: PciBarRegionType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - PciBarPrefetchable
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 485
    functionName: bool::from
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(val: PciBarPrefetchable) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_into
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:562,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:562,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:563,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:563,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:564,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:564,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:574,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:574,1
    - Dst: Self::get_register_value
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:578,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:582,1
    - Dst: get_register_value
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:582,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:583,1
    - Dst: '&dyn PciSubclass::get_register_value'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:583,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:584,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:585,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:598,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:598,1
    - Dst: PciBar::default
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:603,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 91
    argCount: 11
    argNames:
    - vendor_id
    - device_id
    - revision_id
    - class_code
    - subclass
    - programming_interface
    - header_type
    - subsystem_vendor_id
    - subsystem_id
    - msix_config
    - state
    argTypes:
    - u16
    - u16
    - u8
    - PciClassCode
    - '&dyn PciSubclass'
    - Option<&dyn PciProgrammingInterface>
    - PciHeaderType
    - u16
    - u16
    - Option<Arc<Mutex<MsixConfig>>>
    - Option<PciConfigurationState>
    constantsTouched: []
    func_position:
      end: 624
      start: 538
    functionDepth: 7
    functionLinenumber: 538
    functionLinenumberEnd: 624
    functionName: PciConfiguration::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 8
    functionsReached:
    - Self::get_register_value
    - get_register_value
    - try_into
    - Vec::new
    - u32::from
    - unwrap
    - '&dyn PciSubclass::get_register_value'
    - PciBar::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(vendor_id: u16,device_id: u16,revision_id: u8,class_code:
      PciClassCode,subclass: &dyn PciSubclass,programming_interface: Option<&dyn PciProgrammingInterface>,header_type:
      PciHeaderType,subsystem_vendor_id: u16,subsystem_id: u16,msix_config: Option<Arc<Mutex<MsixConfig>>>,state:
      Option<PciConfigurationState>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_vec
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:628,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:629,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 637
    functionName: PciConfiguration::state
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - to_vec
    linkageType: ''
    returnType: PciConfigurationState
    signature: fn state(&self) -> PciConfigurationState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:641,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 642
      start: 640
    functionDepth: 8
    functionLinenumber: 640
    functionLinenumberEnd: 642
    functionName: PciConfiguration::read_reg
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - unwrap_or
    - get
    linkageType: ''
    returnType: u32
    signature: 'pub fn read_reg(&self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:648,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:663,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 2
    argNames:
    - reg_idx
    - value
    argTypes:
    - usize
    - u32
    constantsTouched: []
    func_position:
      end: 668
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 668
    functionName: PciConfiguration::write_reg
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - get_mut
    - contains
    linkageType: ''
    returnType: void
    signature: 'pub fn write_reg(&mut self, reg_idx: usize, value: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:682,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - usize
    - u16
    constantsTouched: []
    func_position:
      end: 690
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 690
    functionName: PciConfiguration::write_word
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - get_mut
    - u32::from
    linkageType: ''
    returnType: void
    signature: 'pub fn write_word(&mut self, offset: usize, value: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciConfiguration::write_byte_internal
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - usize
    - u8
    constantsTouched: []
    func_position:
      end: 695
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 695
    functionName: PciConfiguration::write_byte
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - PciConfiguration::write_byte_internal
    linkageType: ''
    returnType: void
    signature: 'pub fn write_byte(&mut self, offset: usize, value: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:702,1
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - offset
    - value
    - apply_writable_mask
    argTypes:
    - usize
    - u8
    - bool
    constantsTouched: []
    func_position:
      end: 714
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 714
    functionName: PciConfiguration::write_byte_internal
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 2
    functionsReached:
    - get_mut
    - u32::from
    linkageType: ''
    returnType: void
    signature: 'fn write_byte_internal(&mut self, offset: usize, value: u8, apply_writable_mask:
      bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:724,1
    - Dst: Error::BarInUse
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:724,1
    - Dst: is_power_of_two
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:727,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:728,1
    - Dst: Error::BarSizeInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:728,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:732,1
    - Dst: Error::BarInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:732,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:735,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:735,1
    - Dst: Error::BarAddressInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:738,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:741,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:742,1
    - Dst: Error::BarAddressInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:742,1
    - Dst: encode_32_bits_bar_size
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:748,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:748,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:752,1
    - Dst: Error::BarInvalid64
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:752,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:756,1
    - Dst: Error::BarInUse64
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:756,1
    - Dst: encode_64_bits_bar_size
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:762,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:762,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:785,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:787,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 173
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&PciBarConfiguration'
    constantsTouched: []
    func_position:
      end: 788
      start: 719
    functionDepth: 8
    functionLinenumber: 719
    functionLinenumberEnd: 788
    functionName: PciConfiguration::add_pci_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - Error::BarInvalid
    - ok_or
    - Error::BarSizeInvalid
    - Some
    - encode_64_bits_bar_size
    - Err
    - Error::BarAddressInvalid
    - u64::from
    - encode_32_bits_bar_size
    - is_power_of_two
    - Error::BarInUse
    - Option::ok_or
    - Error::BarInUse64
    - Error::BarInvalid64
    - checked_add
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_pci_bar(&mut self, config: &PciBarConfiguration) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:796,1
    - Dst: Error::RomBarInUse
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:796,1
    - Dst: is_power_of_two
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:799,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:800,1
    - Dst: Error::RomBarSizeInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:800,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:804,1
    - Dst: Error::RomBarInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:804,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:807,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:807,1
    - Dst: Error::RomBarAddressInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:810,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:812,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:813,1
    - Dst: Error::RomBarAddressInvalid
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:813,1
    - Dst: encode_32_bits_bar_size
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:820,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:820,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 78
    argCount: 2
    argNames:
    - config
    - active
    argTypes:
    - '&PciBarConfiguration'
    - u32
    constantsTouched: []
    func_position:
      end: 824
      start: 791
    functionDepth: 8
    functionLinenumber: 791
    functionLinenumberEnd: 824
    functionName: PciConfiguration::add_pci_rom_bar
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - Error::RomBarSizeInvalid
    - Error::RomBarInvalid
    - Err
    - encode_32_bits_bar_size
    - u64::from
    - checked_add
    - is_power_of_two
    - ok_or
    - Option::ok_or
    - Error::RomBarAddressInvalid
    - Error::RomBarInUse
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_pci_rom_bar(&mut self, config: &PciBarConfiguration, active:
      u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:830,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - bar_num
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 839
      start: 827
    functionDepth: 8
    functionLinenumber: 827
    functionLinenumberEnd: 839
    functionName: PciConfiguration::get_bar_addr
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - u64::from
    linkageType: ''
    returnType: u64
    signature: 'pub fn get_bar_addr(&self, bar_num: usize) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - line
    - pin
    argTypes:
    - u8
    - PciInterruptPin
    constantsTouched: []
    func_position:
      end: 849
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 849
    functionName: PciConfiguration::set_irq
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - u32::from
    linkageType: ''
    returnType: void
    signature: 'pub fn set_irq(&mut self, line: u8, pin: PciInterruptPin)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&dyn PciCapability::bytes'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:856,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:856,1
    - Dst: '&dyn PciCapability::bytes'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:858,1
    - Dst: '&[u8]::is_empty'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:858,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:859,1
    - Dst: Self::next_dword
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:862,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:865,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:865,1
    - Dst: Error::CapabilitySpaceFull
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:867,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:869,1
    - Dst: Error::CapabilitySpaceFull
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:869,1
    - Dst: PciConfiguration::write_byte_internal
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:872,1
    - Dst: PciConfiguration::write_byte_internal
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:873,1
    - Dst: '&dyn PciCapability::id'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:873,1
    - Dst: PciConfiguration::write_byte_internal
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:874,1
    - Dst: '&dyn PciCapability::bytes'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:875,1
    - Dst: '&[u8]::iter'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:875,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:875,1
    - Dst: PciConfiguration::write_byte_internal
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:876,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:878,1
    - Dst: '&dyn PciCapability::id'
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:880,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:885,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:886,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:891,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 90
    argCount: 1
    argNames:
    - cap_data
    argTypes:
    - '&dyn PciCapability'
    constantsTouched: []
    func_position:
      end: 892
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 892
    functionName: PciConfiguration::add_capability
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::iter'
    - Error::CapabilitySpaceFull
    - '&dyn PciCapability::id'
    - '&[u8]::len'
    - '&dyn PciCapability::bytes'
    - Self::next_dword
    - Err
    - '&[u8]::is_empty'
    - impl Iterator::enumerate
    - PciConfiguration::write_byte_internal
    - unwrap
    - ok_or
    - Some
    - checked_add
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_capability(&mut self, cap_data: &dyn PciCapability) ->
      Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - len
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 898
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 898
    functionName: PciConfiguration::next_dword
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'fn next_dword(offset: usize, len: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:906,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:907,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:914,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:915,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:915,1
    - Dst: set_msg_ctl
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:915,1
    - Dst: LittleEndian::read_u16
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:918,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:919,1
    - Dst: lock
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:920,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:920,1
    - Dst: set_msg_ctl
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:920,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:923,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:927,1
    - Dst: PciConfiguration::write_byte
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:928,1
    - Dst: PciConfiguration::write_word
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:929,1
    - Dst: u16::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:931,1
    - Dst: u16::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:931,1
    - Dst: PciConfiguration::write_reg
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:933,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:933,1
    - Dst: PciConfiguration::detect_bar_reprogramming
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:937,1
    - Dst: push
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:938,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:941,1
    - Dst: PciConfiguration::read_config_register
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:943,1
    - Dst: drain
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:950,1
    - Dst: collect
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:950,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:958,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 108
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 959
      start: 900
    functionDepth: 13
    functionLinenumber: 900
    functionLinenumberEnd: 959
    functionName: PciConfiguration::write_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - PciConfiguration::write_word
    - Vec::new
    - PciConfiguration::read_config_register
    - PciConfiguration::write_reg
    - push
    - LittleEndian::read_u16
    - drain
    - lock
    - set_msg_ctl
    - unwrap
    - PciConfiguration::write_byte
    - PciConfiguration::detect_bar_reprogramming
    - String::len
    - LittleEndian::read_u32
    - u16::from
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'pub fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> Vec<BarReprogrammingParams>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciConfiguration::read_reg
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 963
      start: 961
    functionDepth: 9
    functionLinenumber: 961
    functionLinenumberEnd: 963
    functionName: PciConfiguration::read_config_register
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - PciConfiguration::read_reg
    linkageType: ''
    returnType: u32
    signature: 'pub fn read_config_register(&self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:970,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:974,1
    - Dst: contains
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:977,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1004,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1005,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1006,1
    - Dst: decode_32_bits_bar_size
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1007,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1007,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1007,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1015,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1030,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1031,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1032,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1033,1
    - Dst: decode_64_bits_bar_size
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1035,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1035,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1035,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1043,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1060,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1061,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1062,1
    - Dst: decode_32_bits_bar_size
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1063,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1063,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1063,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1071,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 200
    argCount: 2
    argNames:
    - reg_idx
    - data
    argTypes:
    - usize
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1080
      start: 965
    functionDepth: 8
    functionLinenumber: 965
    functionLinenumberEnd: 1080
    functionName: PciConfiguration::detect_bar_reprogramming
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 1
    functionsReached:
    - decode_64_bits_bar_size
    - u64::from
    - decode_32_bits_bar_size
    - contains
    - unwrap
    - String::len
    - Option::ok_or
    - LittleEndian::read_u32
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn detect_bar_reprogramming(&mut self,reg_idx: usize,data: &[u8],)
      -> Option<BarReprogrammingParams>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1084
    functionName: PciConfiguration::pending_bar_reprogram
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Vec
    signature: pub(crate) fn pending_bar_reprogram(&self) -> Vec<BarReprogrammingParams>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 5
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    functionName: PciConfiguration::clear_pending_bar_reprogram
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: void
    signature: pub(crate) fn clear_pending_bar_reprogram(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1096
    functionName: PciConfiguration::id
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - String::from
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1099,1
    - Dst: PciConfiguration::state
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1098
    functionDepth: 8
    functionLinenumber: 1098
    functionLinenumberEnd: 1100
    functionName: PciConfiguration::snapshot
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - PciConfiguration::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1112
    functionName: PciBarConfiguration::default
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - idx
    - size
    - region_type
    - prefetchable
    argTypes:
    - usize
    - u64
    - PciBarRegionType
    - PciBarPrefetchable
    constantsTouched: []
    func_position:
      end: 1129
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1129
    functionName: PciBarConfiguration::new
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(idx: usize,size: u64,region_type: PciBarRegionType,prefetchable:
      PciBarPrefetchable,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1135
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1135
    functionName: PciBarConfiguration::set_index
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_index(mut self, idx: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1141
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1141
    functionName: PciBarConfiguration::set_address
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_address(mut self, addr: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1147
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1147
    functionName: PciBarConfiguration::set_size
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_size(mut self, size: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - region_type
    argTypes:
    - PciBarRegionType
    constantsTouched: []
    func_position:
      end: 1153
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1153
    functionName: PciBarConfiguration::set_region_type
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_region_type(mut self, region_type: PciBarRegionType) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prefetchable
    argTypes:
    - PciBarPrefetchable
    constantsTouched: []
    func_position:
      end: 1159
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1159
    functionName: PciBarConfiguration::set_prefetchable
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_prefetchable(mut self, prefetchable: PciBarPrefetchable)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1163
    functionName: PciBarConfiguration::idx
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn idx(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1167
    functionName: PciBarConfiguration::addr
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn addr(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1171
    functionName: PciBarConfiguration::size
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    functionName: PciBarConfiguration::region_type
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PciBarRegionType
    signature: pub fn region_type(&self) -> PciBarRegionType
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1179
    functionName: PciBarConfiguration::prefetchable
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PciBarPrefetchable
    signature: pub fn prefetchable(&self) -> PciBarPrefetchable
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1211,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1227,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1227,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1234,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1234,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1238,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1242,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1210
    functionDepth: 8
    functionLinenumber: 1210
    functionLinenumberEnd: 1253
    functionName: unit_tests::add_capability
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - read_reg
    - add_capability
    - PciConfiguration::new
    linkageType: ''
    returnType: void
    signature: fn add_capability()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1268,1
    - Dst: Some
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1274,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/pci/src/configuration.rs:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1267
    functionDepth: 8
    functionLinenumber: 1267
    functionLinenumberEnd: 1289
    functionName: unit_tests::class_code
    functionSourceFile: /src/cloud-hypervisor/pci/src/configuration.rs
    functionUses: 0
    functionsReached:
    - read_reg
    - Some
    - PciConfiguration::new
    linkageType: ''
    returnType: void
    signature: fn class_code()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: MmapRegion::drop
    functionSourceFile: /src/cloud-hypervisor/pci/src/mmap.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: MmapRegion::addr
    functionSourceFile: /src/cloud-hypervisor/pci/src/mmap.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '*mut u8'
    signature: pub fn addr(&self) -> *mut u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: MmapRegion::len
    functionSourceFile: /src/cloud-hypervisor/pci/src/mmap.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:62,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:63,1
    - Dst: Error::new
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:63,1
    - Dst: libc::off_t::try_from
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:65,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:66,1
    - Dst: Error::new
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:66,1
    - Dst: isize::try_from
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:68,1
    - Dst: Result::is_err
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:68,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:69,1
    - Dst: Error::new
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:69,1
    - Dst: libc::size_t::try_from
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:71,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:72,1
    - Dst: Error::new
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:72,1
    - Dst: libc::mmap
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:81,1
    - Dst: core::ptr::null_mut
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:81,1
    - Dst: Result::as_raw_fd
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:81,1
    - Dst: Err
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:83,1
    - Dst: Error::last_os_error
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:83,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/pci/src/mmap.rs:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 5
    argNames:
    - len
    - prot
    - fd
    - offset1
    - offset2
    argTypes:
    - u64
    - c_int
    - BorrowedFd
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 88
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 88
    functionName: MmapRegion::mmap
    functionSourceFile: /src/cloud-hypervisor/pci/src/mmap.rs
    functionUses: 2
    functionsReached:
    - libc::mmap
    - Result::is_err
    - Err
    - u64::checked_add
    - Error::last_os_error
    - libc::off_t::try_from
    - Error::new
    - core::ptr::null_mut
    - Result::as_raw_fd
    - libc::size_t::try_from
    - isize::try_from
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub fn mmap(len: u64,prot: c_int,fd: BorrowedFd,offset1: u64,offset2:
      u64,) -> std::io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:59,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:59,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:59,1
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:60,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:60,1
    - Dst: push
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:60,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:60,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - inner
    argTypes:
    - Arc<RateLimiterGroupInner>
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 13
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: RateLimiterGroupHandle::new
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 2
    functionsReached:
    - Arc::new
    - EventFd::new
    - push
    - lock
    - Result::map_err
    - unwrap
    - Result::clone
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn new(inner: Arc<RateLimiterGroupInner>) -> result::Result<Self,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: consume
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tokens
    - token_type
    argTypes:
    - u64
    - TokenType
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: RateLimiterGroupHandle::consume
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - consume
    linkageType: ''
    returnType: bool
    signature: 'pub fn consume(&self, tokens: u64, token_type: TokenType) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: manual_replenish
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tokens
    - token_type
    argTypes:
    - u64
    - TokenType
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: RateLimiterGroupHandle::manual_replenish
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - manual_replenish
    linkageType: ''
    returnType: void
    signature: 'pub fn manual_replenish(&self, tokens: u64, token_type: TokenType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:86,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:86,1
    - Dst: map
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: RateLimiterGroupHandle::event_handler
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - map
    - map_err
    - read
    linkageType: ''
    returnType: Result
    signature: pub fn event_handler(&self) -> Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_blocked
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: RateLimiterGroupHandle::is_blocked
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - is_blocked
    linkageType: ''
    returnType: bool
    signature: pub fn is_blocked(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroupHandle::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:101,1
    - Dst: clone
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:101,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 14
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: RateLimiterGroupHandle::clone
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - RateLimiterGroupHandle::new
    - result::Result::unwrap
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: RateLimiterGroupHandle::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:113,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:113,1
    - Dst: iter
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:114,1
    - Dst: position
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:114,1
    - Dst: result::Result::as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:116,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:116,1
    - Dst: expect
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:114,1
    - Dst: remove
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 13
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: RateLimiterGroupHandle::drop
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - iter
    - result::Result::as_raw_fd
    - expect
    - remove
    - position
    - lock
    - unwrap
    - as_raw_fd
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:167,1
    - Dst: io::Result::map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:167,1
    - Dst: epoll::create
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:177,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:177,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:178,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:178,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:180,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:183,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:184,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:180,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:188,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:191,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:192,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:188,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:198,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:200,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:201,1
    - Dst: u32::to_string
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:202,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:204,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 7
    argNames:
    - id
    - bytes_total_capacity
    - bytes_one_time_burst
    - bytes_complete_refill_time_ms
    - ops_total_capacity
    - ops_one_time_burst
    - ops_complete_refill_time_ms
    argTypes:
    - '&str'
    - u64
    - u64
    - u64
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 210
      start: 158
    functionDepth: 13
    functionLinenumber: 158
    functionLinenumberEnd: 210
    functionName: RateLimiterGroup::new
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 8
    functionsReached:
    - map_err
    - Vec::new
    - epoll::create
    - io::Result::map_err
    - EventFd::new
    - epoll::ctl
    - File::from_raw_fd
    - Arc::new
    - u32::to_string
    - RateLimiter::new
    - Mutex::new
    - Result::map_err
    - epoll::Event::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn new(id: &str,bytes_total_capacity: u64,bytes_one_time_burst:
      u64,bytes_complete_refill_time_ms: u64,ops_total_capacity: u64,ops_one_time_burst:
      u64,ops_complete_refill_time_ms: u64,) -> result::Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroupHandle::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:214,1
    - Dst: clone
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 14
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: RateLimiterGroup::new_handle
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - RateLimiterGroupHandle::new
    - clone
    linkageType: ''
    returnType: result::Result
    signature: pub fn new_handle(&self) -> result::Result<RateLimiterGroupHandle,
      Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:220,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:221,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:222,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:222,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:222,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:225,1
    - Dst: core::panic::AssertUnwindSafe
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:225,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:229,1
    - Dst: epoll::Events::empty
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:229,1
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:232,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:235,1
    - Dst: Err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:238,1
    - Dst: Error::Epoll
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:238,1
    - Dst: bool::iter
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:242,1
    - Dst: impl Iterator::take
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:242,1
    - Dst: into
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:243,1
    - Dst: event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:250,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:250,1
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:251,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:251,1
    - Dst: iter
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:252,1
    - Dst: result::Result::write
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:253,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:253,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:260,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:271,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:271,1
    - Dst: EventFd::write
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:276,1
    - Dst: IoResult::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:276,1
    - Dst: io::Result::map
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:222,1
    - Dst: insert
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:280,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:222,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:283,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 104
    argCount: 1
    argNames:
    - exit_evt
    argTypes:
    - EventFd
    constantsTouched: []
    func_position:
      end: 284
      start: 219
    functionDepth: 12
    functionLinenumber: 219
    functionLinenumberEnd: 284
    functionName: RateLimiterGroup::start_thread
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - epoll::wait
    - Result::name
    - Self::map_err
    - IoResult::map_err
    - usize::kind
    - Ok
    - core::panic::AssertUnwindSafe
    - insert
    - into
    - Result::spawn
    - epoll::Event::new
    - as_raw_fd
    - epoll::Events::empty
    - bool::iter
    - iter
    - event_handler
    - Error::Epoll
    - Err
    - lock
    - result::Result::write
    - unwrap
    - clone
    - std::panic::catch_unwind
    - EventFd::write
    - IoResult::unwrap
    - thread::Builder::new
    - io::Result::map
    - impl Iterator::take
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn start_thread(&mut self, exit_evt: EventFd) -> result::Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:289,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:289,1
    - Dst: take
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:291,1
    - Dst: fmt::Result::join
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 8
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: RateLimiterGroup::drop
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - take
    - fmt::Result::join
    - unwrap
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:325,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:325,1
    - Dst: Result::new_handle
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:326,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:326,1
    - Dst: u64::bandwidth
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:327,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:327,1
    - Dst: u64::ops
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:333,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 324
    functionDepth: 14
    functionLinenumber: 324
    functionLinenumberEnd: 338
    functionName: unit_tests::test_rate_limiter_group_new
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - u64::ops
    - result::Result::unwrap
    - Result::new_handle
    - u64::bandwidth
    - unwrap
    - RateLimiterGroup::new
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_new()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:343,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:343,1
    - Dst: Result::new_handle
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:344,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:344,1
    - Dst: u64::manual_replenish
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:348,1
    - Dst: u64::bandwidth
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:350,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:350,1
    - Dst: u64::manual_replenish
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:355,1
    - Dst: u64::ops
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:357,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 341
    functionDepth: 14
    functionLinenumber: 341
    functionLinenumberEnd: 360
    functionName: unit_tests::test_rate_limiter_group_manual_replenish
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - u64::ops
    - result::Result::unwrap
    - Result::new_handle
    - u64::bandwidth
    - unwrap
    - RateLimiterGroup::new
    - u64::manual_replenish
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_manual_replenish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:365,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:365,1
    - Dst: Result::start_thread
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:366,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:366,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:366,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:366,1
    - Dst: Result::new_handle
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:368,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:368,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:385,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:385,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:389,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:389,1
    - Dst: u64::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:391,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 363
    functionDepth: 15
    functionLinenumber: 363
    functionLinenumberEnd: 396
    functionName: unit_tests::test_rate_limiter_group_bandwidth
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - EventFd::new
    - Duration::from_millis
    - u64::event_handler
    - result::Result::unwrap
    - Result::new_handle
    - Result::start_thread
    - RateLimiterGroup::new
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_bandwidth()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:401,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:401,1
    - Dst: Result::start_thread
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:402,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:402,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:402,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:402,1
    - Dst: Result::new_handle
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:404,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:404,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:421,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:421,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:425,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:425,1
    - Dst: u64::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:427,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 399
    functionDepth: 15
    functionLinenumber: 399
    functionLinenumberEnd: 432
    functionName: unit_tests::test_rate_limiter_group_ops
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - EventFd::new
    - Duration::from_millis
    - u64::event_handler
    - result::Result::unwrap
    - Result::new_handle
    - Result::start_thread
    - RateLimiterGroup::new
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:437,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:437,1
    - Dst: Result::start_thread
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:438,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:438,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:438,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:438,1
    - Dst: Result::new_handle
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:440,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:440,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:458,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:458,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:462,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:462,1
    - Dst: u64::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:464,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 435
    functionDepth: 15
    functionLinenumber: 435
    functionLinenumberEnd: 471
    functionName: unit_tests::test_rate_limiter_group_full
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - EventFd::new
    - Duration::from_millis
    - u64::event_handler
    - result::Result::unwrap
    - Result::new_handle
    - Result::start_thread
    - RateLimiterGroup::new
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_full()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:476,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:476,1
    - Dst: Result::start_thread
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:477,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:477,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:477,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:477,1
    - Dst: Result::new_handle
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:479,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:479,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:488,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:488,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:493,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:493,1
    - Dst: u64::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:494,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:494,1
    - Dst: RateLimiterGroup::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:498,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:498,1
    - Dst: Result::start_thread
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:499,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:499,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:499,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:499,1
    - Dst: Result::new_handle
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:501,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:501,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:510,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:510,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:521,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:521,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:527,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:527,1
    - Dst: u64::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:528,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/group.rs:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 474
    functionDepth: 15
    functionLinenumber: 474
    functionLinenumberEnd: 531
    functionName: unit_tests::test_rate_limiter_group_overconsumption
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/group.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - EventFd::new
    - Duration::from_millis
    - u64::event_handler
    - result::Result::unwrap
    - Result::new_handle
    - Result::start_thread
    - RateLimiterGroup::new
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_group_overconsumption()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: gcd
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn gcd(x: u64, y: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcd
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:140,1
    - Dst: Some
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:146,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - size
    - one_time_burst
    - complete_refill_time_ms
    argTypes:
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 157
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 157
    functionName: TokenBucket::new
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 5
    functionsReached:
    - Instant::now
    - Some
    - gcd
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(size: u64, one_time_burst: u64, complete_refill_time_ms:
      u64) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:168,1
    - Dst: elapsed
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:179,1
    - Dst: as_nanos
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:179,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:180,1
    - Dst: BucketReduction::OverConsumption
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 72
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 211
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 211
    functionName: TokenBucket::reduce
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - BucketReduction::OverConsumption
    - as_nanos
    - Instant::now
    - elapsed
    linkageType: ''
    returnType: BucketReduction
    signature: 'pub fn reduce(&mut self, mut tokens: u64) -> BucketReduction'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: TokenBucket::replenish
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - std::cmp::min
    linkageType: ''
    returnType: void
    signature: 'pub fn replenish(&mut self, tokens: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: TokenBucket::capacity
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn capacity(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: TokenBucket::one_time_burst
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn one_time_burst(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: TokenBucket::refill_time_ms
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn refill_time_ms(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: TokenBucket::budget
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn budget(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:299,1
    - Dst: expect
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:299,1
    - Dst: bool::store
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - dur
    - flag
    argTypes:
    - Duration
    - '&AtomicBool'
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 16
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: RateLimiterInner::activate_timer
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - reset
    - expect
    - bool::store
    linkageType: ''
    returnType: void
    signature: 'fn activate_timer(&mut self, dur: Duration, flag: &AtomicBool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:336,1
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:342,1
    - Dst: TimerFd::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:351,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:356,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:357,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:359,1
    - Dst: Err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:362,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:362,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:365,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:366,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - bytes_total_capacity
    - bytes_one_time_burst
    - bytes_complete_refill_time_ms
    - ops_total_capacity
    - ops_one_time_burst
    - ops_complete_refill_time_ms
    argTypes:
    - u64
    - u64
    - u64
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 373
      start: 328
    functionDepth: 5
    functionLinenumber: 328
    functionLinenumberEnd: 373
    functionName: RateLimiter::new
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 11
    functionsReached:
    - std::io::Error::last_os_error
    - TokenBucket::new
    - Err
    - Mutex::new
    - AtomicBool::new
    - TimerFd::new
    - as_raw_fd
    - libc::fcntl
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(bytes_total_capacity: u64,bytes_one_time_burst: u64,bytes_complete_refill_time_ms:
      u64,ops_total_capacity: u64,ops_one_time_burst: u64,ops_complete_refill_time_ms:
      u64,) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::is_blocked
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:380,1
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:383,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:383,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:386,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:387,1
    - Dst: refill_time_ms
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:391,1
    - Dst: reduce
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:392,1
    - Dst: RateLimiter::is_blocked
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:397,1
    - Dst: activate_timer
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:398,1
    - Dst: activate_timer
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:413,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:414,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 2
    argNames:
    - tokens
    - token_type
    argTypes:
    - u64
    - TokenType
    constantsTouched: []
    func_position:
      end: 425
      start: 378
    functionDepth: 14
    functionLinenumber: 378
    functionLinenumberEnd: 425
    functionName: RateLimiter::consume
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - refill_time_ms
    - Duration::from_millis
    - activate_timer
    - lock
    - unwrap
    - RateLimiter::is_blocked
    - reduce
    linkageType: ''
    returnType: bool
    signature: 'pub fn consume(&self, tokens: u64, token_type: TokenType) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:432,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:432,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:435,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:436,1
    - Dst: replenish
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - tokens
    - token_type
    argTypes:
    - u64
    - TokenType
    constantsTouched: []
    func_position:
      end: 442
      start: 431
    functionDepth: 13
    functionLinenumber: 431
    functionLinenumberEnd: 442
    functionName: RateLimiter::manual_replenish
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - lock
    - replenish
    - unwrap
    - as_mut
    linkageType: ''
    returnType: void
    signature: 'pub fn manual_replenish(&self, tokens: u64, token_type: TokenType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: RateLimiter::is_blocked
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 1
    functionsReached:
    - load
    linkageType: ''
    returnType: bool
    signature: pub fn is_blocked(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:460,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:460,1
    - Dst: wait
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:464,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:466,1
    - Dst: std::result::Result::kind
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:467,1
    - Dst: Err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:470,1
    - Dst: Error::SpuriousRateLimiterEvent
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:470,1
    - Dst: Err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:474,1
    - Dst: Error::TimerFdWaitError
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:474,1
    - Dst: store
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:478,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 459
    functionDepth: 13
    functionLinenumber: 459
    functionLinenumberEnd: 483
    functionName: RateLimiter::event_handler
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - Error::SpuriousRateLimiterEvent
    - std::result::Result::kind
    - Err
    - lock
    - store
    - Error::TimerFdWaitError
    - unwrap
    - usize::into
    - wait
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn event_handler(&self) -> Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:488,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:488,1
    - Dst: Some
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:491,1
    - Dst: Some
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - bytes
    - ops
    argTypes:
    - BucketUpdate
    - BucketUpdate
    constantsTouched: []
    func_position:
      end: 499
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 499
    functionName: RateLimiter::update_buckets
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - Some
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn update_buckets(&mut self, bytes: BucketUpdate, ops: BucketUpdate)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:510,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:510,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 13
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: RateLimiter::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - lock
    - as_raw_fd
    - unwrap
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:519,1
    - Dst: io::Result::expect
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 6
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: RateLimiter::default
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 1
    functionsReached:
    - RateLimiter::new
    - io::Result::expect
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:591,1
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:592,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:592,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: unit_tests::test_token_bucket_create
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - TokenBucket::new
    - Option::unwrap
    - Instant::now
    linkageType: ''
    returnType: void
    signature: fn test_token_bucket_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:609,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:609,1
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:614,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 620
    functionName: unit_tests::test_token_bucket_preprocess
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - TokenBucket::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_token_bucket_preprocess()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:628,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:628,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:633,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:633,1
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:640,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:640,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:648,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:648,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:650,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:650,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:653,1
    - Dst: reset
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:654,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 623
    functionDepth: 7
    functionLinenumber: 623
    functionLinenumberEnd: 660
    functionName: unit_tests::test_token_bucket_reduce
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - reset
    - Instant::now
    - TokenBucket::new
    - Option::unwrap
    - thread::sleep
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: fn test_token_bucket_reduce()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::default
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:664,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:672,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 663
    functionDepth: 7
    functionLinenumber: 663
    functionLinenumberEnd: 678
    functionName: unit_tests::test_rate_limiter_default
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - RateLimiter::default
    - Result::event_handler
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:682,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:682,1
    - Dst: Result::bandwidth
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:683,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:683,1
    - Dst: Result::ops
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:689,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 681
    functionDepth: 17
    functionLinenumber: 681
    functionLinenumberEnd: 694
    functionName: unit_tests::test_rate_limiter_new
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - RateLimiter::new
    - Result::bandwidth
    - unwrap
    - io::Result::unwrap
    - Result::ops
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_new()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:699,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:699,1
    - Dst: Result::manual_replenish
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:703,1
    - Dst: Result::bandwidth
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:705,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:705,1
    - Dst: Result::manual_replenish
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:710,1
    - Dst: Result::ops
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:712,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 697
    functionDepth: 17
    functionLinenumber: 697
    functionLinenumberEnd: 715
    functionName: unit_tests::test_rate_limiter_manual_replenish
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - Result::manual_replenish
    - RateLimiter::new
    - Result::bandwidth
    - unwrap
    - io::Result::unwrap
    - Result::ops
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_manual_replenish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:720,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:720,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:737,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:737,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:741,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:741,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:743,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 748
      start: 718
    functionDepth: 6
    functionLinenumber: 718
    functionLinenumberEnd: 748
    functionName: unit_tests::test_rate_limiter_bandwidth
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - Duration::from_millis
    - RateLimiter::new
    - Result::event_handler
    - io::Result::unwrap
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_bandwidth()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:753,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:753,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:770,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:770,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:774,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:774,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:776,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 751
    functionDepth: 6
    functionLinenumber: 751
    functionLinenumberEnd: 781
    functionName: unit_tests::test_rate_limiter_ops
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - Duration::from_millis
    - RateLimiter::new
    - Result::event_handler
    - io::Result::unwrap
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:786,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:786,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:804,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:804,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:808,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:808,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:810,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 784
    functionDepth: 6
    functionLinenumber: 784
    functionLinenumberEnd: 817
    functionName: unit_tests::test_rate_limiter_full
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - Duration::from_millis
    - RateLimiter::new
    - Result::event_handler
    - io::Result::unwrap
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_full()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:822,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:822,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:830,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:830,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:831,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:831,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:836,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:836,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:837,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:837,1
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:841,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:841,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:850,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:850,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:851,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:851,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:857,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:857,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:863,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:863,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:864,1
    - Dst: Result::unwrap_err
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:864,1
    - Dst: thread::sleep
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:870,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:870,1
    - Dst: Result::event_handler
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:871,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 874
      start: 820
    functionDepth: 6
    functionLinenumber: 820
    functionLinenumberEnd: 874
    functionName: unit_tests::test_rate_limiter_overconsumption
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - thread::sleep
    - Duration::from_millis
    - RateLimiter::new
    - Result::event_handler
    - io::Result::unwrap
    - Result::unwrap
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_overconsumption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:878,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:878,1
    - Dst: bandwidth
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:880,1
    - Dst: ops
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:881,1
    - Dst: update_buckets
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:883,1
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:887,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:887,1
    - Dst: TokenBucket::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:888,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:888,1
    - Dst: update_buckets
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:889,1
    - Dst: BucketUpdate::Update
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:890,1
    - Dst: clone
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:890,1
    - Dst: BucketUpdate::Update
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:891,1
    - Dst: clone
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:891,1
    - Dst: lock
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:895,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:895,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:899,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:899,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:900,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:900,1
    - Dst: update_buckets
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 909
      start: 877
    functionDepth: 17
    functionLinenumber: 877
    functionLinenumberEnd: 909
    functionName: unit_tests::test_update_buckets
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - TokenBucket::new
    - Option::unwrap
    - as_mut
    - RateLimiter::new
    - bandwidth
    - BucketUpdate::Update
    - lock
    - ops
    - io::Result::unwrap
    - update_buckets
    - unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: fn test_update_buckets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RateLimiter::new
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:913,1
    - Dst: io::Result::unwrap
      Src: /src/cloud-hypervisor/rate_limiter/src/lib.rs:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 912
    functionDepth: 6
    functionLinenumber: 912
    functionLinenumberEnd: 922
    functionName: unit_tests::test_rate_limiter_debug
    functionSourceFile: /src/cloud-hypervisor/rate_limiter/src/lib.rs
    functionUses: 0
    functionsReached:
    - RateLimiter::new
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rate_limiter_debug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:131,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:131,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:132,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:132,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:133,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:133,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:134,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:134,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:135,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:135,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:136,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:136,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:137,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:137,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:138,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:138,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:139,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:139,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:140,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: BlockCounters::default
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - Arc::new
    - AtomicU64::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - features
    - feature_flag
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: has_feature
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn has_feature(features: u64, feature_flag: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: has_feature
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:171,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:171,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:177,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - features
    - request_type
    argTypes:
    - u64
    - RequestType
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 7
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: BlockEpollHandler::check_request
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - has_feature
    - Ok
    - Err
    - into
    linkageType: ''
    returnType: result::Result
    signature: 'fn check_request(features: u64, request_type: RequestType) -> result::Result<(),
      ExecuteError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:184,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:185,1
    - Dst: bool::pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:187,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:187,1
    - Dst: Request::parse
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:188,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:188,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:188,1
    - Dst: Self::check_request
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:194,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:196,1
    - Dst: Result::write_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:196,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:196,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:203,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:204,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:204,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:203,1
    - Dst: bool::enable_notification
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:206,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:207,1
    - Dst: deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:207,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:206,1
    - Dst: consume
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:215,1
    - Dst: bool::go_to_previous_position
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:218,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:225,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:227,1
    - Dst: consume
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:232,1
    - Dst: manual_replenish
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:234,1
    - Dst: bool::go_to_previous_position
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:237,1
    - Dst: Result::set_writeback
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:243,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:243,1
    - Dst: Result::execute_async
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:245,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:246,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:247,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:248,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:250,1
    - Dst: AsyncIoResult::push
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:260,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:269,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:269,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:279,1
    - Dst: Result::write_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:279,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:279,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:286,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:287,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:287,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:286,1
    - Dst: bool::enable_notification
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:289,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:290,1
    - Dst: deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:290,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:289,1
    - Dst: submit_batch_requests
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:295,1
    - Dst: extend
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:297,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:304,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:305,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:305,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:307,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:308,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:307,1
    - Dst: bool::enable_notification
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:310,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:311,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:310,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:317,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 212
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 182
    functionDepth: 12
    functionLinenumber: 182
    functionLinenumberEnd: 318
    functionName: BlockEpollHandler::process_queue_submit
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 2
    functionsReached:
    - Result::execute_async
    - Request::parse
    - bool::go_to_previous_position
    - map_err
    - extend
    - Result::memory
    - Result::head_index
    - memory
    - GuestMemoryMmap::deref
    - Ok
    - Vec::new
    - as_mut
    - GuestMemoryMmap::write_obj
    - bool::pop_descriptor_chain
    - Result::push
    - as_deref
    - Self::check_request
    - load
    - submit_batch_requests
    - Result::set_writeback
    - result::Result::map_err
    - consume
    - std::num::Wrapping
    - bool::enable_notification
    - manual_replenish
    - Result::write_obj
    - deref
    - bool::add_used
    - AsyncIoResult::push
    linkageType: ''
    returnType: Result
    signature: fn process_queue_submit(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: needs_notification
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:321,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:323,1
    - Dst: deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:323,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:321,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:325,1
    - Dst: BlockEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:328,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:328,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:329,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: BlockEpollHandler::try_signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 2
    functionsReached:
    - BlockEpollHandler::signal_used_queue
    - EpollHelperError::HandleEvent
    - map_err
    - deref
    - result::Result::map_err
    - needs_notification
    - memory
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn try_signal_used_queue(&mut self) -> result::Result<(), EpollHelperError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BlockEpollHandler::process_queue_submit
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:337,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:337,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:338,1
    - Dst: BlockEpollHandler::try_signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 13
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: BlockEpollHandler::process_queue_submit_and_signal
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - Result::map_err
    - EpollHelperError::HandleEvent
    - BlockEpollHandler::process_queue_submit
    - BlockEpollHandler::try_signal_used_queue
    linkageType: ''
    returnType: result::Result
    signature: fn process_queue_submit_and_signal(&mut self) -> result::Result<(),
      EpollHelperError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:356,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:356,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:358,1
    - Dst: swap_remove_front
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:358,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:358,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - completed_head
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: BlockEpollHandler::find_inflight_request
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - iter
    - Err
    - swap_remove_front
    - unwrap
    - enumerate
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn find_inflight_request(&mut self, completed_head: u16) -> Result<Request>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:366,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:367,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:368,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:369,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:370,1
    - Dst: next_completed_request
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:372,1
    - Dst: BlockEpollHandler::find_inflight_request
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:375,1
    - Dst: Result::complete_async
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:377,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:377,1
    - Dst: elapsed
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:379,1
    - Dst: as_micros
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:379,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:380,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:381,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:382,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:383,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:384,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:385,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:390,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:392,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:393,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:394,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:399,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:410,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:410,1
    - Dst: fsync
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:419,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:419,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:422,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:424,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:425,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:426,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:431,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:442,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:442,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:452,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:456,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:470,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:470,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:475,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:476,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:475,1
    - Dst: bool::enable_notification
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:478,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:479,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:478,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:483,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:486,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:490,1
    - Dst: fetch_add
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:493,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:497,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 244
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 365
    functionDepth: 16
    functionLinenumber: 365
    functionLinenumberEnd: 498
    functionName: BlockEpollHandler::process_queue_complete
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - map_err
    - memory
    - elapsed
    - GuestMemoryMmap::deref
    - Ok
    - try_into
    - GuestMemoryMmap::write_obj
    - next_completed_request
    - store
    - fsync
    - load
    - Result::complete_async
    - as_micros
    - BlockEpollHandler::find_inflight_request
    - result::Result::map_err
    - unwrap
    - std::num::Wrapping
    - bool::enable_notification
    - fetch_add
    - bool::add_used
    linkageType: ''
    returnType: Result
    signature: fn process_queue_complete(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:501,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:502,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:501,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: BlockEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: fn signal_used_queue(&self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:511,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:511,1
    - Dst: std::mem::zeroed
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:513,1
    - Dst: libc::CPU_ZERO
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:515,1
    - Dst: libc::CPU_SET
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:518,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:524,1
    - Dst: libc::sched_setaffinity
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:527,1
    - Dst: std::mem::size_of::<libc::cpu_set_t>
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:529,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 542
    functionName: BlockEpollHandler::set_queue_thread_affinity
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - map
    - as_ref
    - libc::sched_setaffinity
    - std::mem::size_of::<libc::cpu_set_t>
    - libc::CPU_SET
    - libc::CPU_ZERO
    - std::mem::zeroed
    linkageType: ''
    returnType: void
    signature: fn set_queue_thread_affinity(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:549,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:550,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:550,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:551,1
    - Dst: notifier
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:551,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:551,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:553,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:553,1
    - Dst: BlockEpollHandler::set_queue_thread_affinity
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:555,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:556,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 559
      start: 544
    functionDepth: 15
    functionLinenumber: 544
    functionLinenumberEnd: 559
    functionName: BlockEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - BlockEpollHandler::set_queue_thread_affinity
    - run
    - notifier
    - EpollHelper::new
    - Ok
    - as_raw_fd
    - add_event
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:571,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:571,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:572,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:575,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:575,1
    - Dst: u64::is_blocked
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:575,1
    - Dst: BlockEpollHandler::process_queue_submit_and_signal
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:579,1
    - Dst: notifier
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:583,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:583,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:583,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:584,1
    - Dst: BlockEpollHandler::process_queue_complete
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:587,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:587,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:588,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:593,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:593,1
    - Dst: u64::is_blocked
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:593,1
    - Dst: BlockEpollHandler::process_queue_submit
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:597,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:597,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:598,1
    - Dst: BlockEpollHandler::try_signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:603,1
    - Dst: event_handler
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:609,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:609,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:610,1
    - Dst: BlockEpollHandler::process_queue_submit_and_signal
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:615,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:617,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:617,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:623,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:623,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 96
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 629
      start: 563
    functionDepth: 14
    functionLinenumber: 563
    functionLinenumberEnd: 629
    functionName: BlockEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - BlockEpollHandler::process_queue_submit_and_signal
    - EpollHelperError::HandleEvent
    - notifier
    - is_some_and
    - map_err
    - as_ref
    - BlockEpollHandler::process_queue_submit
    - event_handler
    - u64::is_blocked
    - Err
    - Result::map_err
    - BlockEpollHandler::process_queue_complete
    - BlockEpollHandler::try_signal_used_queue
    - read
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box<dyn DiskFile>::logical_size
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:687,1
    - Dst: DiskFileResult::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:687,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:689,1
    - Dst: Box<dyn DiskFile>::topology
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:713,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:739,1
    - Dst: Vec::map_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:750,1
    - Dst: block::build_serial
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:750,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:752,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:757,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:757,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:757,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:760,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:760,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:761,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:766,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:766,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:768,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:768,1
    - Dst: BlockCounters::default
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 110
    argCount: 13
    argNames:
    - id
    - disk_image
    - disk_path
    - read_only
    - iommu
    - num_queues
    - queue_size
    - serial
    - seccomp_action
    - rate_limiter
    - exit_evt
    - state
    - queue_affinity
    argTypes:
    - String
    - Box<dyn DiskFile>
    - PathBuf
    - bool
    - bool
    - usize
    - u16
    - Option<String>
    - SeccompAction
    - Option<Arc<RateLimiterGroup>>
    - EventFd
    - Option<BlockState>
    - BTreeMap<u16, Vec<usize>>
    constantsTouched: []
    func_position:
      end: 776
      start: 661
    functionDepth: 8
    functionLinenumber: 661
    functionLinenumberEnd: 776
    functionName: Block::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - AtomicU64::new
    - Default::default
    - Vec::map_or_else
    - Box<dyn DiskFile>::logical_size
    - DiskFileResult::map_err
    - block::build_serial
    - Arc::new
    - BlockCounters::default
    - Barrier::new
    - Box<dyn DiskFile>::topology
    - AtomicBool::new
    - io::Error::other
    - Some
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,mut disk_image: Box<dyn DiskFile>,disk_path:
      PathBuf,read_only: bool,iommu: bool,num_queues: usize,queue_size: u16,serial:
      Option<String>,seccomp_action: SeccompAction,rate_limiter: Option<Arc<RateLimiterGroup>>,exit_evt:
      EventFd,state: Option<BlockState>,queue_affinity: BTreeMap<u16, Vec<usize>>,)
      -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: has_feature
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:779,1
    - Dst: Block::features
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:779,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 7
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: Block::read_only
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached:
    - has_feature
    - Block::features
    - into
    linkageType: ''
    returnType: bool
    signature: fn read_only(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: physical_size
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:786,1
    - Dst: map_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:786,1
    - Dst: LockGranularity::ByteRange
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 800
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 800
    functionName: Block::lock_granularity
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 2
    functionsReached:
    - physical_size
    - LockGranularity::ByteRange
    - map_or_else
    linkageType: ''
    returnType: LockGranularity
    signature: fn lock_granularity(&mut self) -> LockGranularity
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Block::read_only
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:804,1
    - Dst: Block::lock_granularity
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:808,1
    - Dst: fd
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:814,1
    - Dst: fcntl::try_acquire_lock
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:815,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:815,1
    - Dst: block::fcntl::get_lock_state
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:816,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:825,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 836
      start: 803
    functionDepth: 8
    functionLinenumber: 803
    functionLinenumberEnd: 836
    functionName: Block::try_lock_image
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - Block::lock_granularity
    - fcntl::try_acquire_lock
    - block::fcntl::get_lock_state
    - Block::read_only
    - fd
    - Result::map_err
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn try_lock_image(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Block::lock_granularity
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:840,1
    - Dst: fd
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:845,1
    - Dst: fcntl::clear_lock
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:846,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:846,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 851
      start: 839
    functionDepth: 8
    functionLinenumber: 839
    functionLinenumberEnd: 851
    functionName: Block::unlock_image
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - Block::lock_granularity
    - fcntl::clear_lock
    - fd
    - Result::map_err
    - clone
    linkageType: ''
    returnType: Result
    signature: pub fn unlock_image(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_str
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:855,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:855,1
    - Dst: to_owned
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:855,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 861
    functionName: Block::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 2
    functionsReached:
    - to_str
    - load
    - unwrap
    - to_owned
    linkageType: ''
    returnType: BlockState
    signature: fn state(&self) -> BlockState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:865,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:865,1
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:869,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:869,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 863
    functionDepth: 16
    functionLinenumber: 863
    functionLinenumberEnd: 881
    functionName: Block::update_writeback
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 2
    functionsReached:
    - store
    - feature_acked
    - into
    linkageType: ''
    returnType: void
    signature: fn update_writeback(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:884,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:885,1
    - Dst: resize
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:888,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:888,1
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:894,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:894,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:896,1
    - Dst: Block::state
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:898,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:900,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:900,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:902,1
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:903,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:903,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:907,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 1
    argNames:
    - new_size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 909
      start: 883
    functionDepth: 16
    functionLinenumber: 883
    functionLinenumberEnd: 909
    functionName: Block::resize
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - pause
    - map_err
    - as_ref
    - trigger
    - Err
    - Block::state
    - store
    - resume
    - u64::is_multiple_of
    - resize
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize(&mut self, new_size: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 914
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 914
    functionName: Block::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:919,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:921,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 924
      start: 918
    functionDepth: 8
    functionLinenumber: 918
    functionLinenumberEnd: 924
    functionName: Block::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 930
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 930
    functionName: Block::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 934
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 934
    functionName: Block::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 938
    functionName: Block::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 942
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 942
    functionName: Block::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Block::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:945,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 946
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 946
    functionName: Block::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - as_slice
    - Block::read_config_from_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:952,1
    - Dst: std::mem::size_of_val
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:952,1
    - Dst: Block::update_writeback
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 964
      start: 948
    functionDepth: 17
    functionLinenumber: 948
    functionLinenumberEnd: 964
    functionName: Block::write_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of_val
    - String::len
    - Block::update_writeback
    linkageType: ''
    returnType: void
    signature: 'fn write_config(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:972,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:972,1
    - Dst: Block::update_writeback
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:974,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:976,1
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:977,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:977,1
    - Dst: usize::len
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:979,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:980,1
    - Dst: bool::set_event_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:981,1
    - Dst: bool::size
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:983,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:984,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:990,1
    - Dst: new_async_io
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:991,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:991,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:998,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:999,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1000,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1003,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1004,1
    - Dst: VecDeque::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1009,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1010,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1010,1
    - Dst: u64::new_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1013,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1010,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1010,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1016,1
    - Dst: get
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1017,1
    - Dst: cloned
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1017,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1021,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1022,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1024,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1030,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1030,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1030,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1034,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1035,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 117
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 1038
      start: 966
    functionDepth: 17
    functionLinenumber: 966
    functionLinenumberEnd: 1038
    functionName: Block::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - Option::run
    - Block::update_writeback
    - Ok
    - activate
    - transpose
    - Vec::new
    - event_monitor::event
    - into
    - GuestMemoryMmap::clone
    - get
    - u64::new_handle
    - new_async_io
    - Some
    - VecDeque::with_capacity
    - dup_eventfds
    - unwrap
    - cloned
    - clone
    - map
    - usize::remove
    - bool::set_event_idx
    - bool::size
    - Arc<dyn VirtioInterrupt>::clone
    - feature_acked
    - thread_helper::spawn_virtio_thread
    - usize::len
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1041,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1040
    functionDepth: 14
    functionLinenumber: 1040
    functionLinenumberEnd: 1044
    functionName: Block::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1047,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1049,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1051,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1051,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1053,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1055,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1055,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1057,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1059,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1059,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1061,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1063,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1063,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1065,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1067,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1067,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1069,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1071,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1071,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1073,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1075,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1075,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1077,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1079,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1079,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1081,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1083,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1083,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1085,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1087,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1087,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1046
    functionDepth: 8
    functionLinenumber: 1046
    functionLinenumberEnd: 1091
    functionName: Block::counters
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - load
    - Counters::insert
    - Some
    - std::num::Wrapping
    linkageType: ''
    returnType: Option
    signature: fn counters(&self) -> Option<HashMap<&'static str, Wrapping<u64>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 1095
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1095
    functionName: Block::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - set_access_platform
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1099
    functionDepth: 16
    functionLinenumber: 1099
    functionLinenumberEnd: 1101
    functionName: Block::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1103
    functionDepth: 14
    functionLinenumber: 1103
    functionLinenumberEnd: 1105
    functionName: Block::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1111
    functionName: Block::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1114,1
    - Dst: Block::state
      Src: /src/cloud-hypervisor/virtio-devices/src/block.rs:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1113
    functionDepth: 8
    functionLinenumber: 1113
    functionLinenumberEnd: 1115
    functionName: Block::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/block.rs
    functionUses: 0
    functionsReached:
    - Block::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostKernVdpa::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:125,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:125,1
    - Dst: set_owner
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:126,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:126,1
    - Dst: set_backend_features_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:139,1
    - Dst: set_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:140,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:141,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:140,1
    - Dst: get_device_id
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:157,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:157,1
    - Dst: get_vring_num
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:158,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:158,1
    - Dst: get_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:159,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:159,1
    - Dst: get_backend_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:160,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:160,1
    - Dst: set_backend_features_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:163,1
    - Dst: get_iova_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:165,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:165,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:168,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:182,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:189,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:189,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:190,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:193,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 80
    argCount: 5
    argNames:
    - id
    - device_path
    - mem
    - num_queues
    - state
    argTypes:
    - String
    - '&str'
    - GuestMemoryAtomic<GuestMemoryMmap>
    - u16
    - Option<VdpaState>
    constantsTouched: []
    func_position:
      end: 199
      start: 118
    functionDepth: 18
    functionLinenumber: 118
    functionLinenumberEnd: 199
    functionName: Vdpa::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 2
    functionsReached:
    - map_err
    - set_owner
    - get_vring_num
    - AtomicBool::new
    - Ok
    - Default::default
    - Arc::new
    - as_slice
    - get_iova_range
    - set_config
    - Err
    - get_device_id
    - get_features
    - VhostKernVdpa::new
    - set_backend_features_acked
    - Result::map_err
    - BTreeMap::new
    - get_backend_features
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,device_path: &str,mem: GuestMemoryAtomic<GuestMemoryMmap>,num_queues:
      u16,state: Option<VdpaState>,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:204,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:206,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:206,1
    - Dst: set_vring_enable
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:206,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:206,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: Vdpa::enable_vrings
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 2
    functionsReached:
    - map_err
    - set_vring_enable
    - as_ref
    - Ok
    - unwrap
    - iter_mut
    linkageType: ''
    returnType: Result
    signature: 'fn enable_vrings(&mut self, enable: bool) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:225,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:225,1
    - Dst: set_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:225,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:225,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:230,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:230,1
    - Dst: set_backend_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:230,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:230,1
    - Dst: usize::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:236,1
    - Dst: bool::max_size
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:237,1
    - Dst: bool::size
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:238,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:239,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:239,1
    - Dst: set_vring_num
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:239,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:239,1
    - Dst: bool::desc_table
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:249,1
    - Dst: translate_gpa
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:249,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:250,1
    - Dst: std::mem::size_of::<RawDescriptor>
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:251,1
    - Dst: bool::used_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:253,1
    - Dst: translate_gpa
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:253,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:254,1
    - Dst: bool::avail_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:257,1
    - Dst: translate_gpa
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:257,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:258,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:264,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:264,1
    - Dst: set_vring_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:264,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:264,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:269,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:269,1
    - Dst: set_vring_base
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:269,1
    - Dst: bool::avail_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:274,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:274,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:269,1
    - Dst: '&dyn VirtioInterrupt::notifier'
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:282,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:282,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:284,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:284,1
    - Dst: set_vring_call
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:284,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:284,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:291,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:291,1
    - Dst: set_vring_kick
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:291,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:291,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:297,1
    - Dst: '&dyn VirtioInterrupt::notifier'
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:301,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:302,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:302,1
    - Dst: set_config_call
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:302,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:302,1
    - Dst: Vdpa::enable_vrings
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:309,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:311,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:311,1
    - Dst: set_status
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:311,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:311,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 182
    argCount: 3
    argNames:
    - mem
    - virtio_interrupt
    - queues
    argTypes:
    - '&GuestMemoryMmap'
    - '&dyn VirtioInterrupt'
    - '&[(usize, Queue, EventFd)]'
    constantsTouched: []
    func_position:
      end: 318
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 318
    functionName: Vdpa::activate_vdpa
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 1
    functionsReached:
    - set_backend_features
    - map_err
    - as_ref
    - bool::used_ring
    - bool::desc_table
    - VirtioInterruptType::Queue
    - bool::avail_ring
    - insert
    - set_status
    - as_mut
    - set_vring_base
    - std::mem::size_of::<RawDescriptor>
    - as_deref
    - set_features
    - bool::avail_idx
    - translate_gpa
    - Vdpa::enable_vrings
    - unwrap
    - set_vring_addr
    - usize::iter
    - set_vring_num
    - set_config_call
    - set_vring_kick
    - bool::max_size
    - '&dyn VirtioInterrupt::notifier'
    - bool::size
    - set_vring_call
    linkageType: ''
    returnType: Result
    signature: 'fn activate_vdpa(&mut self,mem: &GuestMemoryMmap,virtio_interrupt:
      &dyn VirtioInterrupt,queues: &[(usize, Queue, EventFd)],) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vdpa::enable_vrings
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:321,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:324,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:324,1
    - Dst: set_status
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:324,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: Vdpa::reset_vdpa
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 1
    functionsReached:
    - set_status
    - map_err
    - as_ref
    - Vdpa::enable_vrings
    - unwrap
    linkageType: ''
    returnType: Result
    signature: fn reset_vdpa(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:341,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:342,1
    - Dst: Error::InvalidIovaRange
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:342,1
    - Dst: checked_sub
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:344,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:345,1
    - Dst: Error::InvalidIovaRange
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:345,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:348,1
    - Dst: Error::InvalidIovaRange
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:348,1
    - Dst: isize::try_from
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:350,1
    - Dst: Result::is_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:350,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:351,1
    - Dst: Error::InvalidIovaRange
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:351,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:355,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:355,1
    - Dst: dma_map
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:355,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 4
    argNames:
    - iova
    - size
    - host_vaddr
    - readonly
    argTypes:
    - u64
    - u64
    - '*const u8'
    - bool
    constantsTouched: []
    func_position:
      end: 360
      start: 334
    functionDepth: 11
    functionLinenumber: 334
    functionLinenumberEnd: 360
    functionName: Vdpa::dma_map
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - Result::is_err
    - Err
    - u64::checked_add
    - Error::InvalidIovaRange
    - unwrap
    - checked_sub
    - dma_map
    - isize::try_from
    linkageType: ''
    returnType: Result
    signature: 'unsafe fn dma_map(&mut self,iova: u64,size: u64,host_vaddr: *const
      u8,readonly: bool,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:365,1
    - Dst: Error::InvalidIovaRange
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:365,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:369,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:369,1
    - Dst: dma_unmap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:369,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - iova
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 374
      start: 362
    functionDepth: 14
    functionLinenumber: 362
    functionLinenumberEnd: 374
    functionName: Vdpa::dma_unmap
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - Err
    - Error::InvalidIovaRange
    - unwrap
    - dma_unmap
    linkageType: ''
    returnType: Result
    signature: 'fn dma_unmap(&self, iova: u64, size: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:378,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:378,1
    - Dst: get_config_size
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:378,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:378,1
    - Dst: Vdpa::read_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:385,1
    - Dst: Vec::as_mut_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:385,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:387,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 397
    functionName: Vdpa::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 1
    functionsReached:
    - Vdpa::read_config
    - map_err
    - Vec::as_mut_slice
    - as_ref
    - get_config_size
    - unwrap
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn state(&self) -> Result<VdpaState>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: Vdpa::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: Vdpa::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: Vdpa::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: Vdpa::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:419,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:419,1
    - Dst: get_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: Vdpa::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - get_config
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:426,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:426,1
    - Dst: set_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 18
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: Vdpa::write_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - set_config
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn write_config(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vdpa::activate_vdpa
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:437,1
    - Dst: GuestMemoryMmap::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:437,1
    - Dst: Arc<dyn VirtioInterrupt>::as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:437,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:437,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:441,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:443,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - mem
    - virtio_interrupt
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 14
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: Vdpa::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::memory
    - Arc<dyn VirtioInterrupt>::as_ref
    - event_monitor::event
    - Result::map_err
    - Vdpa::activate_vdpa
    - Some
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,virtio_interrupt:
      Arc<dyn VirtioInterrupt>,queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vdpa::reset_vdpa
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:448,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:453,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 447
    functionDepth: 14
    functionLinenumber: 447
    functionLinenumberEnd: 457
    functionName: Vdpa::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - take
    - Vdpa::reset_vdpa
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: Vdpa::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - set_access_platform
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:467,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:469,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: Vdpa::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - MigratableError::Pause
    - Err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:476,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:477,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:481,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:483,1
    - Dst: MigratableError::Resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: Vdpa::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - MigratableError::Resume
    - load
    - Err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Vdpa::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:497,1
    - Dst: MigratableError::Snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:497,1
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:502,1
    - Dst: Vdpa::state
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:502,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:502,1
    - Dst: MigratableError::Snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:503,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:509,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 495
    functionDepth: 8
    functionLinenumber: 495
    functionLinenumberEnd: 512
    functionName: Vdpa::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - Vdpa::state
    - MigratableError::Snapshot
    - Err
    - take
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:524,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:524,1
    - Dst: suspend
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:524,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:524,1
    - Dst: MigratableError::StartMigration
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:525,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:528,1
    - Dst: MigratableError::StartMigration
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 532
    functionName: Vdpa::start_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - MigratableError::StartMigration
    - Err
    - unwrap
    - suspend
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: Vdpa::complete_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn complete_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - device
    - memory
    argTypes:
    - Arc<Mutex<Vdpa>>
    - Arc<M>
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: VdpaDmaMapping::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(device: Arc<Mutex<Vdpa>>, memory: Arc<M>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:553,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:553,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:554,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:555,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:556,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:557,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:557,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:570,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:570,1
    - Dst: dma_map
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:570,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:570,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 3
    argNames:
    - iova
    - gpa
    - size
    argTypes:
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 581
      start: 552
    functionDepth: 12
    functionLinenumber: 552
    functionLinenumberEnd: 581
    functionName: VdpaDmaMapping::map
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - get_host_address_range
    - vm_memory::GuestAddress
    - map_err
    - usize::try_into
    - std::result::Result::unwrap
    - Err
    - lock
    - unwrap
    - io::Error::other
    - dma_map
    - memory
    linkageType: ''
    returnType: result::Result
    signature: 'fn map(&self, iova: u64, gpa: u64, size: u64) -> result::Result<(),
      io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:585,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:585,1
    - Dst: dma_unmap
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:585,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:585,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - iova
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 595
      start: 583
    functionDepth: 13
    functionLinenumber: 583
    functionLinenumberEnd: 595
    functionName: VdpaDmaMapping::unmap
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
    functionUses: 0
    functionsReached:
    - map_err
    - lock
    - unwrap
    - io::Error::other
    - dma_unmap
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn unmap(&self, iova: u64, size: u64) -> std::result::Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: mshv_sev_snp_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SeccompRule
    signature: fn mshv_sev_snp_ioctl_seccomp_rule() -> SeccompRule
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: create_mshv_sev_snp_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn create_mshv_sev_snp_ioctl_seccomp_rule() -> Vec<SeccompRule>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: create_virtio_console_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn create_virtio_console_ioctl_seccomp_rule() -> Vec<SeccompRule>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: create_virtio_iommu_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn create_virtio_iommu_ioctl_seccomp_rule() -> Vec<SeccompRule>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: create_virtio_mem_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn create_virtio_mem_ioctl_seccomp_rule() -> Vec<SeccompRule>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: virtio_balloon_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_balloon_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: virtio_block_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_block_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: virtio_console_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_console_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: virtio_iommu_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_iommu_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: virtio_mem_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_mem_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: virtio_net_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_net_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: create_virtio_net_ctl_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn create_virtio_net_ctl_ioctl_seccomp_rule() -> Vec<SeccompRule>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: virtio_net_ctl_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_net_ctl_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: virtio_pmem_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_pmem_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: virtio_rng_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_rng_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: virtio_vhost_fs_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_vhost_fs_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: virtio_vhost_net_ctl_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_vhost_net_ctl_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 217
    functionName: virtio_vhost_net_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_vhost_net_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: virtio_vhost_block_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_vhost_block_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: create_vsock_ioctl_seccomp_rule
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn create_vsock_ioctl_seccomp_rule() -> Vec<SeccompRule>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: virtio_vsock_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_vsock_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: virtio_watchdog_thread_rules
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_watchdog_thread_rules() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 310
    functionName: virtio_thread_common
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn virtio_thread_common() -> Vec<(i64, Vec<SeccompRule>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: VirtioConsoleConfig::default
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:122,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:123,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: Endpoint::out_file
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn out_file(&self) -> Option<&File>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:132,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Endpoint::in_file
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn in_file(&self) -> Option<&File>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Endpoint::is_pty
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_pty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: out_file
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:161,1
    - Dst: Option::try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:163,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:163,1
    - Dst: is_pty
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:164,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:165,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:165,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:166,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:166,1
    - Dst: SerialBuffer::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:167,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:167,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:168,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:168,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:170,1
    - Dst: Box::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 14
    argNames:
    - mem
    - input_queue
    - output_queue
    - interrupt_cb
    - in_buffer
    - resizer
    - endpoint
    - input_queue_evt
    - output_queue_evt
    - config_evt
    - resize_pipe
    - kill_evt
    - pause_evt
    - access_platform
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Queue
    - Queue
    - Arc<dyn VirtioInterrupt>
    - Arc<Mutex<VecDeque<u8>>>
    - Arc<ConsoleResizer>
    - Endpoint
    - EventFd
    - EventFd
    - EventFd
    - Option<File>
    - EventFd
    - EventFd
    - Option<Arc<dyn AccessPlatform>>
    constantsTouched: []
    func_position:
      end: 195
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 195
    functionName: ConsoleEpollHandler::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 1
    functionsReached:
    - Option::try_clone
    - std::io::Result::unwrap
    - Arc::new
    - out_file
    - Result::clone
    - AtomicBool::new
    - Box::new
    - SerialBuffer::new
    - is_pty
    - Some
    linkageType: ''
    returnType: Self
    signature: 'fn new(mem: GuestMemoryAtomic<GuestMemoryMmap>,input_queue: Queue,output_queue:
      Queue,interrupt_cb: Arc<dyn VirtioInterrupt>,in_buffer: Arc<Mutex<VecDeque<u8>>>,resizer:
      Arc<ConsoleResizer>,endpoint: Endpoint,input_queue_evt: EventFd,output_queue_evt:
      EventFd,config_evt: EventFd,resize_pipe: Option<File>,kill_evt: EventFd,pause_evt:
      EventFd,access_platform: Option<Arc<dyn AccessPlatform>>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:204,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:204,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:208,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:209,1
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:212,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:212,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:213,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:213,1
    - Dst: cmp::min
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:214,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:214,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:214,1
    - Dst: drain
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:215,1
    - Dst: drain(..len as usize).collect::<Vec<u8>>
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:215,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:217,1
    - Dst: Result::write_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:217,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:221,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:221,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:222,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:222,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:217,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:226,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:227,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:227,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:226,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:231,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 203
    functionDepth: 13
    functionLinenumber: 203
    functionLinenumberEnd: 237
    functionName: ConsoleEpollHandler::process_input_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 1
    functionsReached:
    - map_err
    - addr
    - pop_descriptor_chain
    - Result::next
    - Result::memory
    - memory
    - Ok
    - Result::head_index
    - drain(..len as usize).collect::<Vec<u8>>
    - len
    - as_deref
    - is_empty
    - drain
    - add_used
    - lock
    - unwrap
    - Result::write_slice
    - Option::ok_or
    - translate_gva
    - cmp::min
    linkageType: ''
    returnType: Result
    signature: fn process_input_queue(&mut self) -> Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:250,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:250,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:251,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:251,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:253,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:254,1
    - Dst: Result::write_volatile_to
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:254,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:257,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:257,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:258,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:258,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:260,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:254,1
    - Dst: Result::write_all
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:264,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:264,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:265,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:265,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:267,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:268,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:268,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:268,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:267,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 274
    functionName: ConsoleEpollHandler::process_output_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 1
    functionsReached:
    - Result::write_volatile_to
    - translate_gva
    - Result::write_all
    - map_err
    - Vec::new
    - addr
    - IoResult::map_err
    - add_used
    - pop_descriptor_chain
    - Result::head_index
    - Result::next
    - as_deref
    - Ok
    - len
    - Result::memory
    - Option::ok_or
    - memory
    - Result::flush
    linkageType: ''
    returnType: Result
    signature: fn process_output_queue(&mut self) -> Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:277,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:278,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:277,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - queue_index
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 283
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 283
    functionName: ConsoleEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn signal_used_queue(&self, queue_index: u16) -> result::Result<(),
      DeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:290,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:291,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:291,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:292,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:292,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:293,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:293,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:294,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:295,1
    - Dst: Option::as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:295,1
    - Dst: in_file
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:297,1
    - Dst: is_pty
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:299,1
    - Dst: add_event_custom
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:302,1
    - Dst: Option::as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:302,1
    - Dst: is_pty
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:312,1
    - Dst: run_with_timeout
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:317,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:319,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 71
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 320
      start: 285
    functionDepth: 15
    functionLinenumber: 285
    functionLinenumberEnd: 320
    functionName: ConsoleEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - Option::as_raw_fd
    - as_ref
    - in_file
    - run_with_timeout
    - EpollHelper::new
    - Ok
    - is_pty
    - as_raw_fd
    - add_event_custom
    - add_event
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:328,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:329,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:331,1
    - Dst: Result::flush
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:332,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:332,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 326
    functionDepth: 16
    functionLinenumber: 326
    functionLinenumberEnd: 337
    functionName: ConsoleEpollHandler::trigger_pty_flush
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 3
    functionsReached:
    - load
    - IoResult::map_err
    - store
    - Ok
    - Result::flush
    linkageType: ''
    returnType: result::Result
    signature: fn trigger_pty_flush(&mut self) -> result::Result<(), anyhow::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:344,1
    - Dst: mod_event_custom
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:348,1
    - Dst: in_file
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:349,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:349,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:349,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - helper
    argTypes:
    - '&mut EpollHelper'
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: ConsoleEpollHandler::register_file_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 3
    functionsReached:
    - mod_event_custom
    - in_file
    - unwrap
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn register_file_event(&mut self,helper: &mut EpollHelper,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:369,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:369,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:370,1
    - Dst: ConsoleEpollHandler::process_input_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:372,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:372,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:373,1
    - Dst: ConsoleEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:376,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:376,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:377,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:382,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:382,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:383,1
    - Dst: ConsoleEpollHandler::process_output_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:385,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:385,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:386,1
    - Dst: ConsoleEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:389,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:389,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:390,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:395,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:395,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:396,1
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:398,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:398,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:401,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:407,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:407,1
    - Dst: read_exact
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:407,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:407,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:412,1
    - Dst: update_console_size
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:414,1
    - Dst: in_file
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:419,1
    - Dst: Option::read
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:420,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:421,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:421,1
    - Dst: extend
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:422,1
    - Dst: ConsoleEpollHandler::process_input_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:425,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:425,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:426,1
    - Dst: ConsoleEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:431,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:431,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:432,1
    - Dst: is_pty
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:439,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:443,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:445,1
    - Dst: ConsoleEpollHandler::trigger_pty_flush
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:450,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:450,1
    - Dst: ConsoleEpollHandler::register_file_event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:453,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:458,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:458,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:463,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 175
    argCount: 2
    argNames:
    - helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 464
      start: 360
    functionDepth: 13
    functionLinenumber: 360
    functionLinenumberEnd: 464
    functionName: ConsoleEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - extend
    - in_file
    - trigger
    - Ok
    - update_console_size
    - ConsoleEpollHandler::trigger_pty_flush
    - store
    - is_pty
    - read_exact
    - load
    - ConsoleEpollHandler::process_input_queue
    - Err
    - lock
    - ConsoleEpollHandler::register_file_event
    - result::Result::map_err
    - unwrap
    - read
    - Option::read
    - EpollHelperError::HandleEvent
    - Result::map_err
    - ConsoleEpollHandler::signal_used_queue
    - ConsoleEpollHandler::process_output_queue
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_pty
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:469,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:470,1
    - Dst: ConsoleEpollHandler::trigger_pty_flush
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:478,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:478,1
    - Dst: ConsoleEpollHandler::register_file_event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - helper
    argTypes:
    - '&mut EpollHelper'
    constantsTouched: []
    func_position:
      end: 485
      start: 468
    functionDepth: 17
    functionLinenumber: 468
    functionLinenumberEnd: 485
    functionName: ConsoleEpollHandler::handle_timeout
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - ConsoleEpollHandler::trigger_pty_flush
    - ConsoleEpollHandler::register_file_event
    - result::Result::map_err
    - is_pty
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn handle_timeout(&mut self, helper: &mut EpollHelper) -> Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:500,1
    - Dst: ConsoleEpollHandler::trigger_pty_flush
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:508,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:508,1
    - Dst: ConsoleEpollHandler::register_file_event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - helper
    - events
    argTypes:
    - '&mut EpollHelper'
    - '&[epoll::Event]'
    constantsTouched: []
    func_position:
      end: 513
      start: 492
    functionDepth: 17
    functionLinenumber: 492
    functionLinenumberEnd: 513
    functionName: ConsoleEpollHandler::event_list
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - ConsoleEpollHandler::trigger_pty_flush
    - ConsoleEpollHandler::register_file_event
    - result::Result::map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn event_list(&mut self,helper: &mut EpollHelper,events: &[epoll::Event],)
      -> Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:526,1
    - Dst: get_win_size
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:527,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:528,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:528,1
    - Dst: update_console_size
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:528,1
    - Dst: fetch_and
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:529,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 525
    functionDepth: 13
    functionLinenumber: 525
    functionLinenumberEnd: 538
    functionName: ConsoleResizer::update_console_size
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - update_console_size
    - as_ref
    - lock
    - unwrap
    - get_win_size
    - fetch_and
    - write
    linkageType: ''
    returnType: void
    signature: pub fn update_console_size(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cols
    - rows
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: VirtioConsoleConfig::update_console_size
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn update_console_size(&mut self, cols: u16, rows: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WindowSize::default
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:578,1
    - Dst: libc::ioctl
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:582,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tty
    argTypes:
    - '&dyn AsRawFd'
    constantsTouched: []
    func_position:
      end: 586
      start: 569
    functionDepth: 6
    functionLinenumber: 569
    functionLinenumberEnd: 586
    functionName: get_win_size
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 1
    functionsReached:
    - as_raw_fd
    - libc::ioctl
    - WindowSize::default
    linkageType: ''
    returnType: (u16, u16)
    signature: 'fn get_win_size(tty: &dyn AsRawFd) -> (u16, u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:606,1
    - Dst: VirtioConsoleConfig::default
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:618,1
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:619,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:624,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:624,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:625,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:625,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:626,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:628,1
    - Dst: out_file
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:629,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:629,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:629,1
    - Dst: fmt::Result::try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:629,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:629,1
    - Dst: AtomicU64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:630,1
    - Dst: Result::update_console_size
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:633,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:635,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:639,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:642,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:642,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:642,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:644,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:644,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:645,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:649,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:653,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 63
    argCount: 7
    argNames:
    - id
    - endpoint
    - resize_pipe
    - iommu
    - seccomp_action
    - exit_evt
    - state
    argTypes:
    - String
    - Endpoint
    - Option<File>
    - bool
    - SeccompAction
    - EventFd
    - Option<ConsoleState>
    constantsTouched: []
    func_position:
      end: 658
      start: 590
    functionDepth: 7
    functionLinenumber: 590
    functionLinenumberEnd: 658
    functionName: Console::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 2
    functionsReached:
    - AtomicU64::new
    - Result::update_console_size
    - as_ref
    - EventFd::new
    - AtomicBool::new
    - Result::unwrap
    - Ok
    - Default::default
    - Arc::new
    - out_file
    - into
    - VirtioConsoleConfig::default
    - Barrier::new
    - fmt::Result::try_clone
    - std::io::Result::unwrap
    - Mutex::new
    - Result::clone
    - to_vec
    - map
    - VecDeque::new
    - Some
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,endpoint: Endpoint,resize_pipe: Option<File>,iommu:
      bool,seccomp_action: SeccompAction,exit_evt: EventFd,state: Option<ConsoleState>,)
      -> io::Result<(Console, Arc<ConsoleResizer>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:664,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:664,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:665,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:665,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:665,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 667
      start: 660
    functionDepth: 13
    functionLinenumber: 660
    functionLinenumberEnd: 667
    functionName: Console::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 1
    functionsReached:
    - lock
    - clone
    - unwrap
    - into
    linkageType: ''
    returnType: ConsoleState
    signature: fn state(&self) -> ConsoleState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 672
    functionName: Console::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:677,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:679,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 676
    functionDepth: 8
    functionLinenumber: 676
    functionLinenumberEnd: 682
    functionName: Console::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 688
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 688
    functionName: Console::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: Console::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 696
    functionName: Console::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: Console::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Console::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:703,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:703,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:703,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 13
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: Console::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - lock
    - as_slice
    - unwrap
    - Console::read_config_from_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:712,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:712,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:713,1
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:717,1
    - Dst: Arc<dyn VirtioInterrupt>::trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:718,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:723,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:725,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:726,1
    - Dst: ConsoleEpollHandler::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:728,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:733,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:734,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:735,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:738,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:738,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:739,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:739,1
    - Dst: Result::try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:739,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:739,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:742,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:745,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:746,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:747,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:749,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:755,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:755,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:755,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:758,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:760,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 95
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 762
      start: 706
    functionDepth: 18
    functionLinenumber: 706
    functionLinenumberEnd: 762
    functionName: Console::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Result::try_clone
    - Option::run
    - Arc::clone
    - Ok
    - activate
    - Vec::new
    - event_monitor::event
    - try_clone
    - store
    - Arc<dyn VirtioInterrupt>::trigger
    - ConsoleEpollHandler::new
    - std::io::Result::unwrap
    - Some
    - dup_eventfds
    - unwrap
    - clone
    - map
    - usize::remove
    - Arc<dyn VirtioInterrupt>::clone
    - feature_acked
    - thread_helper::spawn_virtio_thread
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:765,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 764
    functionDepth: 14
    functionLinenumber: 764
    functionLinenumberEnd: 768
    functionName: Console::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: Console::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - set_access_platform
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 778
      start: 776
    functionDepth: 16
    functionLinenumber: 776
    functionLinenumberEnd: 778
    functionName: Console::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 14
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: Console::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: Console::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:791,1
    - Dst: Console::state
      Src: /src/cloud-hypervisor/virtio-devices/src/console.rs:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 14
    functionLinenumber: 790
    functionLinenumberEnd: 792
    functionName: Console::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/console.rs
    functionUses: 0
    functionsReached:
    - Console::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:68,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:68,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:69,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:69,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:72,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:72,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:73,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:77,1
    - Dst: Result::read_volatile_from
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:77,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:80,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:80,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:81,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:81,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:83,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:77,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:87,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:88,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:88,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:87,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 94
    functionName: RngEpollHandler::process_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 1
    functionsReached:
    - translate_gva
    - map_err
    - addr
    - Err
    - bool::pop_descriptor_chain
    - Result::next
    - as_deref
    - bool::add_used
    - Result::read_volatile_from
    - Result::head_index
    - len
    - Result::memory
    - Option::ok_or
    - is_write_only
    - memory
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn process_queue(&mut self) -> result::Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:97,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:98,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:97,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: RngEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: fn signal_used_queue(&self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:110,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:111,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:111,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:112,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 15
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: RngEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - run
    - add_event
    - EpollHelper::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:127,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:127,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:128,1
    - Dst: RngEpollHandler::process_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:130,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:130,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:131,1
    - Dst: RngEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:134,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:134,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:135,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:140,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:140,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 146
      start: 119
    functionDepth: 8
    functionLinenumber: 119
    functionLinenumberEnd: 146
    functionName: RngEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - RngEpollHandler::process_queue
    - RngEpollHandler::signal_used_queue
    - EpollHelperError::HandleEvent
    - map_err
    - Err
    - result::Result::map_err
    - read
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::open
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:174,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:189,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:192,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:193,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:193,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:193,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:197,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:197,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:198,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 6
    argNames:
    - id
    - path
    - iommu
    - seccomp_action
    - exit_evt
    - state
    argTypes:
    - String
    - '&str'
    - bool
    - SeccompAction
    - EventFd
    - Option<RngState>
    constantsTouched: []
    func_position:
      end: 205
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 205
    functionName: Rng::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - File::open
    - Arc::new
    - Barrier::new
    - AtomicBool::new
    - Some
    - to_vec
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,path: &str,iommu: bool,seccomp_action: SeccompAction,exit_evt:
      EventFd,state: Option<RngState>,) -> io::Result<Rng>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: Rng::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: RngState
    signature: fn state(&self) -> RngState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: Rng::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:222,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:224,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 8
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: Rng::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Rng::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Rng::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Rng::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Rng::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:253,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:253,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:254,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:256,1
    - Dst: Vec::try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:257,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:257,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:262,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:272,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:275,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:276,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:277,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:278,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:284,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:284,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:284,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:287,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:289,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:290,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 68
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 293
      start: 247
    functionDepth: 18
    functionLinenumber: 247
    functionLinenumberEnd: 293
    functionName: Rng::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - Vec::try_clone
    - activate
    - usize::remove
    - Vec::new
    - as_ref
    - Some
    - std::io::Result::map_err
    - event_monitor::event
    - Option::run
    - Err
    - dup_eventfds
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - clone
    - thread_helper::spawn_virtio_thread
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:296,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 14
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: Rng::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Rng::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - set_access_platform
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 16
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Rng::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 14
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: Rng::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: Rng::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:322,1
    - Dst: Rng::state
      Src: /src/cloud-hypervisor/virtio-devices/src/rng.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 8
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: Rng::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/rng.rs
    functionUses: 0
    functionsReached:
    - Rng::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:169,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:169,1
    - Dst: Request::parse
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:170,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:170,1
    - Dst: sync_all
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:172,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:181,1
    - Dst: Result::write_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:181,1
    - Dst: size_of::<VirtioPmemResp>
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:182,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:200,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:201,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:201,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:200,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 167
    functionDepth: 5
    functionLinenumber: 167
    functionLinenumberEnd: 207
    functionName: PmemEpollHandler::process_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 1
    functionsReached:
    - sync_all
    - Request::parse
    - map_err
    - size_of::<VirtioPmemResp>
    - Result::write_obj
    - pop_descriptor_chain
    - add_used
    - Result::head_index
    - memory
    - Result::memory
    - as_deref
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn process_queue(&mut self) -> result::Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:210,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:211,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:210,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: PmemEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: fn signal_used_queue(&self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:223,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:224,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:224,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:225,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 15
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: PmemEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - run
    - add_event
    - EpollHelper::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:240,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:240,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:241,1
    - Dst: PmemEpollHandler::process_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:244,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:244,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:245,1
    - Dst: PmemEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:249,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:249,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:250,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:255,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:255,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 261
      start: 232
    functionDepth: 8
    functionLinenumber: 232
    functionLinenumberEnd: 261
    functionName: PmemEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - EpollHelperError::HandleEvent
    - map_err
    - PmemEpollHandler::signal_used_queue
    - Err
    - result::Result::map_err
    - read
    - PmemEpollHandler::process_queue
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:303,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:303,1
    - Dst: size
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:304,1
    - Dst: to_le
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:304,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:315,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:318,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:319,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:319,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:319,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:323,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:323,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:324,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 8
    argNames:
    - id
    - disk
    - addr
    - mapping
    - iommu
    - seccomp_action
    - exit_evt
    - state
    argTypes:
    - String
    - File
    - GuestAddress
    - UserspaceMapping
    - bool
    - SeccompAction
    - EventFd
    - Option<PmemState>
    constantsTouched: []
    func_position:
      end: 333
      start: 283
    functionDepth: 5
    functionLinenumber: 283
    functionLinenumberEnd: 333
    functionName: Pmem::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 2
    functionsReached:
    - size
    - Default::default
    - to_le
    - Arc::new
    - u64::raw_value
    - Barrier::new
    - AtomicBool::new
    - Some
    - to_vec
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,disk: File,addr: GuestAddress,mapping: UserspaceMapping,iommu:
      bool,seccomp_action: SeccompAction,exit_evt: EventFd,state: Option<PmemState>,)
      -> io::Result<Pmem>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: Pmem::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PmemState
    signature: fn state(&self) -> PmemState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: Pmem::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:351,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:353,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 8
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Pmem::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: Pmem::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: Pmem::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Pmem::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: Pmem::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pmem::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:377,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Pmem::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - as_slice
    - Pmem::read_config_from_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:386,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:386,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:387,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:388,1
    - Dst: ApiResult::try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:389,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:389,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:394,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:404,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:407,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:408,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:409,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:411,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:417,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:417,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:417,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:420,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:422,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:423,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 68
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 426
      start: 380
    functionDepth: 18
    functionLinenumber: 380
    functionLinenumberEnd: 426
    functionName: Pmem::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - activate
    - usize::remove
    - Vec::new
    - as_ref
    - Some
    - std::io::Result::map_err
    - event_monitor::event
    - Option::run
    - Err
    - dup_eventfds
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - ApiResult::try_clone
    - clone
    - thread_helper::spawn_virtio_thread
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:429,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 14
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: Pmem::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: Pmem::userspace_mappings
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn userspace_mappings(&self) -> Vec<UserspaceMapping>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: Pmem::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - set_access_platform
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 16
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: Pmem::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 14
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: Pmem::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Pmem::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:459,1
    - Dst: Pmem::state
      Src: /src/cloud-hypervisor/virtio-devices/src/pmem.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 8
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Pmem::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
    functionUses: 0
    functionsReached:
    - Pmem::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_filters::get_seccomp_filter
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:29,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:29,1
    - Dst: '&EventFd::try_clone'
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:32,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:32,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:35,1
    - Dst: thread::Builder::new
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:37,1
    - Dst: Result::name
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:37,1
    - Dst: Result::to_string
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:38,1
    - Dst: Result::spawn
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:37,1
    - Dst: Result::is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:40,1
    - Dst: seccompiler::apply_filter
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:41,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:44,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:44,1
    - Dst: std::panic::catch_unwind
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:47,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:47,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:50,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:50,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:55,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:55,1
    - Dst: io::Result::map
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:37,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:60,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:37,1
    - Dst: ActivateError::ThreadSpawn
      Src: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 6
    argNames:
    - name
    - seccomp_action
    - thread_type
    - epoll_threads
    - exit_evt
    - f
    argTypes:
    - '&str'
    - '&SeccompAction'
    - Thread
    - '&mut Vec<JoinHandle<()>>'
    - '&EventFd'
    - F
    constantsTouched: []
    func_position:
      end: 65
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 65
    functionName: spawn_virtio_thread
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs
    functionUses: 12
    functionsReached:
    - Result::is_empty
    - seccompiler::apply_filter
    - Result::name
    - ActivateError::ThreadSpawn
    - Self::map_err
    - std::io::Result::map_err
    - push
    - ok
    - std::panic::catch_unwind
    - Result::map_err
    - seccomp_filters::get_seccomp_filter
    - Result::to_string
    - Result::spawn
    - '&EventFd::try_clone'
    - thread::Builder::new
    - std::panic::AssertUnwindSafe
    - io::Result::map
    - write
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn spawn_virtio_thread<F>(name: &str,seccomp_action: &SeccompAction,thread_type:
      Thread,epoll_threads: &mut Vec<JoinHandle<()>>,exit_evt: &EventFd,f: F,) ->
      Result<(), ActivateError>whereF: FnOnce() -> std::result::Result<(), EpollHelperError>,F:
      Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_allocator::page_size::get_page_size
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:112,1
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: PartiallyBalloonedPage::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 1
    functionsReached:
    - vm_allocator::page_size::get_page_size
    - div_ceil
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: PartiallyBalloonedPage::pfn_match
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn pfn_match(&self, addr: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:130,1
    - Dst: all
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: PartiallyBalloonedPage::bitmap_full
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - iter
    - all
    linkageType: ''
    returnType: bool
    signature: fn bitmap_full(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: PartiallyBalloonedPage::set_bit
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_bit(&mut self, addr: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: div_ceil
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: PartiallyBalloonedPage::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - div_ceil
    linkageType: ''
    returnType: void
    signature: fn reset(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:167,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:167,1
    - Dst: Error::FailedSignal
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - int_type
    argTypes:
    - VirtioInterruptType
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: BalloonEpollHandler::signal
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 2
    functionsReached:
    - trigger
    - Error::FailedSignal
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn signal(&self, int_type: VirtioInterruptType) -> result::Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::get_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:179,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:179,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:186,1
    - Dst: '&[T]::ptr_guard_mut'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:186,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:186,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:189,1
    - Dst: Error::MadviseFail
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:189,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:189,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - memory
    - range_base
    - range_len
    - advice
    argTypes:
    - '&GuestMemoryMmap'
    - GuestAddress
    - usize
    - libc::c_int
    constantsTouched: []
    func_position:
      end: 192
      start: 173
    functionDepth: 9
    functionLinenumber: 173
    functionLinenumberEnd: 192
    functionName: BalloonEpollHandler::advise_memory_range
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - Error::MadviseFail
    - as_ptr
    - map_err
    - libc::madvise
    - Result::get_slice
    - Err
    - '&[T]::ptr_guard_mut'
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn advise_memory_range(memory: &GuestMemoryMmap,range_base: GuestAddress,range_len:
      usize,advice: libc::c_int,) -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::find_region
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:199,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:199,1
    - Dst: Error::GuestMemory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:199,1
    - Dst: GuestMemoryError::InvalidGuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:200,1
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:202,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:203,1
    - Dst: libc::fallocate64
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:206,1
    - Dst: file
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:207,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:207,1
    - Dst: start
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:209,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:215,1
    - Dst: Error::FallocateFail
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:215,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:215,1
    - Dst: Self::advise_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - memory
    - range_base
    - range_len
    argTypes:
    - '&GuestMemoryMmap'
    - GuestAddress
    - usize
    constantsTouched: []
    func_position:
      end: 220
      start: 194
    functionDepth: 10
    functionLinenumber: 194
    functionLinenumberEnd: 220
    functionName: BalloonEpollHandler::release_memory_range
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - Result::find_region
    - Error::FallocateFail
    - GuestMemoryError::InvalidGuestAddress
    - Result::start_addr
    - as_raw_fd
    - Err
    - Self::advise_memory_range
    - Result::file_offset
    - file
    - Error::GuestMemory
    - start
    - libc::fallocate64
    - Option::ok_or
    - io::Error::last_os_error
    linkageType: ''
    returnType: result::Result
    signature: 'fn release_memory_range(memory: &GuestMemoryMmap,range_base: GuestAddress,range_len:
      usize,) -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:227,1
    - Dst: vm_allocator::page_size::get_page_size
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:230,1
    - Dst: Self::release_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:232,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::is_none'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:235,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:236,1
    - Dst: PartiallyBalloonedPage::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:236,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::as_ref'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:239,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:239,1
    - Dst: pfn_match
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:239,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::as_mut'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:241,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:241,1
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:241,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::as_mut'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:242,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:242,1
    - Dst: vm_allocator::page_size::align_page_size_down
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:242,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::as_mut'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:245,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:245,1
    - Dst: set_bit
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:245,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::as_ref'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:246,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:246,1
    - Dst: bitmap_full
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:246,1
    - Dst: Self::release_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:247,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:249,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::as_ref'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:249,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:249,1
    - Dst: '&mut Option<PartiallyBalloonedPage>::as_mut'
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:253,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:253,1
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:253,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 83
    argCount: 3
    argNames:
    - pbp
    - memory
    - pfn
    argTypes:
    - '&mut Option<PartiallyBalloonedPage>'
    - '&GuestMemoryMmap'
    - u32
    constantsTouched: []
    func_position:
      end: 257
      start: 222
    functionDepth: 11
    functionLinenumber: 222
    functionLinenumberEnd: 257
    functionName: BalloonEpollHandler::release_memory_range_4k
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - reset
    - bitmap_full
    - vm_memory::GuestAddress
    - vm_allocator::page_size::get_page_size
    - pfn_match
    - vm_allocator::page_size::align_page_size_down
    - set_bit
    - '&mut Option<PartiallyBalloonedPage>::as_mut'
    - '&mut Option<PartiallyBalloonedPage>::as_ref'
    - PartiallyBalloonedPage::new
    - '&mut Option<PartiallyBalloonedPage>::is_none'
    - unwrap
    - Self::release_memory_range
    - Some
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn release_memory_range_4k(pbp: &mut Option<PartiallyBalloonedPage>,memory:
      &GuestMemoryMmap,pfn: u32,) -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:262,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:262,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:264,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:264,1
    - Dst: size_of::<u32>
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:266,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:269,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:271,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:273,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:273,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:275,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:279,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:280,1
    - Dst: checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:280,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:280,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:281,1
    - Dst: Result::read_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:281,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:281,1
    - Dst: Self::release_memory_range_4k
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:289,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:289,1
    - Dst: vm_allocator::page_size::get_page_size
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:292,1
    - Dst: vm_allocator::page_size::align_page_size_down
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:293,1
    - Dst: Self::advise_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:295,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:296,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:297,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:302,1
    - Dst: Error::InvalidQueueIndex
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:302,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:306,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:307,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:307,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:307,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:306,1
    - Dst: BalloonEpollHandler::signal
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:313,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:313,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:315,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 105
    argCount: 1
    argNames:
    - queue_index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 317
      start: 259
    functionDepth: 12
    functionLinenumber: 259
    functionLinenumberEnd: 317
    functionName: BalloonEpollHandler::process_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 1
    functionsReached:
    - map_err
    - vm_allocator::page_size::align_page_size_down
    - addr
    - pop_descriptor_chain
    - Result::next
    - Result::read_obj
    - Result::memory
    - BalloonEpollHandler::signal
    - is_write_only
    - VirtioInterruptType::Queue
    - checked_add
    - memory
    - Result::head_index
    - Ok
    - is_multiple_of
    - Self::release_memory_range_4k
    - len
    - vm_memory::GuestAddress
    - add_used
    - Err
    - Self::advise_memory_range
    - size_of::<u32>
    - unwrap
    - Option::ok_or
    - vm_allocator::page_size::get_page_size
    - Error::InvalidQueueIndex
    linkageType: ''
    returnType: result::Result
    signature: 'fn process_queue(&mut self, queue_index: usize) -> result::Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:322,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:322,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:325,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:326,1
    - Dst: Self::release_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:327,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:327,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:327,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:327,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:330,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:331,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:331,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:330,1
    - Dst: BalloonEpollHandler::signal
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:337,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:337,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 1
    argNames:
    - queue_index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 341
      start: 319
    functionDepth: 11
    functionLinenumber: 319
    functionLinenumberEnd: 341
    functionName: BalloonEpollHandler::process_reporting_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 1
    functionsReached:
    - map_err
    - addr
    - add_used
    - pop_descriptor_chain
    - Result::head_index
    - Result::next
    - len
    - Self::release_memory_range
    - Result::memory
    - BalloonEpollHandler::signal
    - VirtioInterruptType::Queue
    - memory
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn process_reporting_queue(&mut self, queue_index: usize) -> result::Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:348,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:349,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:349,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:350,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:350,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:351,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:352,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:352,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:354,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 357
      start: 343
    functionDepth: 15
    functionLinenumber: 343
    functionLinenumberEnd: 357
    functionName: BalloonEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - run
    - as_ref
    - EpollHelper::new
    - Ok
    - as_raw_fd
    - add_event
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:369,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:369,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:370,1
    - Dst: BalloonEpollHandler::process_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:374,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:374,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:375,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:381,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:381,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:382,1
    - Dst: BalloonEpollHandler::process_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:386,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:386,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:387,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:393,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:394,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:394,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:395,1
    - Dst: BalloonEpollHandler::process_reporting_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:399,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:399,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:400,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:405,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:405,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:411,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:411,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:417,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 69
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 418
      start: 361
    functionDepth: 9
    functionLinenumber: 361
    functionLinenumberEnd: 418
    functionName: BalloonEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - BalloonEpollHandler::process_queue
    - EpollHelperError::HandleEvent
    - map_err
    - as_ref
    - Err
    - result::Result::map_err
    - read
    - BalloonEpollHandler::process_reporting_queue
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:470,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:477,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:480,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:485,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:485,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:485,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:488,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:488,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 7
    argNames:
    - id
    - size
    - deflate_on_oom
    - free_page_reporting
    - seccomp_action
    - exit_evt
    - state
    argTypes:
    - String
    - u64
    - bool
    - bool
    - SeccompAction
    - EventFd
    - Option<BalloonState>
    constantsTouched: []
    func_position:
      end: 497
      start: 440
    functionDepth: 6
    functionLinenumber: 440
    functionLinenumberEnd: 497
    functionName: Balloon::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - push
    - Arc::new
    - Barrier::new
    - AtomicBool::new
    - Some
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,size: u64,deflate_on_oom: bool,free_page_reporting:
      bool,seccomp_action: SeccompAction,exit_evt: EventFd,state: Option<BalloonState>,)
      -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:503,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:503,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: Balloon::resize
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - trigger
    - map_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn resize(&mut self, size: u64) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: Balloon::get_actual
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn get_actual(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: Balloon::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BalloonState
    signature: fn state(&self) -> BalloonState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 527
    functionName: Balloon::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:532,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:534,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 8
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: Balloon::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 543
    functionName: Balloon::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 547
    functionName: Balloon::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 551
    functionName: Balloon::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 555
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 555
    functionName: Balloon::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Balloon::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:558,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 559
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 559
    functionName: Balloon::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - Balloon::read_config_from_slice
    - as_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:563,1
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:572,1
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:573,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:574,1
    - Dst: Result::checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:586,1
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:586,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:588,1
    - Dst: write_all
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:589,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 591
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 591
    functionName: Balloon::write_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - std::cmp::min
    - Result::checked_add
    - as_mut_slice
    - unwrap
    - String::len
    - Vec::len
    - write_all
    linkageType: ''
    returnType: void
    signature: 'fn write_config(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:599,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:599,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:600,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:602,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:603,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:604,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:606,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:607,1
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:610,1
    - Dst: usize::is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:610,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:611,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:612,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:613,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:618,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:618,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:632,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:633,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:634,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:636,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:642,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:642,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:642,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:644,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:646,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 78
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 648
      start: 593
    functionDepth: 18
    functionLinenumber: 593
    functionLinenumberEnd: 648
    functionName: Balloon::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - activate
    - usize::is_empty
    - thread_helper::spawn_virtio_thread
    - usize::remove
    - Vec::new
    - Some
    - as_ref
    - event_monitor::event
    - Option::run
    - clone
    - dup_eventfds
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - Result::push
    - feature_acked
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:651,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 14
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: Balloon::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 658
    functionDepth: 16
    functionLinenumber: 658
    functionLinenumberEnd: 660
    functionName: Balloon::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 662
    functionDepth: 14
    functionLinenumber: 662
    functionLinenumberEnd: 664
    functionName: Balloon::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 670
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 670
    functionName: Balloon::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:673,1
    - Dst: Balloon::state
      Src: /src/cloud-hypervisor/virtio-devices/src/balloon.rs:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 672
    functionDepth: 8
    functionLinenumber: 672
    functionLinenumberEnd: 674
    functionName: Balloon::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
    functionUses: 0
    functionsReached:
    - Balloon::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:68,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:69,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:68,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - queue_index
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: NetCtrlEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn signal_used_queue(&self, queue_index: u16) -> result::Result<(),
      DeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:81,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:82,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:82,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:83,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 15
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: NetCtrlEpollHandler::run_ctrl
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - run
    - add_event
    - EpollHelper::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn run_ctrl(&mut self,paused: &AtomicBool,paused_sync: &Barrier,)
      -> std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:98,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:99,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:99,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:100,1
    - Dst: process
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:104,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:106,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:108,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:104,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:111,1
    - Dst: needs_notification
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:115,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:115,1
    - Dst: NetCtrlEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:117,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:117,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:118,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:125,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:125,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:132,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:132,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 139
      start: 90
    functionDepth: 8
    functionLinenumber: 90
    functionLinenumberEnd: 139
    functionName: NetCtrlEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::deref
    - EpollHelperError::HandleEvent
    - map_err
    - NetCtrlEpollHandler::signal_used_queue
    - Err
    - process
    - result::Result::map_err
    - read
    - as_deref
    - needs_notification
    - memory
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:186,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:187,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:186,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - queue_index
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: NetEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 2
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn signal_used_queue(&self, queue_index: u16) -> result::Result<(),
      DeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:196,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:202,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:202,1
    - Dst: u64::is_blocked
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:206,1
    - Dst: net_util::register_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:210,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:211,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:212,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:214,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:210,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 194
    functionDepth: 8
    functionLinenumber: 194
    functionLinenumberEnd: 221
    functionName: NetEpollHandler::handle_rx_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 1
    functionsReached:
    - is_some_and
    - as_ref
    - std::result::Result::map_err
    - u64::is_blocked
    - net_util::register_listener
    - u64::from
    - unwrap
    - read
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn handle_rx_event(&mut self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_tx
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:224,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:226,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:224,1
    - Dst: NetEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:230,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 223
    functionDepth: 10
    functionLinenumber: 223
    functionLinenumberEnd: 236
    functionName: NetEpollHandler::process_tx
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 2
    functionsReached:
    - map_err
    - process_tx
    - NetEpollHandler::signal_used_queue
    - memory
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn process_tx(&mut self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:239,1
    - Dst: is_some_and
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:239,1
    - Dst: u64::is_blocked
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:243,1
    - Dst: NetEpollHandler::process_tx
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:246,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 11
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: NetEpollHandler::handle_tx_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 1
    functionsReached:
    - NetEpollHandler::process_tx
    - is_some_and
    - as_ref
    - u64::is_blocked
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn handle_tx_event(&mut self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:253,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:255,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:253,1
    - Dst: NetEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:259,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 10
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: NetEpollHandler::handle_rx_tap_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 1
    functionsReached:
    - map_err
    - process_rx
    - NetEpollHandler::signal_used_queue
    - memory
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: fn handle_rx_tap_event(&mut self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:272,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:273,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:273,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:274,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:274,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:276,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:276,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:279,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:279,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:282,1
    - Dst: used_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:285,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:288,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:285,1
    - Dst: avail_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:290,1
    - Dst: GuestMemoryMmap::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:293,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:290,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:296,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:296,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:302,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:302,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:304,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:306,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 94
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 307
      start: 267
    functionDepth: 15
    functionLinenumber: 267
    functionLinenumberEnd: 307
    functionName: NetEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - GuestMemoryMmap::deref
    - run
    - map_err
    - Some
    - used_idx
    - EpollHelper::new
    - Ok
    - as_raw_fd
    - avail_idx
    - memory
    - add_event
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetEpollHandler::handle_rx_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:320,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:320,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:321,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:326,1
    - Dst: NetEpollHandler::handle_tx_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:330,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:330,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:331,1
    - Dst: NetEpollHandler::handle_tx_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:335,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:335,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:336,1
    - Dst: NetEpollHandler::handle_rx_tap_event
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:342,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:342,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:343,1
    - Dst: event_handler
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:350,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:350,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:351,1
    - Dst: net_util::register_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:357,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:358,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:359,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:361,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:357,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:364,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:372,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:372,1
    - Dst: event_handler
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:381,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:381,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:382,1
    - Dst: NetEpollHandler::process_tx
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:388,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:388,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:389,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:392,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:392,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:398,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:398,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:403,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 131
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 404
      start: 311
    functionDepth: 9
    functionLinenumber: 311
    functionLinenumberEnd: 404
    functionName: NetEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - NetEpollHandler::process_tx
    - NetEpollHandler::handle_rx_tap_event
    - event_handler
    - EpollHelperError::HandleEvent
    - map_err
    - NetEpollHandler::handle_rx_event
    - std::result::Result::map_err
    - Err
    - net_util::register_listener
    - u64::from
    - NetEpollHandler::handle_tx_event
    - result::Result::map_err
    - unwrap
    - read
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mtu
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:447,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:447,1
    - Dst: VirtioNetConfig::default
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:492,1
    - Dst: net_util::build_net_config_space
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:494,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:498,1
    - Dst: net_util::build_net_config_space_with_mq
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:502,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:505,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:519,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:525,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:525,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:525,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:527,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:527,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:528,1
    - Dst: NetCounters::default
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:534,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 97
    argCount: 13
    argNames:
    - id
    - taps
    - guest_mac
    - iommu
    - num_queues
    - queue_size
    - seccomp_action
    - rate_limiter_config
    - exit_evt
    - state
    - offload_tso
    - offload_ufo
    - offload_csum
    argTypes:
    - String
    - Vec<Tap>
    - Option<MacAddr>
    - bool
    - usize
    - u16
    - SeccompAction
    - Option<RateLimiterConfig>
    - EventFd
    - Option<NetState>
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 539
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 539
    functionName: Net::new_with_tap
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - mtu
    - VirtioNetConfig::default
    - map_err
    - Default::default
    - net_util::build_net_config_space
    - Arc::new
    - net_util::build_net_config_space_with_mq
    - NetCounters::default
    - Barrier::new
    - AtomicBool::new
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new_with_tap(id: String,taps: Vec<Tap>,guest_mac: Option<MacAddr>,iommu:
      bool,num_queues: usize,queue_size: u16,seccomp_action: SeccompAction,rate_limiter_config:
      Option<RateLimiterConfig>,exit_evt: EventFd,state: Option<NetState>,offload_tso:
      bool,offload_ufo: bool,offload_csum: bool,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::connect_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:85,1
    - Dst: set_protocol_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:102,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:127,1
    - Dst: Result::is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:129,1
    - Dst: VirtioNetConfig::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:151,1
    - Dst: net_util::build_net_config_space
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:152,1
    - Dst: negotiate_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:161,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:164,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:165,1
    - Dst: get_queue_num
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:165,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:165,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:176,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:196,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:204,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:211,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:211,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:211,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:213,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:213,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:214,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:217,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:217,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:217,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:222,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 150
    argCount: 12
    argNames:
    - id
    - mac_addr
    - mtu
    - vu_cfg
    - server
    - seccomp_action
    - exit_evt
    - iommu
    - state
    - offload_tso
    - offload_ufo
    - offload_csum
    argTypes:
    - String
    - MacAddr
    - Option<u16>
    - VhostUserConfig
    - bool
    - SeccompAction
    - EventFd
    - bool
    - Option<State>
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 232
      start: 68
    functionDepth: 7
    functionLinenumber: 68
    functionLinenumberEnd: 232
    functionName: Net::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 1
    functionsReached:
    - Result::is_some
    - VirtioNetConfig::default
    - VhostUserHandle::connect_vhost_user
    - negotiate_features_vhost_user
    - map_err
    - net_util::build_net_config_space
    - Default::default
    - Arc::new
    - set_protocol_features_vhost_user
    - Err
    - Mutex::new
    - Barrier::new
    - AtomicBool::new
    - get_queue_num
    - socket_handle
    - bits
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,mac_addr: MacAddr,mtu: Option<u16>,vu_cfg: VhostUserConfig,server:
      bool,seccomp_action: SeccompAction,exit_evt: EventFd,iommu: bool,state: Option<State>,offload_tso:
      bool,offload_ufo: bool,offload_csum: bool,) -> Result<Net>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:607,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:608,1
    - Dst: Result::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:610,1
    - Dst: libc::dup
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:613,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:615,1
    - Dst: Error::DuplicateTapFd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:615,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:615,1
    - Dst: Tap::from_tap_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:617,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:617,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:618,1
    - Dst: set_mtu
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:624,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:624,1
    - Dst: Self::new_with_tap
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 13
    argNames:
    - id
    - fds
    - guest_mac
    - mtu
    - iommu
    - queue_size
    - seccomp_action
    - rate_limiter_config
    - exit_evt
    - state
    - offload_tso
    - offload_ufo
    - offload_csum
    argTypes:
    - String
    - '&[RawFd]'
    - Option<MacAddr>
    - Option<u16>
    - bool
    - u16
    - SeccompAction
    - Option<RateLimiterConfig>
    - EventFd
    - Option<NetState>
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 642
      start: 592
    functionDepth: 8
    functionLinenumber: 592
    functionLinenumberEnd: 642
    functionName: Net::from_tap_fds
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 1
    functionsReached:
    - Result::push
    - Self::new_with_tap
    - libc::dup
    - std::io::Error::last_os_error
    - Vec::new
    - set_mtu
    - Tap::from_tap_fd
    - map_err
    - Result::len
    - Err
    - Result::map_err
    - Error::DuplicateTapFd
    - Result::iter
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_tap_fds(id: String,fds: &[RawFd],guest_mac: Option<MacAddr>,mtu:
      Option<u16>,iommu: bool,queue_size: u16,seccomp_action: SeccompAction,rate_limiter_config:
      Option<RateLimiterConfig>,exit_evt: EventFd,state: Option<NetState>,offload_tso:
      bool,offload_ufo: bool,offload_csum: bool,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: Net::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: State
    signature: fn state(&self) -> State
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 656
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 656
    functionName: Net::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:247,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:248,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:253,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:255,1
    - Dst: Vec::join
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:256,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:261,1
    - Dst: Vec::join
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 246
    functionDepth: 8
    functionLinenumber: 246
    functionLinenumberEnd: 266
    functionName: Net::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - Vec::join
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: Net::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Net::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: Net::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Net::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Net::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:291,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: Net::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - as_slice
    - Net::read_config_from_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:300,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:300,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:301,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:301,1
    - Dst: usize::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:303,1
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:304,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:304,1
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:305,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:305,1
    - Dst: usize::is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:305,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:307,1
    - Dst: set_event_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:309,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:311,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:314,1
    - Dst: CtrlQueue::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:317,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:317,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:321,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:325,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:329,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:329,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:329,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:330,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:332,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:333,1
    - Dst: run_ctrl
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:339,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:339,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:339,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:341,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:341,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:352,1
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:354,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:364,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:365,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:367,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:368,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:374,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:374,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:374,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:376,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:376,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 137
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 379
      start: 294
    functionDepth: 18
    functionLinenumber: 294
    functionLinenumberEnd: 379
    functionName: Net::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Option::run
    - usize::is_multiple_of
    - feature_acked
    - Ok
    - activate
    - Vec::new
    - Arc::new
    - into
    - Barrier::new
    - GuestMemoryMmap::clone
    - CtrlQueue::new
    - dup_eventfds
    - set_event_idx
    - unwrap
    - clone
    - run_ctrl
    - usize::remove
    - remove
    - Arc<dyn VirtioInterrupt>::clone
    - Some
    - thread_helper::spawn_virtio_thread
    - usize::len
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:383,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:383,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:384,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:384,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:388,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:388,1
    - Dst: reset_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:388,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:394,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:396,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:399,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:402,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:402,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 381
    functionDepth: 14
    functionLinenumber: 381
    functionLinenumberEnd: 403
    functionName: Net::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - is_some
    - event_monitor::event
    - ok
    - take
    - lock
    - resume
    - reset_vhost_user
    - unwrap
    - Some
    - write
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:834,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:836,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:838,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:838,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:840,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:842,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:842,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:844,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:846,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:846,1
    - Dst: Counters::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:848,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:850,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:850,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 833
    functionDepth: 8
    functionLinenumber: 833
    functionLinenumberEnd: 854
    functionName: Net::counters
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - load
    - Counters::insert
    - Some
    - std::num::Wrapping
    linkageType: ''
    returnType: Option
    signature: fn counters(&self) -> Option<HashMap<&'static str, Wrapping<u64>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/net.rs:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: Net::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/net.rs
    functionUses: 0
    functionsReached:
    - set_access_platform
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:419,1
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 16
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: Net::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:424,1
    - Dst: std::thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:427,1
    - Dst: unpark
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:427,1
    - Dst: std::thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:431,1
    - Dst: unpark
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:431,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 423
    functionDepth: 14
    functionLinenumber: 423
    functionLinenumberEnd: 435
    functionName: Net::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - resume
    - std::thread
    - unpark
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: Net::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:444,1
    - Dst: Net::state
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: Net::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - snapshot
    - Net::state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:83,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:83,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:84,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:84,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:86,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:86,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:87,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:90,1
    - Dst: Result::write_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:90,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:92,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:90,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:96,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:96,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:96,1
    - Dst: timerfd_setup
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:100,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:100,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:102,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:102,1
    - Dst: replace
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:102,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:102,1
    - Dst: bool::add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:104,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:105,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:105,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:105,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:104,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 80
    functionDepth: 13
    functionLinenumber: 80
    functionLinenumberEnd: 111
    functionName: WatchdogEpollHandler::process_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 1
    functionsReached:
    - Instant::now
    - timerfd_setup
    - map_err
    - addr
    - Result::next
    - Result::memory
    - is_write_only
    - memory
    - Result::head_index
    - Ok
    - bool::pop_descriptor_chain
    - replace
    - len
    - Err
    - lock
    - unwrap
    - Option::ok_or
    - is_none
    - Result::write_obj
    - bool::add_used
    - Result::map_err
    linkageType: ''
    returnType: result::Result
    signature: fn process_queue(&mut self) -> result::Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:114,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:115,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:114,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: WatchdogEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: fn signal_used_queue(&self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:127,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:128,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:128,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:129,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:129,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:130,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 15
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: WatchdogEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - run
    - add_event
    - EpollHelper::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:145,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:145,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:146,1
    - Dst: WatchdogEpollHandler::process_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:149,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:149,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:150,1
    - Dst: WatchdogEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:153,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:153,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:154,1
    - Dst: read_exact
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:162,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:162,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:163,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:166,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:166,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:166,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:167,1
    - Dst: duration_since
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:168,1
    - Dst: as_secs
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:168,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:171,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:171,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:176,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:176,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 71
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 182
      start: 137
    functionDepth: 13
    functionLinenumber: 137
    functionLinenumberEnd: 182
    functionName: WatchdogEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - EpollHelperError::HandleEvent
    - map_err
    - duration_since
    - as_ref
    - ok
    - lock
    - as_secs
    - Err
    - Ok
    - result::Result::map_err
    - WatchdogEpollHandler::process_queue
    - read
    - unwrap
    - read_exact
    - WatchdogEpollHandler::signal_used_queue
    - write
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:220,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:220,1
    - Dst: timerfd_create
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:228,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:228,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:233,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:235,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:238,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:239,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:239,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:239,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:243,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:243,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:244,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:249,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 5
    argNames:
    - id
    - reset_evt
    - seccomp_action
    - exit_evt
    - state
    argTypes:
    - String
    - EventFd
    - SeccompAction
    - EventFd
    - Option<WatchdogState>
    constantsTouched: []
    func_position:
      end: 253
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 253
    functionName: Watchdog::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 1
    functionsReached:
    - Instant::now
    - Default::default
    - File::from_raw_fd
    - timerfd_create
    - Arc::new
    - Mutex::new
    - Result::map_err
    - Barrier::new
    - AtomicBool::new
    - Some
    - to_vec
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,reset_evt: EventFd,seccomp_action: SeccompAction,exit_evt:
      EventFd,state: Option<WatchdogState>,) -> io::Result<Watchdog>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:259,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:259,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 13
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: Watchdog::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 1
    functionsReached:
    - lock
    - is_some
    - unwrap
    linkageType: ''
    returnType: WatchdogState
    signature: fn state(&self) -> WatchdogState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: Watchdog::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:271,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:273,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 8
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: Watchdog::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::timerfd_create
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:281,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:283,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:283,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: timerfd_create
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 2
    functionsReached:
    - libc::timerfd_create
    - io::Error::last_os_error
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: fn timerfd_create() -> Result<RawFd, io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::timerfd_settime
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:303,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:303,1
    - Dst: std::ptr::null_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:303,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:306,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:306,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - timer
    - secs
    argTypes:
    - '&File'
    - i64
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: timerfd_setup
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 3
    functionsReached:
    - std::ptr::null_mut
    - libc::timerfd_settime
    - Err
    - as_raw_fd
    - io::Error::last_os_error
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn timerfd_setup(timer: &File, secs: i64) -> Result<(), io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Watchdog::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: Watchdog::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: Watchdog::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: Watchdog::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:335,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:335,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:336,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:338,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:338,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:343,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:343,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:348,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:358,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:362,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:363,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:364,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:366,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:372,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:372,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:372,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:375,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:377,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 68
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 379
      start: 329
    functionDepth: 18
    functionLinenumber: 329
    functionLinenumberEnd: 379
    functionName: Watchdog::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - activate
    - map_err
    - usize::remove
    - Vec::new
    - as_ref
    - Some
    - event_monitor::event
    - try_clone
    - Option::run
    - dup_eventfds
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - clone
    - thread_helper::spawn_virtio_thread
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:382,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 14
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: Watchdog::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: timerfd_setup
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:391,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:391,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:392,1
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 16
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: Watchdog::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - pause
    - Result::map_err
    - timerfd_setup
    - MigratableError::Pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:398,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:398,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:398,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:400,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:400,1
    - Dst: replace
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:400,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:400,1
    - Dst: timerfd_setup
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:401,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:401,1
    - Dst: MigratableError::Resume
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:402,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 13
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: Watchdog::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - is_some
    - Instant::now
    - MigratableError::Resume
    - timerfd_setup
    - lock
    - Result::map_err
    - replace
    - resume
    - unwrap
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: Watchdog::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:414,1
    - Dst: Watchdog::state
      Src: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 14
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: Watchdog::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
    functionUses: 0
    functionsReached:
    - Watchdog::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _int_type
    argTypes:
    - VirtioInterruptType
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: VirtioInterrupt::notifier
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, _int_type: VirtioInterruptType) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: VirtioDevice::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: VirtioDevice::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _offset
    - _data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: VirtioDevice::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, _offset: u64, _data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _offset
    - _data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: VirtioDevice::write_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn write_config(&mut self, _offset: u64, _data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: VirtioDevice::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: VirtioDevice::get_shm_regions
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn get_shm_regions(&self) -> Option<VirtioSharedMemoryList>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _shm_regions
    argTypes:
    - VirtioSharedMemoryList
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: VirtioDevice::set_shm_regions
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn set_shm_regions(&mut self,_shm_regions: VirtioSharedMemoryList,)
      -> std::result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: VirtioDevice::shutdown
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn shutdown(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _region
    argTypes:
    - '&Arc<GuestRegionMmap>'
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: VirtioDevice::add_memory_region
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn add_memory_region(&mut self,_region: &Arc<GuestRegionMmap>,) ->
      std::result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: VirtioDevice::userspace_mappings
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: fn userspace_mappings(&self) -> Vec<UserspaceMapping>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: VirtioDevice::counters
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn counters(&self) -> Option<HashMap<&'static str, Wrapping<u64>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:148,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:149,1
    - Dst: Result::checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:160,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:160,1
    - Dst: String::write_all
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:161,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:161,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 3
    argNames:
    - config
    - offset
    - data
    argTypes:
    - '&[u8]'
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 164
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 164
    functionName: VirtioDevice::read_config_from_slice
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - std::cmp::min
    - String::write_all
    - Result::checked_add
    - unwrap
    - String::len
    - Vec::len
    linkageType: ''
    returnType: void
    signature: 'fn read_config_from_slice(&self, config: &[u8], offset: u64, mut data:
      &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: VirtioDevice::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, _access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - feature
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: VirtioCommon::feature_acked
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn feature_acked(&self, feature: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: VirtioCommon::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::len
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:226,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:226,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:232,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:235,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:235,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:239,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:241,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:241,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:245,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:249,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 2
    argNames:
    - queues
    - interrupt_cb
    argTypes:
    - '&[(usize, Queue, EventFd)]'
    - Arc<dyn VirtioInterrupt>
    constantsTouched: []
    func_position:
      end: 252
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 252
    functionName: VirtioCommon::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - EventFd::new
    - into
    - Err
    - Result::map_err
    - Ok
    - Some
    - usize::len
    linkageType: ''
    returnType: ActivateResult
    signature: 'pub fn activate(&mut self,queues: &[(usize, Queue, EventFd)],interrupt_cb:
      Arc<dyn VirtioInterrupt>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:256,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:256,1
    - Dst: VirtioCommon::resume
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:257,1
    - Dst: std::result::Result::ok
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:257,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:260,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:262,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:265,1
    - Dst: usize::drain
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:266,1
    - Dst: fmt::Result::join
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:267,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:274,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:274,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 254
    functionDepth: 17
    functionLinenumber: 254
    functionLinenumberEnd: 275
    functionName: VirtioCommon::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - is_some
    - VirtioCommon::resume
    - take
    - std::result::Result::ok
    - fmt::Result::join
    - unwrap
    - Some
    - usize::drain
    - write
    linkageType: ''
    returnType: Option
    signature: pub fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:279,1
    - Dst: usize::drain
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:280,1
    - Dst: fmt::Result::join
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: VirtioCommon::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - take
    - fmt::Result::join
    - usize::drain
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:290,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:290,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:290,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:290,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:291,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:291,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:291,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: VirtioCommon::dup_eventfds
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - try_clone
    - unwrap
    linkageType: ''
    returnType: (EventFd, EventFd)
    signature: pub fn dup_eventfds(&self) -> (EventFd, EventFd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: VirtioCommon::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:309,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:311,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:311,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:313,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:313,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:320,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:320,1
    - Dst: wait
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:320,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 304
    functionDepth: 16
    functionLinenumber: 304
    functionLinenumberEnd: 324
    functionName: VirtioCommon::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - store
    - Ok
    - unwrap
    - MigratableError::Pause
    - usize::into
    - wait
    - write
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:331,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:333,1
    - Dst: fmt::Result::thread
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:334,1
    - Dst: Vec::unpark
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:334,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/device.rs:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 326
    functionDepth: 16
    functionLinenumber: 326
    functionLinenumberEnd: 339
    functionName: VirtioCommon::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/device.rs
    functionUses: 1
    functionsReached:
    - iter
    - Vec::unpark
    - store
    - fmt::Result::thread
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _helper
    argTypes:
    - '&mut EpollHelper'
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: EpollHelperHandler::handle_timeout
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn handle_timeout(&mut self, _helper: &mut EpollHelper) -> Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _helper
    - _events
    argTypes:
    - '&mut EpollHelper'
    - '&[epoll::Event]'
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: EpollHelperHandler::event_list
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn event_list(&mut self,_helper: &mut EpollHelper,_events: &[epoll::Event],)
      -> Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::create
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:90,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:90,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:93,1
    - Dst: '&EventFd::try_clone'
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:96,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:96,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:100,1
    - Dst: '&EventFd::as_raw_fd'
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:100,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:101,1
    - Dst: '&EventFd::as_raw_fd'
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:101,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - kill_evt
    - pause_evt
    argTypes:
    - '&EventFd'
    - '&EventFd'
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 14
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: EpollHelper::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 17
    functionsReached:
    - std::io::Result::unwrap
    - map_err
    - '&EventFd::as_raw_fd'
    - epoll::create
    - File::from_raw_fd
    - Ok
    - '&EventFd::try_clone'
    - add_event
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn new(kill_evt: &EventFd,pause_evt: &EventFd,) -> std::result::Result<Self,
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::add_event_custom
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - id
    argTypes:
    - RawFd
    - u16
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 8
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: EpollHelper::add_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 0
    functionsReached:
    - EpollHelper::add_event_custom
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn add_event(&mut self, fd: RawFd, id: u16) -> std::result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:115,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:116,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:119,1
    - Dst: u32::into
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:119,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - id
    - evts
    argTypes:
    - RawFd
    - u16
    - epoll::Events
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 7
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: EpollHelper::add_event_custom
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 1
    functionsReached:
    - u32::into
    - map_err
    - epoll::ctl
    - epoll::Event::new
    - as_raw_fd
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn add_event_custom(&mut self,fd: RawFd,id: u16,evts: epoll::Events,)
      -> std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:130,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:131,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:134,1
    - Dst: u32::into
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:134,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - id
    - evts
    argTypes:
    - RawFd
    - u16
    - epoll::Events
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: EpollHelper::mod_event_custom
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 0
    functionsReached:
    - u32::into
    - map_err
    - epoll::ctl
    - epoll::Event::new
    - as_raw_fd
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn mod_event_custom(&mut self,fd: RawFd,id: u16,evts: epoll::Events,)
      -> std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:145,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:146,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:149,1
    - Dst: u32::into
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:149,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - id
    - evts
    argTypes:
    - RawFd
    - u16
    - epoll::Events
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 7
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: EpollHelper::del_event_custom
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 0
    functionsReached:
    - u32::into
    - map_err
    - epoll::ctl
    - epoll::Event::new
    - as_raw_fd
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn del_event_custom(&mut self,fd: RawFd,id: u16,evts: epoll::Events,)
      -> std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::run_with_timeout
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - paused
    - paused_sync
    - handler
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    - '&mut dyn EpollHelperHandler'
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 15
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: EpollHelper::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 0
    functionsReached:
    - EpollHelper::run_with_timeout
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,handler:
      &mut dyn EpollHelperHandler,) -> std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:263,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:263,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:266,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:276,1
    - Dst: EpollHelperError::Wait
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:276,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:282,1
    - Dst: bool::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:285,1
    - Dst: impl Iterator::take
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:285,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:291,1
    - Dst: '&Barrier::wait'
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:298,1
    - Dst: Result::load
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:303,1
    - Dst: thread::park
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:304,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:310,1
    - Dst: Option::handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:313,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 5
    argNames:
    - paused
    - paused_sync
    - handler
    - _timeout
    - _enable_event_list
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    - '&mut dyn EpollHelperHandler'
    - i32
    - bool
    constantsTouched: []
    func_position:
      end: 318
      start: 251
    functionDepth: 14
    functionLinenumber: 251
    functionLinenumberEnd: 318
    functionName: EpollHelper::run_with_timeout
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 1
    functionsReached:
    - epoll::wait
    - EpollHelperError::Wait
    - Option::handle_event
    - thread::park
    - Err
    - '&Barrier::wait'
    - Result::load
    - read
    - as_raw_fd
    - bool::iter
    - impl Iterator::take
    - usize::kind
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn run_with_timeout(&mut self,paused: &AtomicBool,paused_sync:
      &Barrier,handler: &mut dyn EpollHelperHandler,_timeout: i32,_enable_event_list:
      bool,) -> std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: EpollHelper::as_raw_fd
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn as_raw_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:655,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:655,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:655,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:658,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:658,1
    - Dst: get
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:658,1
    - Dst: '&BTreeMap<u32, Arc<dyn ExternalDmaMapping>>::get'
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:659,1
    - Dst: unmap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:662,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:662,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:668,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:668,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:668,1
    - Dst: filter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:668,1
    - Dst: count
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:668,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:677,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:677,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:677,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 4
    argNames:
    - endpoint
    - domain_id
    - mapping
    - ext_mapping
    argTypes:
    - u32
    - u32
    - '&Arc<IommuMapping>'
    - '&BTreeMap<u32, Arc<dyn ExternalDmaMapping>>'
    constantsTouched: []
    func_position:
      end: 681
      start: 648
    functionDepth: 13
    functionLinenumber: 648
    functionLinenumberEnd: 681
    functionName: detach_endpoint_from_domain
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - iter
    - filter
    - unmap
    - remove
    - map_err
    - '&BTreeMap<u32, Arc<dyn ExternalDmaMapping>>::get'
    - Ok
    - unwrap
    - get
    - read
    - count
    - write
    linkageType: ''
    returnType: result::Result
    signature: 'fn detach_endpoint_from_domain(endpoint: u32,domain_id: u32,mapping:
      &Arc<IommuMapping>,ext_mapping: &BTreeMap<u32, Arc<dyn ExternalDmaMapping>>,)
      -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:700,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:700,1
    - Dst: Request::parse
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:702,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:705,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:705,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:709,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:710,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:710,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:709,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 698
    functionDepth: 13
    functionLinenumber: 698
    functionLinenumberEnd: 717
    functionName: IommuEpollHandler::request_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 1
    functionsReached:
    - Request::parse
    - map_err
    - add_used
    - pop_descriptor_chain
    - Result::head_index
    - lock
    - unwrap
    - Result::memory
    - memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn request_queue(&mut self) -> Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:720,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:721,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:720,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - queue_index
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: IommuEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn signal_used_queue(&self, queue_index: u16) -> result::Result<(),
      DeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:733,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:734,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:734,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:735,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 738
      start: 728
    functionDepth: 15
    functionLinenumber: 728
    functionLinenumberEnd: 738
    functionName: IommuEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - run
    - add_event
    - EpollHelper::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:750,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:750,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:751,1
    - Dst: IommuEpollHandler::request_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:754,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:754,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:755,1
    - Dst: IommuEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:760,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:760,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:761,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:766,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:766,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:771,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 772
      start: 742
    functionDepth: 13
    functionLinenumber: 742
    functionLinenumberEnd: 772
    functionName: IommuEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - IommuEpollHandler::signal_used_queue
    - EpollHelperError::HandleEvent
    - map_err
    - IommuEpollHandler::request_queue
    - Err
    - Result::map_err
    - result::Result::map_err
    - read
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:801,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:801,1
    - Dst: get
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:801,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:802,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:802,1
    - Dst: get
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:802,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:806,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:809,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:813,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:817,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:818,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:821,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:821,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 2
    argNames:
    - id
    - addr
    argTypes:
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 824
      start: 799
    functionDepth: 8
    functionLinenumber: 799
    functionLinenumberEnd: 824
    functionName: IommuMapping::translate_gva
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - iter
    - load
    - Err
    - unwrap
    - io::Error::other
    - get
    - read
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn translate_gva(&self, id: u32, addr: u64) -> std::result::Result<u64,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:828,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:828,1
    - Dst: get
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:828,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:829,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:829,1
    - Dst: get
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:829,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:833,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:836,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:840,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:844,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:845,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:848,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:848,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 2
    argNames:
    - id
    - addr
    argTypes:
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 851
      start: 826
    functionDepth: 8
    functionLinenumber: 826
    functionLinenumberEnd: 851
    functionName: IommuMapping::translate_gpa
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - iter
    - load
    - Err
    - unwrap
    - io::Error::other
    - get
    - read
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn translate_gpa(&self, id: u32, addr: u64) -> std::result::Result<u64,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - mapping
    argTypes:
    - u32
    - Arc<IommuMapping>
    constantsTouched: []
    func_position:
      end: 863
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 863
    functionName: AccessPlatformMapping::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: u32, mapping: Arc<IommuMapping>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - _size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 8
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: AccessPlatformMapping::translate_gva
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - translate_gva
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn translate_gva(&self, base: u64, _size: u64) -> std::result::Result<u64,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translate_gpa
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - _size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 872
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 872
    functionName: AccessPlatformMapping::translate_gpa
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - translate_gpa
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn translate_gpa(&self, base: u64, _size: u64) -> std::result::Result<u64,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:912,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:912,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:913,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:913,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:920,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:920,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:913,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:934,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:934,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:940,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:951,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:952,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:952,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:953,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:953,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:954,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:957,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:962,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:965,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:965,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:965,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:967,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:967,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:968,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:971,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:972,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:972,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 79
    argCount: 6
    argNames:
    - id
    - seccomp_action
    - exit_evt
    - msi_iova_space
    - address_width_bits
    - state
    argTypes:
    - String
    - SeccompAction
    - EventFd
    - (u64, u64)
    - u8
    - Option<IommuState>
    constantsTouched: []
    func_position:
      end: 979
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 979
    functionName: Iommu::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 1
    functionsReached:
    - map
    - Default::default
    - Arc::new
    - RwLock::new
    - Mutex::new
    - AtomicBool::new
    - BTreeMap::new
    - Ok
    - into_iter
    - Barrier::new
    - Result::clone
    - Some
    - to_vec
    - collect
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,seccomp_action: SeccompAction,exit_evt: EventFd,msi_iova_space:
      (u64, u64),address_width_bits: u8,state: Option<IommuState>,) -> io::Result<(Self,
      Arc<IommuMapping>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:985,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:985,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:985,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:985,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:985,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:993,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:993,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:993,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:993,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:993,1
    - Dst: into_iter
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1000,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1000,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 981
    functionDepth: 8
    functionLinenumber: 981
    functionLinenumberEnd: 1003
    functionName: Iommu::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 1
    functionsReached:
    - map
    - unwrap
    - into_iter
    - read
    - clone
    - collect
    linkageType: ''
    returnType: IommuState
    signature: fn state(&self) -> IommuState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: feature_acked
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1007,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1009,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1005
    functionDepth: 16
    functionLinenumber: 1005
    functionLinenumberEnd: 1017
    functionName: Iommu::update_bypass
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 1
    functionsReached:
    - store
    - feature_acked
    - into
    linkageType: ''
    returnType: void
    signature: fn update_bypass(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1020,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1020,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device_id
    - mapping
    argTypes:
    - u32
    - Arc<dyn ExternalDmaMapping>
    constantsTouched: []
    func_position:
      end: 1021
      start: 1019
    functionDepth: 13
    functionLinenumber: 1019
    functionLinenumberEnd: 1021
    functionName: Iommu::add_external_mapping
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - lock
    - insert
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn add_external_mapping(&mut self, device_id: u32, mapping: Arc<dyn
      ExternalDmaMapping>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1026
    functionName: Iommu::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1031,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1033,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1030
    functionDepth: 8
    functionLinenumber: 1030
    functionLinenumberEnd: 1036
    functionName: Iommu::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1042
    functionName: Iommu::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1046
    functionName: Iommu::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1050
    functionName: Iommu::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 1054
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1054
    functionName: Iommu::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Iommu::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1057,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1058
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1058
    functionName: Iommu::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - Iommu::read_config_from_slice
    - as_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1064,1
    - Dst: std::mem::size_of_val
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1064,1
    - Dst: Iommu::update_bypass
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1076
      start: 1060
    functionDepth: 17
    functionLinenumber: 1060
    functionLinenumberEnd: 1076
    functionName: Iommu::write_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of_val
    - String::len
    - Iommu::update_bypass
    linkageType: ''
    returnType: void
    signature: 'fn write_config(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1084,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1084,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1085,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1087,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1088,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1099,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1100,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1104,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1105,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1106,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1107,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1113,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1113,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1113,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1116,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1118,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 58
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 1120
      start: 1078
    functionDepth: 18
    functionLinenumber: 1078
    functionLinenumberEnd: 1120
    functionName: Iommu::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - activate
    - usize::remove
    - Vec::new
    - as_ref
    - Some
    - event_monitor::event
    - Option::run
    - dup_eventfds
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - clone
    - thread_helper::spawn_virtio_thread
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1123,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1122
    functionDepth: 14
    functionLinenumber: 1122
    functionLinenumberEnd: 1126
    functionName: Iommu::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1130
    functionDepth: 16
    functionLinenumber: 1130
    functionLinenumberEnd: 1132
    functionName: Iommu::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1134
    functionDepth: 14
    functionLinenumber: 1134
    functionLinenumberEnd: 1136
    functionName: Iommu::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: Iommu::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1145,1
    - Dst: Iommu::state
      Src: /src/cloud-hypervisor/virtio-devices/src/iommu.rs:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1144
    functionDepth: 8
    functionLinenumber: 1144
    functionLinenumberEnd: 1146
    functionName: Iommu::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
    functionUses: 0
    functionsReached:
    - Iommu::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:143,1
    - Dst: unwrap_or_default
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:144,1
    - Dst: rate_limiter::RateLimiter::new
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:145,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:147,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: RateLimiterConfig::try_into
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/lib.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_default
    - rate_limiter::RateLimiter::new
    - unwrap_or
    linkageType: ''
    returnType: std::result::Result
    signature: fn try_into(self) -> std::result::Result<rate_limiter::RateLimiter,
      Self::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryMmap::check_range
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:167,1
    - Dst: GuestMemoryMmap::get_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:168,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:168,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:172,1
    - Dst: '&[T]::as_ptr'
      Src: /src/cloud-hypervisor/virtio-devices/src/lib.rs:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - mem
    - addr
    - size
    argTypes:
    - '&M'
    - GuestAddress
    - usize
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: get_host_address_range
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/lib.rs
    functionUses: 6
    functionsReached:
    - GuestMemoryMmap::check_range
    - '&[T]::as_ptr'
    - GuestMemoryMmap::get_slice
    - unwrap
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_host_address_range<M: GuestMemory + ?Sized>(mem: &M,addr:
      GuestAddress,size: usize,) -> Option<*mut u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:198,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:199,1
    - Dst: Error::ValidateError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:199,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:205,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:206,1
    - Dst: Error::ValidateError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:206,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:212,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:213,1
    - Dst: Error::ValidateError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:213,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:219,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:220,1
    - Dst: Error::ValidateError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:220,1
    - Dst: is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:226,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:227,1
    - Dst: Error::ValidateError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:227,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 235
    functionName: VirtioMemConfig::validate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - is_multiple_of
    - Ok
    - Error::ValidateError
    - Err
    linkageType: ''
    returnType: result::Result
    signature: fn validate(&self) -> result::Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:239,1
    - Dst: Error::ResizeError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:239,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:243,1
    - Dst: Error::ResizeError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:243,1
    - Dst: usize::is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:248,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:249,1
    - Dst: Error::ResizeError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:249,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 259
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 259
    functionName: VirtioMemConfig::resize
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - usize::is_multiple_of
    - Error::ResizeError
    - Ok
    - Err
    linkageType: ''
    returnType: result::Result
    signature: 'fn resize(&mut self, size: u64) -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:264,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:264,1
    - Dst: u64::is_multiple_of
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 279
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 279
    functionName: VirtioMemConfig::is_valid_range
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - u64::is_multiple_of
    - u64::checked_add
    - is_none
    linkageType: ''
    returnType: bool
    signature: 'fn is_valid_range(&self, addr: u64, size: u64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:330,1
    - Dst: GuestMemoryMmap::write_obj
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:332,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:332,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:334,1
    - Dst: size_of::<VirtioMemResp>
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - mem
    - resp_type
    - state
    argTypes:
    - '&GuestMemoryMmap'
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: Request::send_response
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - map_err
    - GuestMemoryMmap::write_obj
    - Default::default
    - size_of::<VirtioMemResp>
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn send_response(&self,mem: &GuestMemoryMmap,resp_type: u16,state:
      u16,) -> Result<u32, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - region_size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: BlocksState::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(region_size: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:351,1
    - Dst: skip
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:351,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - first_block_index
    - nb_blocks
    - plug
    argTypes:
    - usize
    - u16
    - bool
    constantsTouched: []
    func_position:
      end: 362
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 362
    functionName: BlocksState::is_range_state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - take
    - iter
    - skip
    linkageType: ''
    returnType: bool
    signature: 'fn is_range_state(&self, first_block_index: usize, nb_blocks: u16,
      plug: bool) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:365,1
    - Dst: skip
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:365,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - first_block_index
    - nb_blocks
    - plug
    argTypes:
    - usize
    - u16
    - bool
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 373
    functionName: BlocksState::set_range
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - take
    - skip
    - iter_mut
    linkageType: ''
    returnType: void
    signature: 'fn set_range(&mut self, first_block_index: usize, nb_blocks: u16,
      plug: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: BlocksState::inner
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Vec'
    signature: fn inner(&self) -> &Vec<bool>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:380,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:382,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:382,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:384,1
    - Dst: MemoryRangeTable::from_dirty_bitmap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - start_addr
    - plugged
    argTypes:
    - u64
    - bool
    constantsTouched: []
    func_position:
      end: 399
      start: 379
    functionDepth: 5
    functionLinenumber: 379
    functionLinenumberEnd: 399
    functionName: BlocksState::memory_ranges
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - iter
    - enumerate
    - Self::push
    - Vec::new
    - MemoryRangeTable::from_dirty_bitmap
    linkageType: ''
    returnType: MemoryRangeTable
    signature: 'pub fn memory_ranges(&self, start_addr: u64, plugged: bool) -> MemoryRangeTable'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: usize_to_u64
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn usize_to_u64(i: usize) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize_to_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:430,1
    - Dst: size
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:430,1
    - Dst: libc::size_t::try_from
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:434,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:434,1
    - Dst: libc::off64_t::try_from
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:435,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:435,1
    - Dst: isize::try_from
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:436,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:436,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:443,1
    - Dst: libc::fallocate64
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:460,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:468,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:470,1
    - Dst: Error::DiscardMemoryRange
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:470,1
    - Dst: libc::madvise
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:482,1
    - Dst: as_ptr
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:483,1
    - Dst: offset
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:483,1
    - Dst: io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:489,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:491,1
    - Dst: Error::DiscardMemoryRange
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:491,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 65
    argCount: 2
    argNames:
    - offset
    - size
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 496
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 496
    functionName: MemEpollHandler::discard_memory_range
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 2
    functionsReached:
    - size
    - as_ptr
    - libc::fallocate64
    - libc::madvise
    - Error::DiscardMemoryRange
    - libc::off64_t::try_from
    - Err
    - offset
    - libc::size_t::try_from
    - Result::unwrap
    - usize_to_u64
    - io::Error::last_os_error
    - isize::try_from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn discard_memory_range(&self, offset: u64, size: u64) -> Result<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:499,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:499,1
    - Dst: Vec::is_valid_range
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:505,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:512,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:512,1
    - Dst: is_range_state
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:512,1
    - Dst: MemEpollHandler::discard_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:521,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:526,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:526,1
    - Dst: set_range
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:526,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:531,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:531,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:535,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:536,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:550,1
    - Dst: Option::unmap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:551,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 99
    argCount: 3
    argNames:
    - addr
    - nb_blocks
    - plug
    argTypes:
    - u64
    - u16
    - bool
    constantsTouched: []
    func_position:
      end: 561
      start: 498
    functionDepth: 13
    functionLinenumber: 498
    functionLinenumberEnd: 561
    functionName: MemEpollHandler::state_change_request
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 1
    functionsReached:
    - iter
    - Option::unmap
    - set_range
    - Option::map
    - Vec::is_valid_range
    - lock
    - unwrap
    - MemEpollHandler::discard_memory_range
    - is_range_state
    linkageType: ''
    returnType: u16
    signature: 'fn state_change_request(&mut self, addr: u64, nb_blocks: u16, plug:
      bool) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:564,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:564,1
    - Dst: MemEpollHandler::discard_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:565,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:572,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:572,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:573,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:573,1
    - Dst: inner
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:573,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:573,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:573,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:576,1
    - Dst: Option::unmap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:577,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:589,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:589,1
    - Dst: set_range
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:589,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 598
      start: 563
    functionDepth: 13
    functionLinenumber: 563
    functionLinenumberEnd: 598
    functionName: MemEpollHandler::unplug_all
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 1
    functionsReached:
    - iter
    - Option::unmap
    - set_range
    - lock
    - unwrap
    - MemEpollHandler::discard_memory_range
    - enumerate
    - inner
    linkageType: ''
    returnType: u16
    signature: fn unplug_all(&mut self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:601,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:601,1
    - Dst: Vec::is_valid_range
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:604,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:613,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:613,1
    - Dst: is_range_state
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:613,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:620,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:620,1
    - Dst: is_range_state
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:620,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 2
    argNames:
    - addr
    - nb_blocks
    argTypes:
    - u64
    - u16
    constantsTouched: []
    func_position:
      end: 631
      start: 600
    functionDepth: 13
    functionLinenumber: 600
    functionLinenumberEnd: 631
    functionName: MemEpollHandler::state_request
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 1
    functionsReached:
    - lock
    - Vec::is_valid_range
    - is_range_state
    - unwrap
    linkageType: ''
    returnType: (u16, u16)
    signature: 'fn state_request(&self, addr: u64, nb_blocks: u16) -> (u16, u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:634,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:634,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - int_type
    argTypes:
    - VirtioInterruptType
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: MemEpollHandler::signal
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 1
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn signal(&self, int_type: VirtioInterruptType) -> result::Result<(),
      DeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:643,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:643,1
    - Dst: Request::parse
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:644,1
    - Dst: MemEpollHandler::state_change_request
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:647,1
    - Dst: MemEpollHandler::state_change_request
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:651,1
    - Dst: MemEpollHandler::unplug_all
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:654,1
    - Dst: MemEpollHandler::state_request
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:655,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:657,1
    - Dst: Error::UnknownRequestType
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:657,1
    - Dst: u64::send_response
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:660,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:660,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:661,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:662,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:662,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:661,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 640
    functionDepth: 14
    functionLinenumber: 640
    functionLinenumberEnd: 668
    functionName: MemEpollHandler::process_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 1
    functionsReached:
    - Request::parse
    - Error::UnknownRequestType
    - MemEpollHandler::state_request
    - map_err
    - u64::send_response
    - add_used
    - MemEpollHandler::unplug_all
    - pop_descriptor_chain
    - Err
    - Result::head_index
    - Result::memory
    - MemEpollHandler::state_change_request
    - memory
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn process_queue(&mut self) -> Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:675,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:676,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:676,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:677,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 15
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: MemEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - run
    - add_event
    - EpollHelper::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:692,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:692,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:693,1
    - Dst: MemEpollHandler::process_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:696,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:696,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:697,1
    - Dst: MemEpollHandler::signal
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:700,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:700,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:700,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:701,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:706,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:706,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 712
      start: 684
    functionDepth: 14
    functionLinenumber: 684
    functionLinenumberEnd: 712
    functionName: MemEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - EpollHelperError::HandleEvent
    - map_err
    - MemEpollHandler::process_queue
    - Err
    - Result::map_err
    - MemEpollHandler::signal
    - result::Result::map_err
    - read
    - VirtioInterruptType::Queue
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::len
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:757,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:760,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:760,1
    - Dst: '&Arc::lock'
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:767,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:767,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:767,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:779,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:779,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:780,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:781,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:784,1
    - Dst: Vec::resize
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:788,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:788,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:789,1
    - Dst: Vec::validate
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:802,1
    - Dst: ValidationResult::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:802,1
    - Dst: io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:803,1
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:809,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:809,1
    - Dst: file
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:811,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:811,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:813,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:818,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:818,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:818,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:819,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:821,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:821,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:822,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:825,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:827,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:827,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:830,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:830,1
    - Dst: BTreeMap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:830,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 94
    argCount: 9
    argNames:
    - id
    - region
    - seccomp_action
    - numa_node_id
    - initial_size
    - hugepages
    - exit_evt
    - blocks_state
    - state
    argTypes:
    - String
    - '&Arc<GuestRegionMmap>'
    - SeccompAction
    - Option<u16>
    - u64
    - bool
    - EventFd
    - Arc<Mutex<BlocksState>>
    - Option<MemState>
    constantsTouched: []
    func_position:
      end: 835
      start: 746
    functionDepth: 13
    functionLinenumber: 746
    functionLinenumberEnd: 835
    functionName: Mem::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 2
    functionsReached:
    - map_err
    - AtomicBool::new
    - Ok
    - Default::default
    - Arc::new
    - Result::file_offset
    - Barrier::new
    - file
    - as_raw_fd
    - Result::len
    - Err
    - Mutex::new
    - unwrap
    - Result::clone
    - clone
    - to_vec
    - map
    - ValidationResult::map_err
    - Result::raw_value
    - Vec::validate
    - Vec::resize
    - Result::start_addr
    - BTreeMap::new
    - '&Arc::lock'
    - io::Error::other
    - Some
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,region: &Arc<GuestRegionMmap>,seccomp_action:
      SeccompAction,numa_node_id: Option<u16>,initial_size: u64,hugepages: bool,exit_evt:
      EventFd,blocks_state: Arc<Mutex<BlocksState>>,state: Option<MemState>,) -> io::Result<Mem>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:838,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:838,1
    - Dst: Vec::resize
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:839,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:839,1
    - Dst: Error::ResizeError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:840,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:843,1
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:844,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:844,1
    - Dst: Error::ResizeError
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:847,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - size
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 852
      start: 837
    functionDepth: 13
    functionLinenumber: 837
    functionLinenumberEnd: 852
    functionName: Mem::resize
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_ref
    - Vec::resize
    - Error::ResizeError
    - lock
    - unwrap
    - trigger
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn resize(&mut self, size: u64) -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:859,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:859,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:862,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:862,1
    - Dst: inner
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:862,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:862,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:862,1
    - Dst: Option::map
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:865,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:865,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:872,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:872,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:872,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 2
    argNames:
    - source
    - handler
    argTypes:
    - VirtioMemMappingSource
    - Arc<dyn ExternalDmaMapping>
    constantsTouched: []
    func_position:
      end: 878
      start: 854
    functionDepth: 13
    functionLinenumber: 854
    functionLinenumberEnd: 878
    functionName: Mem::add_dma_mapping_handler
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - iter
    - insert
    - Option::map
    - Self::map_err
    - lock
    - unwrap
    - enumerate
    - inner
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn add_dma_mapping_handler(&mut self,source: VirtioMemMappingSource,handler:
      Arc<dyn ExternalDmaMapping>,) -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:884,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:884,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:884,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:884,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:891,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:891,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:894,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:894,1
    - Dst: inner
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:894,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:894,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:894,1
    - Dst: Option::unmap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:897,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:897,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&VirtioMemMappingSource'
    constantsTouched: []
    func_position:
      end: 905
      start: 880
    functionDepth: 13
    functionLinenumber: 880
    functionLinenumberEnd: 905
    functionName: Mem::remove_dma_mapping_handler
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - iter
    - Option::unmap
    - remove
    - lock
    - Result::map_err
    - unwrap
    - ok_or
    - enumerate
    - inner
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'pub fn remove_dma_mapping_handler(&mut self,source: &VirtioMemMappingSource,)
      -> result::Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:911,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:911,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:912,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:912,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 914
      start: 907
    functionDepth: 13
    functionLinenumber: 907
    functionLinenumberEnd: 914
    functionName: Mem::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 1
    functionsReached:
    - lock
    - clone
    - unwrap
    linkageType: ''
    returnType: MemState
    signature: fn state(&self) -> MemState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 919
    functionName: Mem::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:924,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:926,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 923
    functionDepth: 8
    functionLinenumber: 923
    functionLinenumberEnd: 929
    functionName: Mem::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 935
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 935
    functionName: Mem::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 939
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 939
    functionName: Mem::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 943
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 943
    functionName: Mem::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 947
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 947
    functionName: Mem::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mem::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:950,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:950,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:950,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 951
      start: 949
    functionDepth: 13
    functionLinenumber: 949
    functionLinenumberEnd: 951
    functionName: Mem::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - Mem::read_config_from_slice
    - as_slice
    - lock
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:959,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:959,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:960,1
    - Dst: usize::remove
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:962,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:964,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:964,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:968,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:970,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:971,1
    - Dst: Arc::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:978,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:981,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:981,1
    - Dst: memory_ranges
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:981,1
    - Dst: regions
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:982,1
    - Dst: Option::discard_memory_range
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:983,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:983,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:996,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:997,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:998,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1000,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1006,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1006,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1006,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1008,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1010,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 90
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 1012
      start: 953
    functionDepth: 18
    functionLinenumber: 953
    functionLinenumberEnd: 1012
    functionName: Mem::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Option::run
    - Arc::clone
    - Ok
    - activate
    - Vec::new
    - event_monitor::event
    - memory_ranges
    - regions
    - lock
    - dup_eventfds
    - unwrap
    - clone
    - usize::remove
    - Option::discard_memory_range
    - Result::map_err
    - Arc<dyn VirtioInterrupt>::clone
    - Some
    - thread_helper::spawn_virtio_thread
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,mut queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1015,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1014
    functionDepth: 14
    functionLinenumber: 1014
    functionLinenumberEnd: 1018
    functionName: Mem::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1022
    functionDepth: 16
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    functionName: Mem::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1026
    functionDepth: 14
    functionLinenumber: 1026
    functionLinenumberEnd: 1028
    functionName: Mem::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1034
    functionName: Mem::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1037,1
    - Dst: Mem::state
      Src: /src/cloud-hypervisor/virtio-devices/src/mem.rs:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1036
    functionDepth: 14
    functionLinenumber: 1036
    functionLinenumberEnd: 1038
    functionName: Mem::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/mem.rs
    functionUses: 0
    functionsReached:
    - Mem::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciCap::as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: VirtioPciCap::bytes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciCap::as_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: VirtioPciCap::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PciCapabilityId
    signature: fn id(&self) -> PciCapabilityId
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<VirtioPciCap>
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:93,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:98,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - cfg_type
    - pci_bar
    - offset
    - length
    argTypes:
    - PciCapabilityType
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: VirtioPciCap::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 2
    functionsReached:
    - Le32::from
    - std::mem::size_of::<VirtioPciCap>
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(cfg_type: PciCapabilityType, pci_bar: u8, offset: u32,
      length: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciNotifyCap::as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: VirtioPciNotifyCap::bytes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciNotifyCap::as_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: VirtioPciNotifyCap::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PciCapabilityId
    signature: fn id(&self) -> PciCapabilityId
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<VirtioPciNotifyCap>
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:134,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:140,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - cfg_type
    - pci_bar
    - offset
    - length
    - multiplier
    argTypes:
    - PciCapabilityType
    - u8
    - u32
    - u32
    - Le32
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: VirtioPciNotifyCap::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - Le32::from
    - std::mem::size_of::<VirtioPciNotifyCap>
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(cfg_type: PciCapabilityType,pci_bar: u8,offset: u32,length:
      u32,multiplier: Le32,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciCap64::as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: VirtioPciCap64::bytes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciCap64::as_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: VirtioPciCap64::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PciCapabilityId
    signature: fn id(&self) -> PciCapabilityId
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<VirtioPciCap64>
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:173,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:178,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:179,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:181,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 5
    argNames:
    - cfg_type
    - pci_bar
    - id
    - offset
    - length
    argTypes:
    - PciCapabilityType
    - u8
    - u8
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 184
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 184
    functionName: VirtioPciCap64::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - Le32::from
    - std::mem::size_of::<VirtioPciCap64>
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(cfg_type: PciCapabilityType, pci_bar: u8, id: u8, offset:
      u64, length: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciCfgCap::as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: VirtioPciCfgCap::bytes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciCfgCap::as_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: VirtioPciCfgCap::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PciCapabilityId
    signature: fn id(&self) -> PciCapabilityId
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciCap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:210,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: VirtioPciCfgCap::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - VirtioPciCap::new
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: PciVirtioSubclass::get_register_value
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_register_value(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:295,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:295,1
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:295,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:296,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:296,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:297,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:297,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:298,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:298,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:300,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:302,1
    - Dst: wait
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:304,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 15
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: VirtioPciDeviceActivator::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 2
    functionsReached:
    - activate
    - lock
    - store
    - take
    - unwrap
    - wait
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: pub fn activate(&mut self) -> ActivateResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:394,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:394,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:395,1
    - Dst: queue_max_sizes
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:396,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:396,1
    - Dst: '&[EventFd]::push'
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:397,1
    - Dst: EventFd::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:397,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:397,1
    - Dst: VirtioPciDeviceError::CreateVirtioPciDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:398,1
    - Dst: queue_max_sizes
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:401,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:401,1
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:404,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:404,1
    - Dst: queue_max_sizes
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:407,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:407,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:407,1
    - Dst: Queue::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:410,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:410,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:407,1
    - Dst: device_type
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:413,1
    - Dst: '&dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>::create_group'
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:415,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:415,1
    - Dst: VirtioPciDeviceError::CreateVirtioPciDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:421,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:427,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:427,1
    - Dst: VirtioPciDeviceError::CreateVirtioPciDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:428,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:434,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:434,1
    - Dst: MsixConfig::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:435,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:437,1
    - Dst: result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:435,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:443,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:444,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:444,1
    - Dst: VirtioDeviceType::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:449,1
    - Dst: device_type
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:449,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:465,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:465,1
    - Dst: VirtioPciDeviceError::CreateVirtioPciDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:466,1
    - Dst: PciConfiguration::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:471,1
    - Dst: vm_migration::state_from_id
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:486,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:486,1
    - Dst: VirtioPciDeviceError::CreateVirtioPciDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:487,1
    - Dst: VirtioPciCommonConfig::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:493,1
    - Dst: VirtioPciCommonConfig::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:495,1
    - Dst: ApiResult::as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:509,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:509,1
    - Dst: FdtWriterResult::to_state
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:511,1
    - Dst: transpose
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:509,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:509,1
    - Dst: VirtioPciDeviceError::CreateVirtioPciDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:514,1
    - Dst: usize::iter_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:521,1
    - Dst: IterMut::enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:521,1
    - Dst: bool::set_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:522,1
    - Dst: bool::set_ready
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:523,1
    - Dst: bool::try_set_desc_table_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:524,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:525,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:524,1
    - Dst: bool::try_set_avail_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:527,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:528,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:527,1
    - Dst: bool::try_set_used_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:530,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:531,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:530,1
    - Dst: bool::set_next_avail
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:533,1
    - Dst: bool::used_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:534,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:535,1
    - Dst: Result::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:535,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:534,1
    - Dst: bool::set_next_used
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:539,1
    - Dst: bool::used_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:540,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:541,1
    - Dst: Result::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:541,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:540,1
    - Dst: VirtioPciCfgCap::from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:552,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:552,1
    - Dst: VirtioPciCfgCapInfo::default
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:556,1
    - Dst: std::mem::drop
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:563,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:572,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:572,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:573,1
    - Dst: AtomicUsize::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:573,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:589,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:589,1
    - Dst: VirtioInterruptMsix::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:589,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:590,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:591,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:592,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:593,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:600,1
    - Dst: DeviceManagerResult::is_driver_ready
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:601,1
    - Dst: DeviceManagerResult::activate
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:603,1
    - Dst: ActivateResult::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:603,1
    - Dst: VirtioPciDeviceError::CreateVirtioPciDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:604,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:610,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 252
    argCount: 12
    argNames:
    - id
    - memory
    - device
    - msix_num
    - access_platform
    - interrupt_manager
    - pci_device_bdf
    - activate_evt
    - use_64bit_bar
    - dma_handler
    - pending_activations
    - snapshot
    argTypes:
    - String
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<Mutex<dyn VirtioDevice>>
    - u16
    - Option<Arc<dyn AccessPlatform>>
    - '&dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>'
    - u32
    - EventFd
    - bool
    - Option<Arc<dyn ExternalDmaMapping>>
    - Arc<Mutex<Vec<VirtioPciDeviceActivator>>>
    - Option<&Snapshot>
    constantsTouched: []
    func_position:
      end: 611
      start: 380
    functionDepth: 15
    functionLinenumber: 380
    functionLinenumberEnd: 611
    functionName: VirtioPciDevice::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - map_err
    - '&[EventFd]::push'
    - PciConfiguration::new
    - ApiResult::as_ref
    - EventFd::new
    - IterMut::enumerate
    - AtomicBool::new
    - Result::memory
    - VirtioInterruptMsix::new
    - Ok
    - AtomicUsize::new
    - transpose
    - FdtWriterResult::to_state
    - Vec::new
    - bool::try_set_avail_ring_address
    - Arc::new
    - VirtioDeviceType::from
    - len
    - Queue::new
    - iter
    - VirtioPciCommonConfig::new
    - vm_memory::GuestAddress
    - VirtioPciDeviceError::CreateVirtioPciDevice
    - VirtioPciCfgCap::from_slice
    - load
    - bool::used_idx
    - device_type
    - Result::deref
    - '&dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>::create_group'
    - bool::try_set_desc_table_address
    - vm_migration::state_from_id
    - usize::iter_mut
    - Mutex::new
    - set_access_platform
    - bool::set_ready
    - unwrap
    - MsixConfig::new
    - bool::try_set_used_ring_address
    - result::Result::unwrap
    - Result::clone
    - DeviceManagerResult::activate
    - clone
    - Self::unwrap
    - DeviceManagerResult::is_driver_ready
    - bool::set_next_avail
    - queue_max_sizes
    - map
    - bool::set_next_used
    - bool::set_size
    - ActivateResult::map_err
    - String::lock
    - VirtioPciCfgCapInfo::default
    - std::mem::drop
    - Result::map_err
    - Some
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,memory: GuestMemoryAtomic<GuestMemoryMmap>,device:
      Arc<Mutex<dyn VirtioDevice>>,msix_num: u16,access_platform: Option<Arc<dyn AccessPlatform>>,interrupt_manager:
      &dyn InterruptManager<GroupConfig = MsiIrqGroupConfig>,pci_device_bdf: u32,activate_evt:
      EventFd,use_64bit_bar: bool,dma_handler: Option<Arc<dyn ExternalDmaMapping>>,pending_activations:
      Arc<Mutex<Vec<VirtioPciDeviceActivator>>>,snapshot: Option<&Snapshot>,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:615,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:616,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:617,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:617,1
    - Dst: u32::max_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:621,1
    - Dst: u32::size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:622,1
    - Dst: u32::ready
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:623,1
    - Dst: u32::desc_table
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:624,1
    - Dst: u32::avail_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:625,1
    - Dst: u32::used_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:626,1
    - Dst: collect
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:617,1
    - Dst: bytes
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:630,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 632
    functionName: VirtioPciDevice::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - iter
    - map
    - u32::ready
    - load
    - u32::used_ring
    - to_vec
    - u32::avail_ring
    - u32::size
    - bytes
    - u32::max_size
    - u32::desc_table
    - collect
    linkageType: ''
    returnType: VirtioPciDeviceState
    signature: fn state(&self) -> VirtioPciDeviceState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 639
    functionName: VirtioPciDevice::queue_evts
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - as_slice
    linkageType: ''
    returnType: '&[EventFd]'
    signature: fn queue_evts(&self) -> &[EventFd]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 646
    functionName: VirtioPciDevice::is_driver_ready
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_driver_ready(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 651
    functionName: VirtioPciDevice::is_driver_init
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_driver_init(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_bar_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 655
      start: 653
    functionDepth: 9
    functionLinenumber: 653
    functionLinenumberEnd: 655
    functionName: VirtioPciDevice::config_bar_addr
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - get_bar_addr
    linkageType: ''
    returnType: u64
    signature: pub fn config_bar_addr(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciCap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:662,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:668,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:668,1
    - Dst: VirtioPciCap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:672,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:678,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:678,1
    - Dst: VirtioPciCap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:683,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:689,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:689,1
    - Dst: VirtioPciNotifyCap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:693,1
    - Dst: Le32::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:698,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:700,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:700,1
    - Dst: VirtioPciCfgCap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:704,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:705,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:705,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:712,1
    - Dst: MsixCap::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:713,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:720,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:720,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 84
    argCount: 1
    argNames:
    - settings_bar
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 727
      start: 657
    functionDepth: 7
    functionLinenumber: 657
    functionLinenumberEnd: 727
    functionName: VirtioPciDevice::add_pci_capabilities
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - is_some
    - map_err
    - MsixCap::new
    - Le32::from
    - VirtioPciCap::new
    - VirtioPciNotifyCap::new
    - add_capability
    - VirtioPciCfgCap::new
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn add_pci_capabilities(&mut self,settings_bar: u8,) -> std::result::Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:730,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:731,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:732,1
    - Dst: std::mem::size_of::<VirtioPciCap>
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:738,1
    - Dst: Result::checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:739,1
    - Dst: String::write_all
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:741,1
    - Dst: cmp::min
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:741,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:741,1
    - Dst: std::mem::transmute
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:747,1
    - Dst: VirtioPciDevice::read_bar
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 750
      start: 729
    functionDepth: 13
    functionLinenumber: 729
    functionLinenumberEnd: 750
    functionName: VirtioPciDevice::read_cap_pci_cfg
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - std::mem::transmute
    - VirtioPciDevice::read_bar
    - String::write_all
    - Result::checked_add
    - unwrap
    - len
    - as_slice
    - String::len
    - std::mem::size_of::<VirtioPciCap>
    - cmp::min
    linkageType: ''
    returnType: void
    signature: 'fn read_cap_pci_cfg(&mut self, offset: usize, mut data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:753,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:754,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:755,1
    - Dst: std::mem::size_of::<VirtioPciCap>
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:761,1
    - Dst: split_at_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:762,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:763,1
    - Dst: std::mem::transmute
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:768,1
    - Dst: VirtioPciDevice::write_bar
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - usize
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 771
      start: 752
    functionDepth: 14
    functionLinenumber: 752
    functionLinenumberEnd: 771
    functionName: VirtioPciDevice::write_cap_pci_cfg
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - std::mem::transmute
    - copy_from_slice
    - as_mut_slice
    - split_at_mut
    - len
    - String::len
    - std::mem::size_of::<VirtioPciCap>
    - VirtioPciDevice::write_bar
    linkageType: ''
    returnType: Option
    signature: 'fn write_cap_pci_cfg(&mut self, offset: usize, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 775
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 775
    functionName: VirtioPciDevice::virtio_device
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Arc
    signature: pub fn virtio_device(&self) -> Arc<Mutex<dyn VirtioDevice>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:778,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:780,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:780,1
    - Dst: bool::ready
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:781,1
    - Dst: bool::is_valid
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:785,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:785,1
    - Dst: deref
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:785,1
    - Dst: usize::push
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:789,1
    - Dst: vm_virtio::clone_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:791,1
    - Dst: try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:792,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:792,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:797,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:798,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:798,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:799,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:800,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:801,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 1
    argNames:
    - barrier
    argTypes:
    - Option<Arc<Barrier>>
    constantsTouched: []
    func_position:
      end: 805
      start: 777
    functionDepth: 5
    functionLinenumber: 777
    functionLinenumberEnd: 805
    functionName: VirtioPciDevice::prepare_activator
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 2
    functionsReached:
    - bool::ready
    - iter
    - Vec::new
    - vm_virtio::clone_queue
    - deref
    - try_clone
    - usize::push
    - clone
    - take
    - bool::is_valid
    - unwrap
    - enumerate
    - Some
    - memory
    linkageType: ''
    returnType: VirtioPciDeviceActivator
    signature: 'fn prepare_activator(&mut self, barrier: Option<Arc<Barrier>>) ->
      VirtioPciDeviceActivator'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciDevice::prepare_activator
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:808,1
    - Dst: VirtioPciDeviceActivator::activate
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 807
    functionDepth: 16
    functionLinenumber: 807
    functionLinenumberEnd: 809
    functionName: VirtioPciDevice::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciDeviceActivator::activate
    - VirtioPciDevice::prepare_activator
    linkageType: ''
    returnType: ActivateResult
    signature: fn activate(&mut self) -> ActivateResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:812,1
    - Dst: VirtioPciDevice::is_driver_ready
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 813
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 813
    functionName: VirtioPciDevice::needs_activation
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - load
    - VirtioPciDevice::is_driver_ready
    linkageType: ''
    returnType: bool
    signature: fn needs_activation(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 817
    functionName: VirtioPciDevice::dma_handler
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: pub fn dma_handler(&self) -> Option<&dyn ExternalDmaMapping>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciDevice::queue_evts
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:823,1
    - Dst: '&[EventFd]::iter'
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:823,1
    - Dst: impl Iterator::enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:823,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:823,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - base_addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 829
      start: 821
    functionDepth: 8
    functionLinenumber: 821
    functionLinenumberEnd: 829
    functionName: VirtioPciDevice::ioeventfds
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached:
    - map
    - VirtioPciDevice::queue_evts
    - impl Iterator::enumerate
    - u64::from
    - '&[EventFd]::iter'
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn ioeventfds(&self, base_addr: u64) -> impl Iterator<Item = (&EventFd,
      u64)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - msix_config
    - config_vector
    - queues_vectors
    - interrupt_source_group
    argTypes:
    - Arc<Mutex<MsixConfig>>
    - Arc<AtomicU16>
    - Arc<Mutex<Vec<u16>>>
    - Arc<dyn InterruptSourceGroup>
    constantsTouched: []
    func_position:
      end: 852
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 852
    functionName: VirtioInterruptMsix::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(msix_config: Arc<Mutex<MsixConfig>>,config_vector: Arc<AtomicU16>,queues_vectors:
      Arc<Mutex<Vec<u16>>>,interrupt_source_group: Arc<dyn InterruptSourceGroup>,)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:858,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:860,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:860,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:865,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:868,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:868,1
    - Dst: Vec::masked
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:875,1
    - Dst: super::Result::masked
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:875,1
    - Dst: Vec::set_pba_bit
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:876,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:877,1
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:880,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - int_type
    argTypes:
    - VirtioInterruptType
    constantsTouched: []
    func_position:
      end: 882
      start: 856
    functionDepth: 13
    functionLinenumber: 856
    functionLinenumberEnd: 882
    functionName: VirtioInterruptMsix::trigger
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - load
    - super::Result::masked
    - Vec::set_pba_bit
    - lock
    - Vec::masked
    - unwrap
    - trigger
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn trigger(&self, int_type: VirtioInterruptType) -> std::result::Result<(),
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:886,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:888,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:888,1
    - Dst: notifier
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - int_type
    argTypes:
    - VirtioInterruptType
    constantsTouched: []
    func_position:
      end: 894
      start: 884
    functionDepth: 13
    functionLinenumber: 884
    functionLinenumberEnd: 894
    functionName: VirtioInterruptMsix::notifier
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - lock
    - load
    - unwrap
    - notifier
    linkageType: ''
    returnType: Option
    signature: 'fn notifier(&self, int_type: VirtioInterruptType) -> Option<EventFd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:909,1
    - Dst: bytes
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:910,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:910,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:913,1
    - Dst: VirtioPciDevice::write_cap_pci_cfg
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:913,1
    - Dst: write_config_register
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 3
    argNames:
    - reg_idx
    - offset
    - data
    argTypes:
    - usize
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 921
      start: 898
    functionDepth: 15
    functionLinenumber: 898
    functionLinenumberEnd: 921
    functionName: VirtioPciDevice::write_config_register
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - write_config_register
    - len
    - bytes
    - VirtioPciDevice::write_cap_pci_cfg
    - String::len
    linkageType: ''
    returnType: (Vec
    signature: 'fn write_config_register(&mut self,reg_idx: usize,offset: u64,data:
      &[u8],) -> (Vec<BarReprogrammingParams>, Option<Arc<Barrier>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:929,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:929,1
    - Dst: VirtioPciDevice::read_cap_pci_cfg
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:933,1
    - Dst: u32::from_le_bytes
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:934,1
    - Dst: read_reg
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - reg_idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 938
      start: 923
    functionDepth: 14
    functionLinenumber: 923
    functionLinenumberEnd: 938
    functionName: VirtioPciDevice::read_config_register
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciDevice::read_cap_pci_cfg
    - u32::from_le_bytes
    - len
    - bytes
    - read_reg
    linkageType: ''
    returnType: u32
    signature: 'fn read_config_register(&mut self, reg_idx: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:947,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:948,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:949,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:949,1
    - Dst: Vec::is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:953,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:961,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:961,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:964,1
    - Dst: PciDeviceError::InvalidResource
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:964,1
    - Dst: None::is_none
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:973,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:974,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:982,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:986,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:982,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:988,1
    - Dst: '&mut AddressAllocator::allocate'
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:992,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:996,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:992,1
    - Dst: PciDeviceError::IoAllocationFailed
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:998,1
    - Dst: PciBarConfiguration::default
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1002,1
    - Dst: Self::set_index
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1002,1
    - Dst: Self::set_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1002,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1004,1
    - Dst: Self::set_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1002,1
    - Dst: Self::set_region_type
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1002,1
    - Dst: add_pci_bar
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1013,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1013,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1014,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1014,1
    - Dst: VirtioPciDevice::add_pci_capabilities
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1018,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1021,1
    - Dst: String::get_shm_regions
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1024,1
    - Dst: PciBarConfiguration::default
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1025,1
    - Dst: Self::set_index
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1025,1
    - Dst: Self::set_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1025,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1027,1
    - Dst: Self::set_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1025,1
    - Dst: size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1028,1
    - Dst: add_pci_bar
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1035,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1035,1
    - Dst: PciDeviceError::IoRegistrationFailed
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1036,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1036,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1039,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1039,1
    - Dst: VirtioPciCap64::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1040,1
    - Dst: add_capability
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1047,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1047,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1053,1
    - Dst: clone_from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1056,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1058,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 152
    argCount: 4
    argNames:
    - _allocator
    - mmio32_allocator
    - mmio64_allocator
    - resources
    argTypes:
    - '&Arc<Mutex<SystemAllocator>>'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    - Option<Vec<Resource>>
    constantsTouched: []
    func_position:
      end: 1059
      start: 940
    functionDepth: 13
    functionLinenumber: 940
    functionLinenumberEnd: 1059
    functionName: VirtioPciDevice::allocate_bars
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - size
    - Self::set_index
    - map_err
    - Ok
    - PciDeviceError::InvalidResource
    - Self::set_size
    - Vec::new
    - PciDeviceError::IoAllocationFailed
    - '&mut AddressAllocator::allocate'
    - VirtioPciCap64::new
    - PciBarConfiguration::default
    - PciDeviceError::IoRegistrationFailed
    - Result::push
    - raw_value
    - Self::set_region_type
    - iter
    - vm_memory::GuestAddress
    - Vec::is_some
    - String::get_shm_regions
    - add_pci_bar
    - Err
    - lock
    - Self::set_address
    - clone_from
    - unwrap
    - Option::ok_or
    - clone
    - None::is_none
    - VirtioPciDevice::add_pci_capabilities
    - enumerate
    - add_capability
    - Some
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn allocate_bars(&mut self,_allocator: &Arc<Mutex<SystemAllocator>>,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,resources: Option<Vec<Resource>>,)
      -> std::result::Result<Vec<PciBarConfiguration>, PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: drain
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1067,1
    - Dst: result::Result::region_type
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1068,1
    - Dst: '&mut AddressAllocator::free'
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1070,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1070,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1070,1
    - Dst: result::Result::size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1070,1
    - Dst: '&mut AddressAllocator::free'
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1073,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1073,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1073,1
    - Dst: result::Result::size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1073,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 3
    argNames:
    - _allocator
    - mmio32_allocator
    - mmio64_allocator
    argTypes:
    - '&mut SystemAllocator'
    - '&mut AddressAllocator'
    - '&mut AddressAllocator'
    constantsTouched: []
    func_position:
      end: 1079
      start: 1061
    functionDepth: 9
    functionLinenumber: 1061
    functionLinenumberEnd: 1079
    functionName: VirtioPciDevice::free_bars
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - result::Result::size
    - vm_memory::GuestAddress
    - result::Result::region_type
    - drain
    - result::Result::addr
    - '&mut AddressAllocator::free'
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn free_bars(&mut self,_allocator: &mut SystemAllocator,mmio32_allocator:
      &mut AddressAllocator,mmio64_allocator: &mut AddressAllocator,) -> std::result::Result<(),
      PciDeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1088,1
    - Dst: result::Result::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1089,1
    - Dst: result::Result::set_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1090,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - old_base
    - new_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 1095
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1095
    functionName: VirtioPciDevice::move_bar
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - result::Result::set_address
    - Ok
    - result::Result::addr
    - iter_mut
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn move_bar(&mut self,old_base: u64,new_base: u64,) -> std::result::Result<(),
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1099,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1103,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1105,1
    - Dst: String::get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1106,1
    - Dst: swap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1108,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1111,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1114,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1114,1
    - Dst: String::read_config
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1115,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1117,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1122,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1124,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1124,1
    - Dst: read_table
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1124,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1130,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1132,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1132,1
    - Dst: read_pba
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 88
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1140
      start: 1097
    functionDepth: 12
    functionLinenumber: 1097
    functionLinenumberEnd: 1140
    functionName: VirtioPciDevice::read_bar
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 2
    functionsReached:
    - String::read_config
    - String::get_mut
    - swap
    - lock
    - contains
    - unwrap
    - read
    - read_table
    - read_pba
    - clone
    linkageType: ''
    returnType: void
    signature: 'fn read_bar(&mut self, _base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1144,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1148,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1150,1
    - Dst: String::first
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1151,1
    - Dst: fetch_and
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1152,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1156,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1159,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1159,1
    - Dst: String::write_config
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1160,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1162,1
    - Dst: VirtioPciDevice::ioeventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1166,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1168,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1168,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1175,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1177,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1177,1
    - Dst: write_table
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1177,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1183,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1185,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1185,1
    - Dst: write_pba
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1185,1
    - Dst: VirtioPciDevice::needs_activation
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1195,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1196,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1196,1
    - Dst: VirtioPciDevice::prepare_activator
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1197,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1197,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1197,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1198,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1198,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1198,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1203,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1203,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1205,1
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1209,1
    - Dst: VirtioPciDevice::is_driver_init
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1209,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1210,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1210,1
    - Dst: String::reset
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1211,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1213,1
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1214,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1218,1
    - Dst: for_each
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 174
    argCount: 3
    argNames:
    - _base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1227
      start: 1142
    functionDepth: 13
    functionLinenumber: 1142
    functionLinenumberEnd: 1227
    functionName: VirtioPciDevice::write_bar
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 2
    functionsReached:
    - push
    - write_pba
    - write_table
    - String::write_config
    - VirtioPciDevice::is_driver_init
    - String::first
    - Arc::new
    - store
    - Barrier::new
    - iter_mut
    - for_each
    - load
    - String::reset
    - lock
    - contains
    - unwrap
    - VirtioPciDevice::prepare_activator
    - Result::clone
    - clone
    - ok
    - VirtioPciDevice::ioeventfds
    - VirtioPciDevice::needs_activation
    - fetch_and
    - Some
    - write
    linkageType: ''
    returnType: Option
    signature: 'fn write_bar(&mut self, _base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1231
    functionName: VirtioPciDevice::as_any_mut
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut dyn Any'
    signature: fn as_any_mut(&mut self) -> &mut dyn Any
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1259
    functionDepth: 3
    functionLinenumber: 1259
    functionLinenumberEnd: 1261
    functionName: VirtioPciDevice::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciDevice::read_bar
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1241
      start: 1239
    functionDepth: 13
    functionLinenumber: 1239
    functionLinenumberEnd: 1241
    functionName: VirtioPciDevice::read
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciDevice::read_bar
    linkageType: ''
    returnType: void
    signature: 'fn read(&mut self, base: u64, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VirtioPciDevice::write_bar
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - offset
    - data
    argTypes:
    - u64
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1245
      start: 1243
    functionDepth: 14
    functionLinenumber: 1243
    functionLinenumberEnd: 1245
    functionName: VirtioPciDevice::write
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - VirtioPciDevice::write_bar
    linkageType: ''
    returnType: Option
    signature: 'fn write(&mut self, base: u64, offset: u64, data: &[u8]) -> Option<Arc<Barrier>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1251
    functionName: VirtioPciDevice::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1255
    functionName: VirtioPciDevice::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1264,1
    - Dst: VirtioPciDevice::state
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1264,1
    - Dst: add_snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1267,1
    - Dst: id
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1268,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1268,1
    - Dst: add_snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1271,1
    - Dst: id
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1272,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1272,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1276,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1276,1
    - Dst: add_snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1277,1
    - Dst: id
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1277,1
    - Dst: snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1277,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs:1280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1263
    functionDepth: 12
    functionLinenumber: 1263
    functionLinenumberEnd: 1281
    functionName: VirtioPciDevice::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - lock
    - unwrap
    - snapshot
    - id
    - VirtioPciDevice::state
    - add_snapshot
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - t
    - queue_size
    argTypes:
    - VringType
    - u16
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: get_vring_size
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'pub fn get_vring_size(t: VringType, queue_size: u16) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:149,1
    - Dst: AtomicU16::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:149,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:150,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - state
    - access_platform
    argTypes:
    - VirtioPciCommonConfigState
    - Option<Arc<dyn AccessPlatform>>
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: VirtioPciCommonConfig::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - Mutex::new
    - AtomicU16::new
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(state: VirtioPciCommonConfigState,access_platform: Option<Arc<dyn
      AccessPlatform>>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:161,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:162,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:162,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 13
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: VirtioPciCommonConfig::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - lock
    - load
    - unwrap
    - clone
    linkageType: ''
    returnType: VirtioPciCommonConfigState
    signature: fn state(&self) -> VirtioPciCommonConfigState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:175,1
    - Dst: VirtioPciCommonConfig::read_common_config_byte
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:177,1
    - Dst: VirtioPciCommonConfig::read_common_config_word
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:181,1
    - Dst: LittleEndian::write_u16
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:182,1
    - Dst: VirtioPciCommonConfig::read_common_config_dword
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:185,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:186,1
    - Dst: VirtioPciCommonConfig::read_common_config_qword
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:189,1
    - Dst: LittleEndian::write_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - offset
    - data
    - queues
    - device
    argTypes:
    - u64
    - '&mut [u8]'
    - '&[Queue]'
    - Arc<Mutex<dyn VirtioDevice>>
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 13
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: VirtioPciCommonConfig::read
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u64
    - LittleEndian::write_u16
    - VirtioPciCommonConfig::read_common_config_dword
    - VirtioPciCommonConfig::read_common_config_word
    - String::len
    - VirtioPciCommonConfig::read_common_config_byte
    - LittleEndian::write_u32
    - VirtioPciCommonConfig::read_common_config_qword
    linkageType: ''
    returnType: void
    signature: 'pub fn read(&mut self,offset: u64,data: &mut [u8],queues: &[Queue],device:
      Arc<Mutex<dyn VirtioDevice>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:206,1
    - Dst: VirtioPciCommonConfig::write_common_config_byte
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:207,1
    - Dst: VirtioPciCommonConfig::write_common_config_word
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:208,1
    - Dst: LittleEndian::read_u16
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:208,1
    - Dst: VirtioPciCommonConfig::write_common_config_dword
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:210,1
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:212,1
    - Dst: VirtioPciCommonConfig::write_common_config_qword
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:217,1
    - Dst: LittleEndian::read_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - offset
    - data
    - queues
    - device
    argTypes:
    - u64
    - '&[u8]'
    - '&mut [Queue]'
    - Arc<Mutex<dyn VirtioDevice>>
    constantsTouched: []
    func_position:
      end: 220
      start: 197
    functionDepth: 17
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: VirtioPciCommonConfig::write
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 0
    functionsReached:
    - VirtioPciCommonConfig::write_common_config_qword
    - VirtioPciCommonConfig::write_common_config_word
    - LittleEndian::read_u16
    - LittleEndian::read_u64
    - VirtioPciCommonConfig::write_common_config_byte
    - VirtioPciCommonConfig::write_common_config_dword
    - String::len
    - LittleEndian::read_u32
    linkageType: ''
    returnType: void
    signature: 'pub fn write(&mut self,offset: u64,data: &[u8],queues: &mut [Queue],device:
      Arc<Mutex<dyn VirtioDevice>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: VirtioPciCommonConfig::read_common_config_byte
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn read_common_config_byte(&self, offset: u64) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - u64
    - u8
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: VirtioPciCommonConfig::write_common_config_byte
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn write_common_config_byte(&mut self, offset: u64, value: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:248,1
    - Dst: usize::len
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:249,1
    - Dst: VirtioPciCommonConfig::with_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:251,1
    - Dst: u32::size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:251,1
    - Dst: Option::unwrap_or
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:251,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:252,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:252,1
    - Dst: u16::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:253,1
    - Dst: VirtioPciCommonConfig::with_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:253,1
    - Dst: u32::ready
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:253,1
    - Dst: Option::unwrap_or
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - offset
    - queues
    argTypes:
    - u64
    - '&[Queue]'
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 12
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: VirtioPciCommonConfig::read_common_config_word
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - u32::ready
    - load
    - Option::unwrap_or
    - lock
    - VirtioPciCommonConfig::with_queue
    - u32::size
    - unwrap
    - u16::from
    - usize::len
    linkageType: ''
    returnType: u16
    signature: 'fn read_common_config_word(&self, offset: u64, queues: &[Queue]) ->
      u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:265,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:267,1
    - Dst: u32::set_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:267,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:268,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:268,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:269,1
    - Dst: u32::set_ready
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:271,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:274,1
    - Dst: u32::desc_table
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:275,1
    - Dst: get_vring_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:275,1
    - Dst: u32::size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:275,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:274,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:277,1
    - Dst: u32::avail_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:278,1
    - Dst: get_vring_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:278,1
    - Dst: u32::size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:278,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:277,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:280,1
    - Dst: u32::used_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:281,1
    - Dst: get_vring_size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:281,1
    - Dst: u32::size
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:281,1
    - Dst: cpu::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:280,1
    - Dst: u32::set_desc_table_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:283,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:284,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:285,1
    - Dst: u32::set_avail_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:287,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:288,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:289,1
    - Dst: u32::set_used_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:291,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:292,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 94
    argCount: 3
    argNames:
    - offset
    - value
    - queues
    argTypes:
    - u64
    - u16
    - '&mut [Queue]'
    constantsTouched: []
    func_position:
      end: 301
      start: 262
    functionDepth: 16
    functionLinenumber: 262
    functionLinenumberEnd: 301
    functionName: VirtioPciCommonConfig::write_common_config_word
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - get_vring_size
    - u32::used_ring
    - u32::set_desc_table_address
    - u32::set_avail_ring_address
    - u32::set_ready
    - cpu::Result::unwrap
    - u32::set_used_ring_address
    - lock
    - store
    - u32::avail_ring
    - unwrap
    - u32::set_size
    - u32::size
    - translate_gva
    - Some
    - u32::desc_table
    - VirtioPciCommonConfig::with_queue_mut
    linkageType: ''
    returnType: void
    signature: 'fn write_common_config_word(&mut self, offset: u64, value: u16, queues:
      &mut [Queue])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:309,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:309,1
    - Dst: features
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - offset
    - device
    argTypes:
    - u64
    - Arc<Mutex<dyn VirtioDevice>>
    constantsTouched: []
    func_position:
      end: 324
      start: 304
    functionDepth: 13
    functionLinenumber: 304
    functionLinenumberEnd: 324
    functionName: VirtioPciCommonConfig::read_common_config_dword
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - String::lock
    - features
    linkageType: ''
    returnType: u32
    signature: 'fn read_common_config_dword(&self, offset: u64, device: Arc<Mutex<dyn
      VirtioDevice>>) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::lock
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:341,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:341,1
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:342,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:343,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:346,1
    - Dst: u32::set_desc_table_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:346,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:346,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:347,1
    - Dst: u32::set_desc_table_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:347,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:347,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:348,1
    - Dst: u32::set_avail_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:348,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:348,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:349,1
    - Dst: u32::set_avail_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:349,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:349,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:350,1
    - Dst: u32::set_used_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:350,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:350,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:351,1
    - Dst: u32::set_used_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:351,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 60
    argCount: 4
    argNames:
    - offset
    - value
    - queues
    - device
    argTypes:
    - u64
    - u32
    - '&mut [Queue]'
    - Arc<Mutex<dyn VirtioDevice>>
    constantsTouched: []
    func_position:
      end: 356
      start: 327
    functionDepth: 13
    functionLinenumber: 327
    functionLinenumberEnd: 356
    functionName: VirtioPciCommonConfig::write_common_config_dword
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - u32::set_desc_table_address
    - u32::set_avail_ring_address
    - u32::set_used_ring_address
    - String::lock
    - u64::from
    - unwrap
    - ack_features
    - Some
    - VirtioPciCommonConfig::with_queue_mut
    linkageType: ''
    returnType: void
    signature: 'fn write_common_config_dword(&mut self,offset: u64,value: u32,queues:
      &mut [Queue],device: Arc<Mutex<dyn VirtioDevice>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _offset
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: VirtioPciCommonConfig::read_common_config_qword
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'fn read_common_config_qword(&self, _offset: u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:366,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:367,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:370,1
    - Dst: u32::set_desc_table_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:370,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:371,1
    - Dst: u32::set_avail_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:371,1
    - Dst: VirtioPciCommonConfig::with_queue_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:372,1
    - Dst: u32::set_used_ring_address
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - offset
    - value
    - queues
    argTypes:
    - u64
    - u64
    - '&mut [Queue]'
    constantsTouched: []
    func_position:
      end: 377
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 377
    functionName: VirtioPciCommonConfig::write_common_config_qword
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - u32::set_desc_table_address
    - u32::set_avail_ring_address
    - u32::set_used_ring_address
    - Some
    - VirtioPciCommonConfig::with_queue_mut
    linkageType: ''
    returnType: void
    signature: 'fn write_common_config_qword(&mut self, offset: u64, value: u64, queues:
      &mut [Queue])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::get
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:383,1
    - Dst: vm::Result::map
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - queues
    - f
    argTypes:
    - '&[Queue]'
    - F
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 8
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: VirtioPciCommonConfig::with_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 1
    functionsReached:
    - vm::Result::map
    - usize::get
    linkageType: ''
    returnType: Option
    signature: 'fn with_queue<U, F>(&self, queues: &[Queue], f: F) -> Option<U>whereF:
      FnOnce(&Queue) -> U,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:387,1
    - Dst: f
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - queues
    - f
    argTypes:
    - '&mut [Queue]'
    - F
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: VirtioPciCommonConfig::with_queue_mut
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 3
    functionsReached:
    - usize::get_mut
    - f
    linkageType: ''
    returnType: void
    signature: 'fn with_queue_mut<F: FnOnce(&mut Queue)>(&self, queues: &mut [Queue],
      f: F)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: VirtioPciCommonConfig::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 0
    functionsReached:
    - String::from
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:401,1
    - Dst: VirtioPciCommonConfig::state
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 14
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: VirtioPciCommonConfig::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 0
    functionsReached:
    - VirtioPciCommonConfig::state
    - Snapshot::new_from_state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:453,1
    - Dst: AtomicU16::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:453,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:454,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:454,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:457,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:457,1
    - Dst: DummyDevice
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:457,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:458,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:461,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:461,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:463,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:463,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:467,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:467,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:469,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:469,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:473,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:473,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:475,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:475,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:479,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:479,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:481,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:481,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:483,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:483,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:485,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:485,1
    - Dst: Result::write
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:489,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:489,1
    - Dst: Result::read
      Src: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 445
    functionDepth: 8
    functionLinenumber: 445
    functionLinenumberEnd: 494
    functionName: unit_tests::write_base_regs
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
    functionUses: 0
    functionsReached:
    - Result::write
    - Vec::new
    - Arc::new
    - Mutex::new
    - Result::clone
    - AtomicU16::new
    - Result::read
    - DummyDevice
    linkageType: ''
    returnType: void
    signature: fn write_base_regs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:119,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:119,1
    - Dst: HashMap::is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:123,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:124,1
    - Dst: HashMap::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:128,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:129,1
    - Dst: VsockError::HdrDescTooSmall
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:129,1
    - Dst: HashMap::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:129,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:133,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:134,1
    - Dst: HashMap::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:135,1
    - Dst: u64::translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:135,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:133,1
    - Dst: VsockResult::is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:145,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:146,1
    - Dst: VsockResult::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:151,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:152,1
    - Dst: VsockError::InvalidPktLen
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:152,1
    - Dst: VsockResult::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:152,1
    - Dst: HashMap::has_next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:156,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:157,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:157,1
    - Dst: is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:160,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:161,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:166,1
    - Dst: VsockResult::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:166,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:167,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:169,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:171,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:172,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:173,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:174,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:174,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:172,1
    - Dst: HashMap::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:180,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:182,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:183,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:184,1
    - Dst: HashMap::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:185,1
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:185,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:185,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:185,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:183,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:195,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 128
    argCount: 2
    argNames:
    - desc_chain
    - access_platform
    argTypes:
    - '&mut DescriptorChain<M>'
    - Option<&dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 196
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 196
    functionName: VsockPacket::from_tx_virtq_head
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 2
    functionsReached:
    - get_host_address_range
    - addr
    - Result::next
    - u64::checked_add
    - Result::memory
    - HashMap::addr
    - is_write_only
    - Ok
    - VsockError::HdrDescTooSmall
    - len
    - HashMap::has_next
    - VsockError::InvalidPktLen
    - Err
    - unwrap
    - VsockResult::len
    - Option::ok_or
    - HashMap::len
    - VsockResult::is_empty
    - HashMap::is_write_only
    - u64::translate_gva
    - translate_gva
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_tx_virtq_head<M>(desc_chain: &mut DescriptorChain<M>,access_platform:
      Option<&dyn AccessPlatform>,) -> Result<Self>whereM: Clone + Deref,M::Target:
      GuestMemory,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:211,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:211,1
    - Dst: HashMap::is_write_only
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:215,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:216,1
    - Dst: HashMap::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:220,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:221,1
    - Dst: VsockError::HdrDescTooSmall
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:221,1
    - Dst: HashMap::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:221,1
    - Dst: HashMap::has_next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:225,1
    - Dst: Result::next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:226,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:226,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:227,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:229,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:230,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:231,1
    - Dst: HashMap::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:232,1
    - Dst: u64::translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:232,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:230,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:237,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:238,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:239,1
    - Dst: addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:240,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:240,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:238,1
    - Dst: HashMap::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:248,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:249,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:250,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:251,1
    - Dst: HashMap::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:252,1
    - Dst: u64::translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:252,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:250,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:257,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:258,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:259,1
    - Dst: HashMap::addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:260,1
    - Dst: u64::checked_add
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:260,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:260,1
    - Dst: translate_gva
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:260,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:258,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 92
    argCount: 2
    argNames:
    - desc_chain
    - access_platform
    argTypes:
    - '&mut DescriptorChain<M>'
    - Option<&dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 271
      start: 203
    functionDepth: 9
    functionLinenumber: 203
    functionLinenumberEnd: 271
    functionName: VsockPacket::from_rx_virtq_head
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 4
    functionsReached:
    - HashMap::len
    - get_host_address_range
    - translate_gva
    - addr
    - HashMap::is_write_only
    - u64::translate_gva
    - Err
    - Result::next
    - VsockError::HdrDescTooSmall
    - u64::checked_add
    - unwrap
    - len
    - Result::memory
    - HashMap::addr
    - Option::ok_or
    - Some
    - HashMap::has_next
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_rx_virtq_head<M>(desc_chain: &mut DescriptorChain<M>,access_platform:
      Option<&dyn AccessPlatform>,) -> Result<Self>whereM: Clone + Deref,M::Target:
      GuestMemory,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::slice::from_raw_parts
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: VsockPacket::hdr
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 10
    functionsReached:
    - std::slice::from_raw_parts
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn hdr(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: VsockPacket::hdr_mut
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 10
    functionsReached:
    - std::slice::from_raw_parts_mut
    linkageType: ''
    returnType: '&mut [u8]'
    signature: pub fn hdr_mut(&mut self) -> &mut [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:297,1
    - Dst: std::slice::from_raw_parts
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: VsockPacket::buf
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - map
    - std::slice::from_raw_parts
    linkageType: ''
    returnType: Option
    signature: pub fn buf(&self) -> Option<&[u8]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:312,1
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: VsockPacket::buf_mut
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - map
    - std::slice::from_raw_parts_mut
    linkageType: ''
    returnType: Option
    signature: pub fn buf_mut(&mut self) -> Option<&mut [u8]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:320,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: VsockPacket::src_cid
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u64
    linkageType: ''
    returnType: u64
    signature: pub fn src_cid(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:324,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cid
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: VsockPacket::set_src_cid
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u64
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_src_cid(&mut self, cid: u64) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:329,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: VsockPacket::dst_cid
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u64
    linkageType: ''
    returnType: u64
    signature: pub fn dst_cid(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:333,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cid
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: VsockPacket::set_dst_cid
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 1
    functionsReached:
    - LittleEndian::write_u64
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_dst_cid(&mut self, cid: u64) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:338,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: VsockPacket::src_port
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u32
    linkageType: ''
    returnType: u32
    signature: pub fn src_port(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:342,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: VsockPacket::set_src_port
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_src_port(&mut self, port: u32) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:347,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: VsockPacket::dst_port
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u32
    linkageType: ''
    returnType: u32
    signature: pub fn dst_port(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:351,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: VsockPacket::set_dst_port
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_dst_port(&mut self, port: u32) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:356,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: VsockPacket::len
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 1
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u32
    linkageType: ''
    returnType: u32
    signature: pub fn len(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockPacket::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: VsockPacket::is_empty
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::len
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:364,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: VsockPacket::set_len
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_len(&mut self, len: u32) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u16
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:369,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: VsockPacket::type_
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u16
    linkageType: ''
    returnType: u16
    signature: pub fn type_(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u16
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:373,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - type_
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: VsockPacket::set_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 1
    functionsReached:
    - VsockPacket::hdr_mut
    - LittleEndian::write_u16
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_type(&mut self, type_: u16) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u16
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:378,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: VsockPacket::op
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u16
    linkageType: ''
    returnType: u16
    signature: pub fn op(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u16
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:382,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: VsockPacket::set_op
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr_mut
    - LittleEndian::write_u16
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_op(&mut self, op: u16) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:387,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: VsockPacket::flags
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 1
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u32
    linkageType: ''
    returnType: u32
    signature: pub fn flags(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:391,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: VsockPacket::set_flags
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 1
    functionsReached:
    - LittleEndian::write_u32
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_flags(&mut self, flags: u32) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockPacket::set_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:396,1
    - Dst: VsockPacket::flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - flag
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: VsockPacket::set_flag
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::set_flags
    - VsockPacket::flags
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_flag(&mut self, flag: u32) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:401,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: VsockPacket::buf_alloc
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u32
    linkageType: ''
    returnType: u32
    signature: pub fn buf_alloc(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:405,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - buf_alloc
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: VsockPacket::set_buf_alloc
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_buf_alloc(&mut self, buf_alloc: u32) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::read_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:410,1
    - Dst: VsockPacket::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: VsockPacket::fwd_cnt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockPacket::hdr
    - LittleEndian::read_u32
    linkageType: ''
    returnType: u32
    signature: pub fn fwd_cnt(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:414,1
    - Dst: VsockPacket::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fwd_cnt
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: VsockPacket::set_fwd_cnt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - VsockPacket::hdr_mut
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_fwd_cnt(&mut self, fwd_cnt: u32) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:464,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:466,1
    - Dst: GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:466,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:466,1
    - Dst: add
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:468,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:470,1
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - len
    - guest_desc
    - mem
    argTypes:
    - u32
    - '&GuestQDesc'
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 471
      start: 463
    functionDepth: 8
    functionLinenumber: 463
    functionLinenumberEnd: 471
    functionName: unit_tests::set_pkt_len
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - get_host_address_range
    - add
    - Option::unwrap
    - std::slice::from_raw_parts_mut
    - get
    - GuestAddress
    - LittleEndian::write_u32
    linkageType: ''
    returnType: void
    signature: 'fn set_pkt_len(len: u32, guest_desc: &GuestQDesc, mem: &GuestMemoryMmap)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockPacket::from_tx_virtq_head
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:479,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:480,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:480,1
    - Dst: next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:480,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:480,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:479,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:498,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:500,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:500,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:507,1
    - Dst: set_pkt_len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:516,1
    - Dst: VsockPacket::from_tx_virtq_head
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:517,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:518,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:518,1
    - Dst: next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:518,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:518,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:517,1
    - Dst: set_pkt_len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:533,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:544,1
    - Dst: try_into
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:546,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:546,1
    - Dst: set_pkt_len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:554,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 123
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 474
    functionDepth: 10
    functionLinenumber: 474
    functionLinenumberEnd: 558
    functionName: unit_tests::test_tx_packet_assembly
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - iter
    - next
    - set_pkt_len
    - try_into
    - set
    - VsockPacket::from_tx_virtq_head
    - unwrap
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_tx_packet_assembly()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockPacket::from_rx_virtq_head
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:565,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:566,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:566,1
    - Dst: next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:566,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:566,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:565,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:584,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 561
    functionDepth: 10
    functionLinenumber: 561
    functionLinenumberEnd: 596
    functionName: unit_tests::test_rx_packet_assembly
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - iter
    - next
    - set
    - unwrap
    - VsockPacket::from_rx_virtq_head
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rx_packet_assembly()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockPacket::from_rx_virtq_head
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:612,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:613,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:613,1
    - Dst: next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:613,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:613,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:612,1
    - Dst: VsockResult::set_src_cid
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: '&mut Self::set_dst_cid'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: '&mut Self::set_src_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: '&mut Self::set_dst_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: '&mut Self::set_len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: std::io::Result::set_type
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: '&mut Self::set_op'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: Result::set_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: set_buf_alloc
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: '&mut Self::set_fwd_cnt'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:623,1
    - Dst: VsockResult::flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:646,1
    - Dst: VsockResult::set_flag
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:647,1
    - Dst: VsockResult::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 599
    functionDepth: 10
    functionLinenumber: 599
    functionLinenumberEnd: 698
    functionName: unit_tests::test_packet_hdr_accessors
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - iter
    - '&mut Self::set_dst_cid'
    - next
    - '&mut Self::set_src_port'
    - std::io::Result::set_type
    - '&mut Self::set_op'
    - '&mut Self::set_fwd_cnt'
    - VsockResult::flags
    - Result::set_flags
    - VsockResult::set_src_cid
    - set_buf_alloc
    - VsockResult::set_flag
    - '&mut Self::set_len'
    - unwrap
    - VsockResult::hdr_mut
    - VsockPacket::from_rx_virtq_head
    - Result::unwrap
    - '&mut Self::set_dst_port'
    linkageType: ''
    returnType: void
    signature: fn test_packet_hdr_accessors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockPacket::from_rx_virtq_head
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:703,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:704,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:704,1
    - Dst: next
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:704,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:704,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:703,1
    - Dst: VsockResult::buf
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:722,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:722,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:722,1
    - Dst: VsockResult::buf_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:723,1
    - Dst: Option::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 701
    functionDepth: 10
    functionLinenumber: 701
    functionLinenumberEnd: 726
    functionName: unit_tests::test_packet_buf
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
    functionUses: 0
    functionsReached:
    - VsockResult::buf
    - iter
    - next
    - Option::unwrap
    - VsockResult::buf_mut
    - unwrap
    - len
    - VsockPacket::from_rx_virtq_head
    - Result::unwrap
    - Self::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_packet_buf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trigger
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:110,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:111,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:110,1
    - Dst: DeviceError::FailedSignalingUsedQueue
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - queue_index
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: VsockEpollHandler::signal_used_queue
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 2
    functionsReached:
    - trigger
    - DeviceError::FailedSignalingUsedQueue
    - VirtioInterruptType::Queue
    - map_err
    linkageType: ''
    returnType: result::Result
    signature: 'fn signal_used_queue(&self, queue_index: u16) -> result::Result<(),
      DeviceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:126,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:126,1
    - Dst: VsockPacket::from_rx_virtq_head
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:127,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:129,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:132,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:132,1
    - Dst: recv_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:132,1
    - Dst: is_ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:132,1
    - Dst: VsockResult::hdr
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:133,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:133,1
    - Dst: VsockResult::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:133,1
    - Dst: go_to_previous_position
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:137,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:147,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:148,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:148,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:147,1
    - Dst: VsockEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:154,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 121
    functionDepth: 10
    functionLinenumber: 121
    functionLinenumberEnd: 158
    functionName: VsockEpollHandler::process_rx
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 1
    functionsReached:
    - is_ok
    - recv_pkt
    - map_err
    - '&[u8]::len'
    - VsockResult::len
    - go_to_previous_position
    - VsockPacket::from_rx_virtq_head
    - pop_descriptor_chain
    - VsockResult::hdr
    - add_used
    - Result::head_index
    - VsockEpollHandler::signal_used_queue
    - Ok
    - unwrap
    - memory
    - Result::memory
    - as_deref
    - write
    linkageType: ''
    returnType: result::Result
    signature: fn process_rx(&mut self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_descriptor_chain
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:168,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:168,1
    - Dst: VsockPacket::from_tx_virtq_head
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:169,1
    - Dst: as_deref
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:171,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:176,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:177,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:177,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:176,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:184,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:184,1
    - Dst: send_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:184,1
    - Dst: is_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:184,1
    - Dst: go_to_previous_position
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:185,1
    - Dst: add_used
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:189,1
    - Dst: Result::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:190,1
    - Dst: Result::head_index
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:190,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:189,1
    - Dst: VsockEpollHandler::signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:196,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 163
    functionDepth: 10
    functionLinenumber: 163
    functionLinenumberEnd: 200
    functionName: VsockEpollHandler::process_tx
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 1
    functionsReached:
    - map_err
    - send_pkt
    - add_used
    - go_to_previous_position
    - pop_descriptor_chain
    - VsockPacket::from_tx_virtq_head
    - Result::head_index
    - is_err
    - VsockEpollHandler::signal_used_queue
    - Ok
    - unwrap
    - memory
    - Result::memory
    - as_deref
    - write
    linkageType: ''
    returnType: result::Result
    signature: fn process_tx(&mut self) -> result::Result<(), DeviceError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:207,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:208,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:208,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:209,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:209,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:210,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:210,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:211,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:211,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:211,1
    - Dst: get_polled_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:211,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:212,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 15
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: VsockEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - run
    - EpollHelper::new
    - unwrap
    - Ok
    - read
    - as_raw_fd
    - get_polled_fd
    - add_event
    linkageType: ''
    returnType: result::Result
    signature: 'fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) -> result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::Events::from_bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:227,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:232,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:240,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:240,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:241,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:243,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:243,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:243,1
    - Dst: VsockEpollHandler::process_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:244,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:244,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:245,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:251,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:251,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:252,1
    - Dst: VsockEpollHandler::process_tx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:255,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:255,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:256,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:262,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:262,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:262,1
    - Dst: VsockEpollHandler::process_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:263,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:263,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:264,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:270,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:270,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:271,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:276,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:276,1
    - Dst: notify
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:276,1
    - Dst: VsockEpollHandler::process_tx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:282,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:282,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:283,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:285,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:285,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:285,1
    - Dst: VsockEpollHandler::process_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:286,1
    - Dst: result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:286,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:287,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:292,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:292,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:298,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 128
    argCount: 2
    argNames:
    - _helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 299
      start: 222
    functionDepth: 10
    functionLinenumber: 222
    functionLinenumberEnd: 299
    functionName: VsockEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - EpollHelperError::HandleEvent
    - map_err
    - epoll::Events::from_bits
    - has_pending_rx
    - Err
    - notify
    - VsockEpollHandler::process_rx
    - unwrap
    - result::Result::map_err
    - read
    - VsockEpollHandler::process_tx
    - write
    - Ok
    linkageType: ''
    returnType: result::Result
    signature: 'fn handle_event(&mut self,_helper: &mut EpollHelper,event: &epoll::Event,)
      -> result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:348,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:353,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:353,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:353,1
    - Dst: to_vec
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:354,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:356,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:356,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:357,1
    - Dst: u64::into
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:360,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:361,1
    - Dst: RwLock::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 8
    argNames:
    - id
    - cid
    - path
    - backend
    - iommu
    - seccomp_action
    - exit_evt
    - state
    argTypes:
    - String
    - u32
    - PathBuf
    - B
    - bool
    - SeccompAction
    - EventFd
    - Option<VsockState>
    constantsTouched: []
    func_position:
      end: 366
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 366
    functionName: Vsock::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - u64::into
    - Arc::new
    - RwLock::new
    - Barrier::new
    - AtomicBool::new
    - Some
    - to_vec
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn new(id: String,cid: u32,path: PathBuf,backend: B,iommu: bool,seccomp_action:
      SeccompAction,exit_evt: EventFd,state: Option<VsockState>,) -> io::Result<Vsock<B>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: Vsock::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: VsockState
    signature: fn state(&self) -> VsockState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Vsock::wait_for_epoll_threads
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - wait_for_epoll_threads
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_epoll_threads(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:386,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:388,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 8
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: Vsock::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: Vsock::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: Vsock::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: Vsock::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: Vsock::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:416,1
    - Dst: LittleEndian::write_u64
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:416,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:417,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:417,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:418,1
    - Dst: LittleEndian::write_u32
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: Vsock::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - String::len
    - LittleEndian::write_u64
    - LittleEndian::write_u32
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:435,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:435,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:436,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:438,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:439,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:441,1
    - Dst: '&[EventFd]::push'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:442,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:452,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:453,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:456,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:457,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:458,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:460,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:466,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:466,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:466,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:469,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:471,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 64
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 473
      start: 429
    functionDepth: 18
    functionLinenumber: 429
    functionLinenumberEnd: 473
    functionName: Vsock::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - activate
    - Vec::new
    - '&[EventFd]::push'
    - as_ref
    - Some
    - event_monitor::event
    - Option::run
    - clone
    - dup_eventfds
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - Result::push
    - thread_helper::spawn_virtio_thread
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:476,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 14
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: Vsock::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - reset
    - event_monitor::event
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::remove_file
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:482,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 483
    functionName: Vsock::shutdown
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - std::fs::remove_file
    - ok
    linkageType: ''
    returnType: void
    signature: fn shutdown(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_access_platform
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - access_platform
    argTypes:
    - Arc<dyn AccessPlatform>
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: Vsock::set_access_platform
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - set_access_platform
    linkageType: ''
    returnType: void
    signature: 'fn set_access_platform(&mut self, access_platform: Arc<dyn AccessPlatform>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 16
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: Vsock::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 14
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: Vsock::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - resume
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: Vsock::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:512,1
    - Dst: Vsock::state
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 8
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: Vsock::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - Snapshot::new_from_state
    - Vsock::state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:529,1
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:547,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:547,1
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:549,1
    - Dst: u64::from
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:549,1
    - Dst: read_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:559,1
    - Dst: read_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:564,1
    - Dst: read_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:572,1
    - Dst: read_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:577,1
    - Dst: write_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:582,1
    - Dst: GuestMemoryAtomic::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:584,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:584,1
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:588,1
    - Dst: Result::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:589,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:589,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:589,1
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:596,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:599,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 528
    functionDepth: 18
    functionLinenumber: 528
    functionLinenumberEnd: 619
    functionName: unit_tests::test_virtio_device
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - activate
    - Vec::new
    - Arc::new
    - read_config
    - u64::from
    - GuestMemoryAtomic::new
    - unwrap
    - TestContext::new
    - Result::clone
    - ack_features
    - write_config
    - clone
    linkageType: ''
    returnType: void
    signature: fn test_virtio_device()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:625,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:626,1
    - Dst: Queue::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:628,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:628,1
    - Dst: signal_used_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:629,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 631
    functionName: unit_tests::test_irq
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - Result::create_epoll_handler_context
    - signal_used_queue
    - unwrap
    - TestContext::new
    - Self::unwrap
    - Queue::new
    linkageType: ''
    returnType: void
    signature: fn test_irq()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:639,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:640,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:642,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:642,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:642,1
    - Dst: signal_txq_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:643,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:655,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:656,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:658,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:658,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:658,1
    - Dst: signal_txq_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:659,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:670,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:671,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:673,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:673,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:673,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:674,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:674,1
    - Dst: set_tx_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:674,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:678,1
    - Dst: signal_txq_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:679,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:689,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:690,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:693,1
    - Dst: signal_txq_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:694,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:704,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:705,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:708,1
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:710,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:710,1
    - Dst: handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:712,1
    - Dst: expect_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 634
    functionDepth: 12
    functionLinenumber: 634
    functionLinenumberEnd: 716
    functionName: unit_tests::test_txq_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - set_pending_rx
    - handle_event
    - set
    - std::result::Result::unwrap
    - expect_err
    - signal_txq_event
    - EpollHelper::new
    - unwrap
    - epoll::Event::new
    - TestContext::new
    - set_tx_err
    - Some
    - Result::create_epoll_handler_context
    - write
    linkageType: ''
    returnType: void
    signature: fn test_txq_event()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:725,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:726,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:728,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:728,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:728,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:729,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:729,1
    - Dst: set_rx_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:729,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:733,1
    - Dst: signal_rxq_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:734,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:745,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:746,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:748,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:748,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:748,1
    - Dst: signal_rxq_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:749,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:757,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:758,1
    - Dst: set
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:761,1
    - Dst: process_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:764,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:764,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:771,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:772,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:773,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:773,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:773,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:776,1
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:778,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:778,1
    - Dst: handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:781,1
    - Dst: expect_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 719
    functionDepth: 11
    functionLinenumber: 719
    functionLinenumberEnd: 785
    functionName: unit_tests::test_rxq_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - set_pending_rx
    - signal_rxq_event
    - process_rx
    - handle_event
    - set
    - std::result::Result::unwrap
    - set_rx_err
    - expect_err
    - EpollHelper::new
    - unwrap
    - epoll::Event::new
    - TestContext::new
    - Some
    - Result::create_epoll_handler_context
    - write
    linkageType: ''
    returnType: void
    signature: fn test_rxq_event()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:791,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:792,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:793,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:793,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:793,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:796,1
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:798,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:798,1
    - Dst: handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:802,1
    - Dst: expect_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 806
      start: 788
    functionDepth: 14
    functionLinenumber: 788
    functionLinenumberEnd: 806
    functionName: unit_tests::test_evq_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - set_pending_rx
    - handle_event
    - std::result::Result::unwrap
    - expect_err
    - EpollHelper::new
    - unwrap
    - epoll::Event::new
    - TestContext::new
    - Result::create_epoll_handler_context
    - write
    linkageType: ''
    returnType: void
    signature: fn test_evq_event()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:814,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:815,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:817,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:817,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:817,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:820,1
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:822,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:822,1
    - Dst: handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:823,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:823,1
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:840,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:841,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:843,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:843,1
    - Dst: set_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:843,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:846,1
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:848,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:848,1
    - Dst: handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:849,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 809
    functionDepth: 14
    functionLinenumber: 809
    functionLinenumberEnd: 861
    functionName: unit_tests::test_backend_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - set_pending_rx
    - handle_event
    - std::result::Result::unwrap
    - EpollHelper::new
    - unwrap
    - epoll::Event::new
    - TestContext::new
    - Result::create_epoll_handler_context
    - write
    linkageType: ''
    returnType: void
    signature: fn test_backend_event()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:865,1
    - Dst: Result::create_epoll_handler_context
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:866,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:869,1
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:871,1
    - Dst: std::result::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:871,1
    - Dst: handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:873,1
    - Dst: expect_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 864
    functionDepth: 15
    functionLinenumber: 864
    functionLinenumberEnd: 876
    functionName: unit_tests::test_unknown_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
    functionUses: 0
    functionsReached:
    - handle_event
    - std::result::Result::unwrap
    - expect_err
    - EpollHelper::new
    - epoll::Event::new
    - TestContext::new
    - Result::create_epoll_handler_context
    linkageType: ''
    returnType: void
    signature: fn test_unknown_event()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: MuxerRxQ::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 1
    functionsReached:
    - VecDeque::with_capacity
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:52,1
    - Dst: Self::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:55,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:56,1
    - Dst: u32::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:59,1
    - Dst: u32::push_back
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:63,1
    - Dst: MuxerRx::ConnRx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - conn_map
    argTypes:
    - '&HashMap<ConnMapKey, MuxerConnection>'
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: MuxerRxQ::from_conn_map
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 1
    functionsReached:
    - MuxerRx::ConnRx
    - has_pending_rx
    - Self::iter
    - VecDeque::new
    - u32::len
    - u32::push_back
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_conn_map(conn_map: &HashMap<ConnMapKey, MuxerConnection>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerRxQ::is_synced
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:84,1
    - Dst: MuxerRxQ::is_full
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:84,1
    - Dst: push_back
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:85,1
    - Dst: iter_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:94,1
    - Dst: rev
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - rx
    argTypes:
    - MuxerRx
    constantsTouched: []
    func_position:
      end: 108
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 108
    functionName: MuxerRxQ::push
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 0
    functionsReached:
    - MuxerRxQ::is_full
    - push_back
    - rev
    - MuxerRxQ::is_synced
    - iter_mut
    linkageType: ''
    returnType: bool
    signature: 'pub fn push(&mut self, rx: MuxerRx) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:113,1
    - Dst: copied
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: MuxerRxQ::peek
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 0
    functionsReached:
    - copied
    - front
    linkageType: ''
    returnType: Option
    signature: pub fn peek(&self) -> Option<MuxerRx>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_front
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: MuxerRxQ::pop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 0
    functionsReached:
    - pop_front
    linkageType: ''
    returnType: Option
    signature: pub fn pop(&mut self) -> Option<MuxerRx>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: MuxerRxQ::is_synced
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_synced(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: MuxerRxQ::len
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 2
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerRxQ::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: MuxerRxQ::is_empty
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 0
    functionsReached:
    - MuxerRxQ::len
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerRxQ::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: MuxerRxQ::is_full
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
    functionUses: 1
    functionsReached:
    - MuxerRxQ::len
    linkageType: ''
    returnType: bool
    signature: pub fn is_full(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:154,1
    - Dst: is_synced
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:154,1
    - Dst: MuxerRxQ::from_conn_map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:155,1
    - Dst: peek
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:158,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: Result::set_src_cid
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: '&mut Self::set_dst_cid'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: '&mut Self::set_src_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: '&mut Self::set_dst_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: '&mut Self::set_len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: std::io::Result::set_type
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: '&mut Self::set_flags'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: set_buf_alloc
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: '&mut Self::set_fwd_cnt'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:165,1
    - Dst: pop
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:175,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:175,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:176,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:182,1
    - Dst: VsockMuxer::apply_conn_mutation
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:184,1
    - Dst: recv_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:185,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:186,1
    - Dst: pop
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:189,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:189,1
    - Dst: u64::is_ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:195,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:199,1
    - Dst: VsockMuxer::remove_connection
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:200,1
    - Dst: VsockResult::src_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:201,1
    - Dst: VsockResult::dst_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:202,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:207,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 99
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - '&mut VsockPacket'
    constantsTouched: []
    func_position:
      end: 212
      start: 149
    functionDepth: 8
    functionLinenumber: 149
    functionLinenumberEnd: 212
    functionName: VsockMuxer::recv_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - is_synced
    - has_pending_rx
    - MuxerRxQ::from_conn_map
    - VsockResult::dst_port
    - Ok
    - VsockResult::set_op
    - recv_pkt
    - u64::is_ok
    - '&mut Self::set_len'
    - '&mut Self::set_flags'
    - pop
    - Result::set_src_cid
    - is_empty
    - '&mut Self::set_dst_cid'
    - '&mut Self::set_src_port'
    - VsockResult::op
    - std::io::Result::set_type
    - '&mut Self::set_fwd_cnt'
    - VsockMuxer::remove_connection
    - peek
    - VsockMuxer::apply_conn_mutation
    - Err
    - unwrap
    - set_buf_alloc
    - VsockResult::src_port
    - '&mut Self::set_dst_port'
    linkageType: ''
    returnType: VsockResult
    signature: 'fn recv_pkt(&mut self, pkt: &mut VsockPacket) -> VsockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockResult::dst_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:225,1
    - Dst: VsockResult::src_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:226,1
    - Dst: VsockResult::type_
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:237,1
    - Dst: VsockMuxer::enq_rst
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:238,1
    - Dst: VsockResult::dst_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:238,1
    - Dst: VsockResult::src_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:238,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:239,1
    - Dst: VsockResult::dst_cid
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:244,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:249,1
    - Dst: contains_key
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:252,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:256,1
    - Dst: VsockMuxer::handle_peer_request_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:258,1
    - Dst: VsockMuxer::enq_rst
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:261,1
    - Dst: VsockResult::dst_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:261,1
    - Dst: VsockResult::src_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:261,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:263,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:269,1
    - Dst: VsockMuxer::remove_connection
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:270,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:271,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:275,1
    - Dst: VsockMuxer::apply_conn_mutation
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:276,1
    - Dst: send_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 80
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - '&VsockPacket'
    constantsTouched: []
    func_position:
      end: 281
      start: 223
    functionDepth: 13
    functionLinenumber: 223
    functionLinenumberEnd: 281
    functionName: VsockMuxer::send_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - VsockMuxer::enq_rst
    - VsockResult::op
    - VsockMuxer::remove_connection
    - VsockResult::type_
    - send_pkt
    - VsockMuxer::apply_conn_mutation
    - VsockResult::src_port
    - contains_key
    - VsockResult::dst_cid
    - VsockResult::dst_port
    - VsockMuxer::handle_peer_request_pkt
    - Ok
    linkageType: ''
    returnType: VsockResult
    signature: 'fn send_pkt(&mut self, pkt: &VsockPacket) -> VsockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:287,1
    - Dst: is_synced
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: VsockMuxer::has_pending_rx
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - is_synced
    linkageType: ''
    returnType: bool
    signature: fn has_pending_rx(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: VsockMuxer::get_polled_fd
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn get_polled_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: VsockMuxer::get_polled_evset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: epoll::Events
    signature: fn get_polled_evset(&self) -> epoll::Events
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::wait
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:317,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:317,1
    - Dst: as_mut_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:317,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:319,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:319,1
    - Dst: VsockMuxer::handle_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:320,1
    - Dst: epoll::Events::from_bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:325,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:325,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames: []
    argTypes:
    - epoll::Events
    constantsTouched: []
    func_position:
      end: 345
      start: 312
    functionDepth: 10
    functionLinenumber: 312
    functionLinenumberEnd: 345
    functionName: VsockMuxer::notify
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - iter
    - epoll::wait
    - epoll::Events::from_bits
    - VsockMuxer::handle_event
    - take
    - as_mut_slice
    - as_raw_fd
    - usize::kind
    - Self::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn notify(&mut self, _: epoll::Events)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::create
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:356,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:356,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:359,1
    - Dst: UnixListener::bind
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:363,1
    - Dst: Result::and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:363,1
    - Dst: set_nonblocking
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:364,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:364,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:363,1
    - Dst: u64::into
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:368,1
    - Dst: MuxerRxQ::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:372,1
    - Dst: HashMap::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:373,1
    - Dst: HashMap::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:374,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:375,1
    - Dst: MuxerKillQ::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:376,1
    - Dst: HashSet::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:378,1
    - Dst: add_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:381,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:381,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 2
    argNames:
    - cid
    - host_sock_path
    argTypes:
    - u32
    - String
    constantsTouched: []
    func_position:
      end: 383
      start: 353
    functionDepth: 14
    functionLinenumber: 353
    functionLinenumberEnd: 383
    functionName: VsockMuxer::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - map
    - HashMap::with_capacity
    - map_err
    - Default::default
    - epoll::create
    - u64::into
    - File::from_raw_fd
    - HashSet::with_capacity
    - set_nonblocking
    - MuxerKillQ::new
    - Result::and_then
    - MuxerRxQ::new
    - UnixListener::bind
    - as_raw_fd
    - add_listener
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(cid: u32, host_sock_path: String) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:390,1
    - Dst: VsockMuxer::apply_conn_mutation
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:400,1
    - Dst: notify
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:401,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:408,1
    - Dst: accept
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:412,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:412,1
    - Dst: unwrap_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:412,1
    - Dst: accept
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:415,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:415,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:415,1
    - Dst: EmulationResult::set_nonblocking
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:419,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:419,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:419,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:415,1
    - Dst: VsockMuxer::add_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:429,1
    - Dst: EmulationResult::as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:429,1
    - Dst: EpollListener::LocalStream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:429,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:415,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:439,1
    - Dst: entry
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:440,1
    - Dst: EmulationResult::as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:442,1
    - Dst: or_default
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:440,1
    - Dst: Self::read_local_stream_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:444,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:447,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:455,1
    - Dst: EmulationResult::as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:455,1
    - Dst: VsockMuxer::remove_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:457,1
    - Dst: Result::and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:462,1
    - Dst: VsockMuxer::allocate_local_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:463,1
    - Dst: VsockMuxer::add_connection
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:465,1
    - Dst: MuxerConnection::new_local_init
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:470,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 108
    argCount: 2
    argNames:
    - fd
    - event_set
    argTypes:
    - RawFd
    - epoll::Events
    constantsTouched: []
    func_position:
      end: 489
      start: 387
    functionDepth: 9
    functionLinenumber: 387
    functionLinenumberEnd: 489
    functionName: VsockMuxer::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 1
    functionsReached:
    - entry
    - map_err
    - Result::and_then
    - VsockMuxer::add_connection
    - usize::kind
    - VsockMuxer::allocate_local_port
    - MuxerConnection::new_local_init
    - and_then
    - len
    - VsockMuxer::add_listener
    - accept
    - VsockMuxer::apply_conn_mutation
    - notify
    - unwrap_or
    - map
    - EmulationResult::as_raw_fd
    - remove
    - EpollListener::LocalStream
    - get_mut
    - Self::read_local_stream_port
    - VsockMuxer::remove_listener
    - or_default
    - unwrap_or_else
    - EmulationResult::set_nonblocking
    linkageType: ''
    returnType: void
    signature: 'fn handle_event(&mut self, fd: RawFd, event_set: epoll::Events)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:495,1
    - Dst: position
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:495,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:498,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:500,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:501,1
    - Dst: Error::UnixRead
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:501,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:501,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:506,1
    - Dst: eq_ignore_ascii_case
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:506,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:506,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:507,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:511,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:511,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:512,1
    - Dst: ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:517,1
    - Dst: Error::UnixRead
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:517,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:517,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:520,1
    - Dst: std::str::from_utf8
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:522,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:522,1
    - Dst: trim
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:522,1
    - Dst: "map_err(|_| Error::InvalidPortRequest)?\n            .trim()\n       \
        \     .parse::<u32>"
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:522,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 1
    argNames:
    - command
    argTypes:
    - '&PartiallyReadCommand'
    constantsTouched: []
    func_position:
      end: 527
      start: 491
    functionDepth: 7
    functionLinenumber: 491
    functionLinenumberEnd: 527
    functionName: VsockMuxer::parse_port_from_read_command
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - iter
    - ok_or
    - "map_err(|_| Error::InvalidPortRequest)?\n            .trim()\n            .parse::<u32>"
    - map_err
    - position
    - is_none
    - std::str::from_utf8
    - trim
    - Error::UnixRead
    - Err
    - into
    - eq_ignore_ascii_case
    - len
    - as_bytes
    linkageType: ''
    returnType: Result
    signature: 'fn parse_port_from_read_command(command: &PartiallyReadCommand) ->
      Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EmulationResult::read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:548,1
    - Dst: std::cmp::max
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:549,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:549,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:548,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:553,1
    - Dst: Self::parse_port_from_read_command
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - command
    - stream
    argTypes:
    - '&mut PartiallyReadCommand'
    - '&mut UnixStream'
    constantsTouched: []
    func_position:
      end: 558
      start: 531
    functionDepth: 9
    functionLinenumber: 531
    functionLinenumberEnd: 558
    functionName: VsockMuxer::read_local_stream_port
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - std::cmp::max
    - IoResult::map_err
    - Err
    - EmulationResult::read
    - len
    - Self::parse_port_from_read_command
    linkageType: ''
    returnType: Result
    signature: 'fn read_local_stream_port(command: &mut PartiallyReadCommand,stream:
      &mut UnixStream,) -> Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockMuxer::sweep_killq
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:568,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:570,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:575,1
    - Dst: VsockMuxer::add_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:578,1
    - Dst: MuxerConnection::get_polled_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:579,1
    - Dst: MuxerConnection::get_polled_evset
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:582,1
    - Dst: Result::map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:578,1
    - Dst: MuxerConnection::has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:586,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:590,1
    - Dst: MuxerRx::ConnRx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:590,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 2
    argNames:
    - key
    - conn
    argTypes:
    - ConnMapKey
    - MuxerConnection
    constantsTouched: []
    func_position:
      end: 594
      start: 562
    functionDepth: 11
    functionLinenumber: 562
    functionLinenumberEnd: 594
    functionName: VsockMuxer::add_connection
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 2
    functionsReached:
    - MuxerConnection::get_polled_evset
    - insert
    - VsockMuxer::add_listener
    - MuxerRx::ConnRx
    - MuxerConnection::get_polled_fd
    - push
    - Err
    - MuxerConnection::has_pending_rx
    - len
    - VsockMuxer::sweep_killq
    - Result::map
    linkageType: ''
    returnType: Result
    signature: 'fn add_connection(&mut self, key: ConnMapKey, conn: MuxerConnection)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:599,1
    - Dst: VsockMuxer::remove_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:600,1
    - Dst: get_polled_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:600,1
    - Dst: VsockMuxer::free_local_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - key
    argTypes:
    - ConnMapKey
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 9
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: VsockMuxer::remove_connection
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 2
    functionsReached:
    - get_polled_fd
    - VsockMuxer::free_local_port
    - VsockMuxer::remove_listener
    - remove
    linkageType: ''
    returnType: void
    signature: 'fn remove_connection(&mut self, key: ConnMapKey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:611,1
    - Dst: and_modify
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:611,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:612,1
    - Dst: kill
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:613,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:621,1
    - Dst: MuxerRx::ConnRx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - key
    argTypes:
    - ConnMapKey
    constantsTouched: []
    func_position:
      end: 623
      start: 609
    functionDepth: 9
    functionLinenumber: 609
    functionLinenumberEnd: 623
    functionName: VsockMuxer::kill_connection
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 2
    functionsReached:
    - entry
    - MuxerRx::ConnRx
    - and_modify
    - has_pending_rx
    - push
    - kill
    linkageType: ''
    returnType: void
    signature: 'fn kill_connection(&mut self, key: ConnMapKey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:634,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:635,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:638,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:634,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:641,1
    - Dst: Self::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:634,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - listener
    argTypes:
    - RawFd
    - EpollListener
    constantsTouched: []
    func_position:
      end: 646
      start: 627
    functionDepth: 9
    functionLinenumber: 627
    functionLinenumberEnd: 646
    functionName: VsockMuxer::add_listener
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 3
    functionsReached:
    - map
    - insert
    - Self::map_err
    - epoll::ctl
    - epoll::Event::new
    - as_raw_fd
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn add_listener(&mut self, fd: RawFd, listener: EpollListener) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:651,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:653,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:654,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:655,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:658,1
    - Dst: epoll::Events::empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:658,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - fd
    argTypes:
    - RawFd
    constantsTouched: []
    func_position:
      end: 666
      start: 650
    functionDepth: 9
    functionLinenumber: 650
    functionLinenumberEnd: 666
    functionName: VsockMuxer::remove_listener
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 3
    functionsReached:
    - is_some
    - remove
    - epoll::ctl
    - epoll::Event::new
    - as_raw_fd
    - unwrap_or_else
    - epoll::Events::empty
    linkageType: ''
    returnType: Option
    signature: 'fn remove_listener(&mut self, fd: RawFd) -> Option<EpollListener>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 683
      start: 671
    functionDepth: 9
    functionLinenumber: 671
    functionLinenumberEnd: 683
    functionName: VsockMuxer::allocate_local_port
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 1
    functionsReached:
    - insert
    linkageType: ''
    returnType: u32
    signature: fn allocate_local_port(&mut self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - port
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 689
      start: 687
    functionDepth: 9
    functionLinenumber: 687
    functionLinenumberEnd: 689
    functionName: VsockMuxer::free_local_port
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 1
    functionsReached:
    - remove
    linkageType: ''
    returnType: void
    signature: 'fn free_local_port(&mut self, port: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnixStream::connect
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:701,1
    - Dst: Result::and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:701,1
    - Dst: EmulationResult::set_nonblocking
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:702,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:702,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:701,1
    - Dst: and_then
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:701,1
    - Dst: VsockMuxer::add_connection
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:705,1
    - Dst: VsockResult::dst_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:707,1
    - Dst: VsockResult::src_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:708,1
    - Dst: MuxerConnection::new_peer_init
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:710,1
    - Dst: VsockResult::dst_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:714,1
    - Dst: VsockResult::src_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:715,1
    - Dst: VsockResult::buf_alloc
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:716,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:701,1
    - Dst: VsockMuxer::enq_rst
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:720,1
    - Dst: VsockResult::dst_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:720,1
    - Dst: VsockResult::src_port
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - '&VsockPacket'
    constantsTouched: []
    func_position:
      end: 721
      start: 698
    functionDepth: 12
    functionLinenumber: 698
    functionLinenumberEnd: 721
    functionName: VsockMuxer::handle_peer_request_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 1
    functionsReached:
    - VsockMuxer::enq_rst
    - UnixStream::connect
    - map
    - VsockResult::buf_alloc
    - map_err
    - MuxerConnection::new_peer_init
    - Result::and_then
    - and_then
    - VsockResult::dst_port
    - VsockResult::src_port
    - unwrap_or_else
    - EmulationResult::set_nonblocking
    - VsockMuxer::add_connection
    linkageType: ''
    returnType: void
    signature: 'fn handle_peer_request_pkt(&mut self, pkt: &VsockPacket)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:735,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:736,1
    - Dst: will_expire
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:737,1
    - Dst: state
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:738,1
    - Dst: mut_fn
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:740,1
    - Dst: state
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:744,1
    - Dst: send_bytes_raw
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:746,1
    - Dst: as_bytes
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:746,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:747,1
    - Dst: kill
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:751,1
    - Dst: kill
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:755,1
    - Dst: has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:762,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:763,1
    - Dst: MuxerRx::ConnRx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:763,1
    - Dst: will_expire
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:768,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:771,1
    - Dst: expiry
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:771,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:771,1
    - Dst: get_polled_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:774,1
    - Dst: get_polled_evset
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:775,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:776,1
    - Dst: VsockMuxer::remove_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:779,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:782,1
    - Dst: epoll::ctl
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:792,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:793,1
    - Dst: epoll::Event::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:796,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:792,1
    - Dst: VsockMuxer::kill_connection
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:801,1
    - Dst: VsockMuxer::add_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:811,1
    - Dst: Result::unwrap_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:811,1
    - Dst: VsockMuxer::kill_connection
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:819,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 116
    argCount: 2
    argNames:
    - key
    - mut_fn
    argTypes:
    - ConnMapKey
    - F
    constantsTouched: []
    func_position:
      end: 827
      start: 731
    functionDepth: 8
    functionLinenumber: 731
    functionLinenumberEnd: 827
    functionName: VsockMuxer::apply_conn_mutation
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 3
    functionsReached:
    - has_pending_rx
    - push
    - VsockMuxer::kill_connection
    - get_polled_fd
    - send_bytes_raw
    - len
    - epoll::Event::new
    - as_raw_fd
    - is_empty
    - VsockMuxer::add_listener
    - epoll::ctl
    - will_expire
    - expiry
    - unwrap
    - Result::unwrap_or_else
    - mut_fn
    - MuxerRx::ConnRx
    - kill
    - get_mut
    - state
    - get_polled_evset
    - VsockMuxer::remove_listener
    - as_bytes
    - unwrap_or_else
    linkageType: ''
    returnType: void
    signature: 'fn apply_conn_mutation<F>(&mut self, key: ConnMapKey, mut_fn: F)whereF:
      FnOnce(&mut MuxerConnection),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:833,1
    - Dst: entry
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:838,1
    - Dst: and_modify
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:838,1
    - Dst: has_expired
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:840,1
    - Dst: VsockMuxer::kill_connection
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:842,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:846,1
    - Dst: is_synced
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:846,1
    - Dst: MuxerKillQ::from_conn_map
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:847,1
    - Dst: VsockMuxer::sweep_killq
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 832
    functionDepth: 10
    functionLinenumber: 832
    functionLinenumberEnd: 852
    functionName: VsockMuxer::sweep_killq
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 2
    functionsReached:
    - entry
    - is_empty
    - MuxerKillQ::from_conn_map
    - is_synced
    - and_modify
    - pop
    - VsockMuxer::kill_connection
    - VsockMuxer::sweep_killq
    - has_expired
    linkageType: ''
    returnType: void
    signature: fn sweep_killq(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - local_port
    - peer_port
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 868
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 868
    functionName: VsockMuxer::enq_rst
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 2
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: 'fn enq_rst(&mut self, local_port: u32, peer_port: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1079
    functionDepth: 5
    functionLinenumber: 1079
    functionLinenumberEnd: 1083
    functionName: unit_tests::test_muxer_epoll_listener
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - MuxerTestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_muxer_epoll_listener()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1091,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1092,1
    - Dst: '&''a mut VsockPacket::set_type'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1092,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1094,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1099,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1115,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1116,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1117,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1119,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1127,1
    - Dst: '&''a mut VsockPacket::set_dst_cid'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1127,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1086
    functionDepth: 5
    functionLinenumber: 1086
    functionLinenumberEnd: 1131
    functionName: unit_tests::test_bad_peer_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - iter
    - Result::recv
    - MuxerTestContext::new
    - '&''a mut VsockPacket::set_type'
    - Result::init_pkt
    - Result::send
    - '&''a mut VsockPacket::set_dst_cid'
    linkageType: ''
    returnType: void
    signature: fn test_bad_peer_pkt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1138,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1141,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1142,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1143,1
    - Dst: Result::create_local_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1152,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1153,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1154,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1156,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1157,1
    - Dst: Result::init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1172,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1173,1
    - Dst: EmulationResult::read_exact
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1175,1
    - Dst: Self::as_mut_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1175,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1175,1
    - Dst: EmulationResult::write_all
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1180,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1180,1
    - Dst: Result::notify_muxer
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1185,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1134
    functionDepth: 5
    functionLinenumber: 1134
    functionLinenumberEnd: 1196
    functionName: unit_tests::test_peer_connection
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::accept
    - Result::recv
    - EmulationResult::read_exact
    - Result::create_local_listener
    - Result::init_data_pkt
    - Self::as_mut_slice
    - MuxerTestContext::new
    - unwrap
    - Result::init_pkt
    - Result::notify_muxer
    - Result::send
    - EmulationResult::write_all
    linkageType: ''
    returnType: void
    signature: fn test_peer_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1200,1
    - Dst: Result::local_connect
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1202,1
    - Dst: Result::init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1206,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1207,1
    - Dst: EmulationResult::read_exact
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1210,1
    - Dst: Self::as_mut_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1210,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1210,1
    - Dst: EmulationResult::write_all
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1215,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1215,1
    - Dst: Result::notify_muxer
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1216,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1199
    functionDepth: 5
    functionLinenumber: 1199
    functionLinenumberEnd: 1224
    functionName: unit_tests::test_local_connection
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - EmulationResult::read_exact
    - Result::recv
    - Result::init_data_pkt
    - Self::as_mut_slice
    - Result::local_connect
    - MuxerTestContext::new
    - unwrap
    - Result::notify_muxer
    - Result::send
    - EmulationResult::write_all
    linkageType: ''
    returnType: void
    signature: fn test_local_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:984,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:985,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:987,1
    - Dst: notify_epollin
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:988,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 983
    functionDepth: 5
    functionLinenumber: 983
    functionLinenumberEnd: 1003
    functionName: unit_tests::test_local_close
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new_established
    - recv
    - TestStream::new
    - set_stream
    - notify_epollin
    linkageType: ''
    returnType: void
    signature: fn test_local_close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1010,1
    - Dst: init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1012,1
    - Dst: set_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1012,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1014,1
    - Dst: set_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1019,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1020,1
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1029,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1030,1
    - Dst: TestStream::new_with_read_buf
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1030,1
    - Dst: init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1031,1
    - Dst: set_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1031,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1033,1
    - Dst: notify_epollin
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1034,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1035,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1039,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1040,1
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1049,1
    - Dst: init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1050,1
    - Dst: set_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1050,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1052,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1054,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1055,1
    - Dst: notify_epollin
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1058,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1059,1
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1066,1
    - Dst: init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1067,1
    - Dst: set_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1067,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1069,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1006
    functionDepth: 7
    functionLinenumber: 1006
    functionLinenumberEnd: 1074
    functionName: unit_tests::test_peer_close
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new_established
    - set_flags
    - recv
    - init_data_pkt
    - send
    - init_pkt
    - TestStream::new_with_read_buf
    - set_stream
    - notify_epollin
    linkageType: ''
    returnType: void
    signature: fn test_peer_close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1306,1
    - Dst: Result::create_local_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1309,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1310,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1313,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1314,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1315,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1315,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1323,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1328,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1334,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1339,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1342,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1350,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1363,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1305
    functionDepth: 5
    functionLinenumber: 1305
    functionLinenumberEnd: 1370
    functionName: unit_tests::test_muxer_rxq
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::accept
    - Result::recv
    - Result::create_local_listener
    - Vec::new
    - MuxerTestContext::new
    - Result::init_pkt
    - Result::push
    - Result::send
    linkageType: ''
    returnType: void
    signature: fn test_muxer_rxq()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1374,1
    - Dst: Result::create_local_listener
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1378,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1381,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1382,1
    - Dst: Result::notify_muxer
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1383,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1384,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1389,1
    - Dst: Result::notify_muxer
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1391,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1392,1
    - Dst: std::thread::sleep
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1408,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1408,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1413,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1418,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1427,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1373
    functionDepth: 5
    functionLinenumber: 1373
    functionLinenumberEnd: 1439
    functionName: unit_tests::test_muxer_killq
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - std::result::Result::accept
    - Result::recv
    - Result::create_local_listener
    - std::thread::sleep
    - std::time::Duration::from_millis
    - MuxerTestContext::new
    - Result::init_pkt
    - Result::notify_muxer
    - Result::send
    linkageType: ''
    returnType: void
    signature: fn test_muxer_killq()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1446,1
    - Dst: Result::local_connect
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1450,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1457,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1442
    functionDepth: 5
    functionLinenumber: 1442
    functionLinenumberEnd: 1461
    functionName: unit_tests::test_regression_handshake
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - MuxerTestContext::new
    - unwrap
    - Result::local_connect
    linkageType: ''
    returnType: void
    signature: fn test_regression_handshake()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1469,1
    - Dst: Result::local_connect
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1471,1
    - Dst: EmulationResult::write_all
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1475,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1475,1
    - Dst: Result::notify_muxer
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1476,1
    - Dst: get_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1483,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1483,1
    - Dst: insert_credit_update
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1486,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1491,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1464
    functionDepth: 5
    functionLinenumber: 1464
    functionLinenumberEnd: 1498
    functionName: unit_tests::test_regression_rxq_pop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached:
    - Result::recv
    - insert_credit_update
    - Result::local_connect
    - get_mut
    - MuxerTestContext::new
    - unwrap
    - Result::notify_muxer
    - EmulationResult::write_all
    linkageType: ''
    returnType: void
    signature: fn test_regression_rxq_pop()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1617
    functionName: unit_tests::test_parse_command
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_parse_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: MuxerKillQ::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
    functionUses: 1
    functionsReached:
    - VecDeque::with_capacity
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:75,1
    - Dst: Self::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:77,1
    - Dst: will_expire
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:78,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:81,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:85,1
    - Dst: expiry
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:87,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:87,1
    - Dst: sort_unstable_by_key
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:90,1
    - Dst: into
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - conn_map
    argTypes:
    - '&HashMap<ConnMapKey, MuxerConnection>'
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 7
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: MuxerKillQ::from_conn_map
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
    functionUses: 1
    functionsReached:
    - will_expire
    - push
    - Self::iter
    - into
    - sort_unstable_by_key
    - expiry
    - unwrap
    - len
    - Vec::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_conn_map(conn_map: &HashMap<ConnMapKey, MuxerConnection>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MuxerKillQ::is_synced
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:101,1
    - Dst: MuxerKillQ::is_full
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:101,1
    - Dst: push_back
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - key
    - kill_time
    argTypes:
    - ConnMapKey
    - Instant
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: MuxerKillQ::push
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
    functionUses: 0
    functionsReached:
    - MuxerKillQ::is_full
    - push_back
    - MuxerKillQ::is_synced
    linkageType: ''
    returnType: void
    signature: 'pub fn push(&mut self, key: ConnMapKey, kill_time: Instant)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:114,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:115,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:117,1
    - Dst: pop_front
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:117,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: MuxerKillQ::pop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - pop_front
    - unwrap
    - front
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn pop(&mut self) -> Option<ConnMapKey>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: MuxerKillQ::is_synced
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_synced(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: MuxerKillQ::is_empty
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: MuxerKillQ::is_full
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: bool
    signature: pub fn is_full(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: PendingRx::into_mask
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: fn into_mask(self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::into_mask
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - PendingRx
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: PendingRxSet::insert
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs
    functionUses: 0
    functionsReached:
    - bool::into_mask
    linkageType: ''
    returnType: void
    signature: 'fn insert(&mut self, it: PendingRx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PendingRxSet::contains
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs:108,1
    - Dst: bool::into_mask
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - it
    argTypes:
    - PendingRx
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: PendingRxSet::remove
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs
    functionUses: 0
    functionsReached:
    - bool::into_mask
    - PendingRxSet::contains
    linkageType: ''
    returnType: bool
    signature: 'fn remove(&mut self, it: PendingRx) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::into_mask
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - PendingRx
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: PendingRxSet::contains
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs
    functionUses: 1
    functionsReached:
    - bool::into_mask
    linkageType: ''
    returnType: bool
    signature: 'fn contains(&self, it: PendingRx) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: PendingRxSet::is_empty
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::into_mask
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - PendingRx
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: PendingRxSet::from
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs
    functionUses: 2
    functionsReached:
    - bool::into_mask
    linkageType: ''
    returnType: Self
    signature: 'fn from(it: PendingRx) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:33,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: TxBuf::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 7
    functionsReached:
    - std::num::Wrapping
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: TxBuf::len
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:52,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:52,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:53,1
    - Dst: get_or_insert_with
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:56,1
    - Dst: into_boxed_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:58,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:68,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:68,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:69,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:73,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:74,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:74,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:79,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:79,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 60
    argCount: 1
    argNames:
    - src
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: TxBuf::push
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 0
    functionsReached:
    - get_or_insert_with
    - std::num::Wrapping
    - '&[u8]::len'
    - std::cmp::min
    - Err
    - into_boxed_slice
    - copy_from_slice
    - TxBuf::len
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn push(&mut self, src: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:94,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:95,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:107,1
    - Dst: TxBuf::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:107,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:110,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:110,1
    - Dst: Serial::write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:114,1
    - Dst: Option::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:114,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:119,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:124,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:134,1
    - Dst: TxBuf::flush_to
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:134,1
    - Dst: Result::unwrap_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 1
    argNames:
    - sink
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 135
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 135
    functionName: TxBuf::flush_to
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 1
    functionsReached:
    - TxBuf::flush_to
    - std::num::Wrapping
    - std::cmp::min
    - as_ref
    - Option::map_err
    - TxBuf::is_empty
    - Result::unwrap_or
    - unwrap
    - Serial::write
    - TxBuf::len
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn flush_to<W>(&mut self, sink: &mut W) -> Result<usize>whereW:
      Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: TxBuf::is_empty
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 1
    functionsReached:
    - TxBuf::len
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:199,1
    - Dst: TestSink::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:200,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:204,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:204,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:205,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:205,1
    - Dst: Self::flush_to
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:206,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: unit_tests::test_push_nowrap
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 0
    functionsReached:
    - TxBuf::new
    - Self::push
    - Self::flush_to
    - TestSink::new
    - unwrap
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_push_nowrap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:212,1
    - Dst: TestSink::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:213,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:215,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:215,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:215,1
    - Dst: Self::flush_to
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:216,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:216,1
    - Dst: Serial::clear
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:217,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:219,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: unit_tests::test_push_wrap
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 0
    functionsReached:
    - TxBuf::new
    - Self::push
    - Self::flush_to
    - TestSink::new
    - Serial::clear
    - unwrap
    - as_slice
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_push_wrap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:226,1
    - Dst: Vec::with_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:227,1
    - Dst: resize
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:229,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:230,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:230,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:230,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 16
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: unit_tests::test_push_error
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 0
    functionsReached:
    - TxBuf::new
    - Self::push
    - as_slice
    - unwrap
    - Vec::with_capacity
    - resize
    linkageType: ''
    returnType: void
    signature: fn test_push_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:239,1
    - Dst: TestSink::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:240,1
    - Dst: Serial::set_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:242,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:243,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:243,1
    - Dst: Serial::set_capacity
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: unit_tests::test_incomplete_flush
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 0
    functionsReached:
    - TxBuf::new
    - Self::push
    - TestSink::new
    - Serial::set_capacity
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_incomplete_flush()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:258,1
    - Dst: TestSink::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:259,1
    - Dst: Self::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:261,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:261,1
    - Dst: IoError::from_raw_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:262,1
    - Dst: Serial::set_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:263,1
    - Dst: Self::flush_to
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:264,1
    - Dst: kind
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 6
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: unit_tests::test_flush_error
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
    functionUses: 0
    functionsReached:
    - TxBuf::new
    - Self::push
    - Serial::set_err
    - TestSink::new
    - Self::flush_to
    - IoError::from_raw_os_error
    - kind
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_flush_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockConnection::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:158,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:162,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:163,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:164,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:169,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:171,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:172,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:177,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:179,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:179,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:179,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:180,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:181,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:184,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:195,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:196,1
    - Dst: VsockConnection::need_credit_update_from_peer
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:202,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:204,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:205,1
    - Dst: VsockResult::buf_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:208,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:208,1
    - Dst: std::cmp::min
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:212,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:212,1
    - Dst: VsockConnection::peer_avail_credit
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:212,1
    - Dst: read
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:215,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:222,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:223,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:223,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:225,1
    - Dst: Result::set_flag
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:225,1
    - Dst: '&mut Self::set_flag'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:225,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:231,1
    - Dst: Result::set_len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:231,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:233,1
    - Dst: VsockResult::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:233,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:235,1
    - Dst: kind
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:237,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:253,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:255,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:263,1
    - Dst: VsockConnection::has_pending_rx
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:263,1
    - Dst: VsockResult::set_op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:264,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:266,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:271,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 174
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - '&mut VsockPacket'
    constantsTouched: []
    func_position:
      end: 272
      start: 155
    functionDepth: 9
    functionLinenumber: 155
    functionLinenumberEnd: 272
    functionName: VsockConnection::recv_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - VsockConnection::peer_avail_credit
    - std::cmp::min
    - Duration::from_millis
    - Ok
    - VsockResult::set_op
    - VsockConnection::need_credit_update_from_peer
    - VsockResult::buf_mut
    - Result::set_flag
    - Self::len
    - '&mut Self::set_flag'
    - Result::set_len
    - VsockConnection::has_pending_rx
    - Err
    - kind
    - read
    - VsockResult::len
    - Option::ok_or
    - std::num::Wrapping
    - remove
    - VsockConnection::init_pkt
    - Some
    linkageType: ''
    returnType: VsockResult
    signature: 'fn recv_pkt(&mut self, pkt: &mut VsockPacket) -> VsockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockResult::buf_alloc
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:284,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:285,1
    - Dst: VsockResult::fwd_cnt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:285,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:292,1
    - Dst: VsockResult::buf
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:294,1
    - Dst: Self::is_none
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:294,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:299,1
    - Dst: VsockResult::buf
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:303,1
    - Dst: Self::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:303,1
    - Dst: VsockResult::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:303,1
    - Dst: VsockConnection::send_bytes
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:304,1
    - Dst: VsockConnection::kill
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:311,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:312,1
    - Dst: VsockConnection::peer_needs_credit_update
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:318,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:319,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:326,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:335,1
    - Dst: VsockResult::flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:336,1
    - Dst: VsockResult::flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:337,1
    - Dst: ConnState::PeerClosed
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:338,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:340,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:341,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:343,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:344,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:344,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:353,1
    - Dst: VsockResult::flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:355,1
    - Dst: VsockResult::flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:356,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:357,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:358,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:365,1
    - Dst: VsockResult::op
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:373,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:375,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:387,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 151
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - '&VsockPacket'
    constantsTouched: []
    func_position:
      end: 388
      start: 282
    functionDepth: 8
    functionLinenumber: 282
    functionLinenumberEnd: 388
    functionName: VsockConnection::send_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - VsockResult::buf
    - VsockResult::buf_alloc
    - Instant::now
    - Duration::from_millis
    - VsockConnection::kill
    - Self::is_none
    - VsockConnection::peer_needs_credit_update
    - VsockResult::fwd_cnt
    - Ok
    - VsockResult::flags
    - insert
    - VsockConnection::send_bytes
    - is_empty
    - VsockResult::op
    - VsockResult::len
    - std::num::Wrapping
    - Self::unwrap
    - ConnState::PeerClosed
    - Some
    linkageType: ''
    returnType: VsockResult
    signature: 'fn send_pkt(&mut self, pkt: &VsockPacket) -> VsockResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: VsockConnection::has_pending_rx
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 1
    functionsReached:
    - is_empty
    linkageType: ''
    returnType: bool
    signature: fn has_pending_rx(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: VsockConnection::get_polled_fd
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - as_raw_fd
    linkageType: ''
    returnType: RawFd
    signature: fn get_polled_fd(&self) -> RawFd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::Events::empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:418,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:419,1
    - Dst: epoll::Events::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:422,1
    - Dst: VsockConnection::need_credit_update_from_peer
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:428,1
    - Dst: epoll::Events::insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 432
    functionName: VsockConnection::get_polled_evset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - epoll::Events::insert
    - is_empty
    - epoll::Events::empty
    - VsockConnection::need_credit_update_from_peer
    linkageType: ''
    returnType: epoll::Events
    signature: fn get_polled_evset(&self) -> epoll::Events
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: epoll::Events::contains
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:437,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:440,1
    - Dst: epoll::Events::contains
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:443,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:446,1
    - Dst: flush_to
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:450,1
    - Dst: unwrap_or_else
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:450,1
    - Dst: kind
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:459,1
    - Dst: VsockConnection::kill
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:463,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:467,1
    - Dst: ConnState::PeerClosed
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:471,1
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:471,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:472,1
    - Dst: VsockConnection::peer_needs_credit_update
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:473,1
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 1
    argNames:
    - evset
    argTypes:
    - epoll::Events
    constantsTouched: []
    func_position:
      end: 479
      start: 436
    functionDepth: 9
    functionLinenumber: 436
    functionLinenumberEnd: 479
    functionName: VsockConnection::notify
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - insert
    - epoll::Events::contains
    - ConnState::PeerClosed
    - VsockConnection::kill
    - kind
    - VsockConnection::peer_needs_credit_update
    - unwrap_or_else
    - flush_to
    - std::num::Wrapping
    linkageType: ''
    returnType: void
    signature: 'fn notify(&mut self, evset: epoll::Events)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:503,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:504,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:506,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:507,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:508,1
    - Dst: PendingRxSet::from
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - stream
    - local_cid
    - peer_cid
    - local_port
    - peer_port
    - peer_buf_alloc
    argTypes:
    - S
    - u64
    - u64
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 512
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 512
    functionName: VsockConnection::new_peer_init
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - PendingRxSet::from
    - TxBuf::new
    - std::num::Wrapping
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_peer_init(stream: S,local_cid: u64,peer_cid: u64,local_port:
      u32,peer_port: u32,peer_buf_alloc: u32,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxBuf::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:530,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:531,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:533,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:534,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:535,1
    - Dst: PendingRxSet::from
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - stream
    - local_cid
    - peer_cid
    - local_port
    - peer_port
    argTypes:
    - S
    - u64
    - u64
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 539
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 539
    functionName: VsockConnection::new_local_init
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - PendingRxSet::from
    - TxBuf::new
    - std::num::Wrapping
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_local_init(stream: S,local_cid: u64,peer_cid: u64,local_port:
      u32,peer_port: u32,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: VsockConnection::will_expire
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    linkageType: ''
    returnType: bool
    signature: pub fn will_expire(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: VsockConnection::has_expired
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    linkageType: ''
    returnType: bool
    signature: pub fn has_expired(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: VsockConnection::expiry
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn expiry(&self) -> Option<Instant>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 9
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: VsockConnection::kill
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 2
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: pub fn kill(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: VsockConnection::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnState
    signature: pub fn state(&self) -> ConnState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:589,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 590
      start: 588
    functionDepth: 8
    functionLinenumber: 588
    functionLinenumberEnd: 590
    functionName: VsockConnection::send_bytes_raw
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - map_err
    - write
    linkageType: ''
    returnType: Result
    signature: 'pub fn send_bytes_raw(&mut self, buf: &[u8]) -> Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:602,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:603,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:607,1
    - Dst: usize::kind
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:611,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:616,1
    - Dst: Error::StreamWrite
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:616,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:621,1
    - Dst: Self::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:625,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:626,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:629,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 630
      start: 597
    functionDepth: 8
    functionLinenumber: 597
    functionLinenumberEnd: 630
    functionName: VsockConnection::send_bytes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 1
    functionsReached:
    - is_empty
    - Error::StreamWrite
    - push
    - Err
    - Ok
    - Self::len
    - std::num::Wrapping
    - usize::kind
    - write
    linkageType: ''
    returnType: Result
    signature: 'fn send_bytes(&mut self, buf: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:636,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: VsockConnection::peer_needs_credit_update
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 2
    functionsReached:
    - std::num::Wrapping
    linkageType: ''
    returnType: bool
    signature: fn peer_needs_credit_update(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockConnection::peer_avail_credit
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 645
    functionName: VsockConnection::need_credit_update_from_peer
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 2
    functionsReached:
    - VsockConnection::peer_avail_credit
    linkageType: ''
    returnType: bool
    signature: fn need_credit_update_from_peer(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: VsockConnection::peer_avail_credit
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 2
    functionsReached:
    - std::num::Wrapping
    linkageType: ''
    returnType: usize
    signature: fn peer_avail_credit(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockResult::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:660,1
    - Dst: VsockResult::set_src_cid
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:664,1
    - Dst: '&mut Self::set_dst_cid'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:664,1
    - Dst: '&mut Self::set_src_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:664,1
    - Dst: '&mut Self::set_dst_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:664,1
    - Dst: '&mut Self::set_type'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:664,1
    - Dst: '&mut Self::set_buf_alloc'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:664,1
    - Dst: '&mut Self::set_fwd_cnt'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - '&''a mut VsockPacket'
    constantsTouched: []
    func_position:
      end: 671
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 671
    functionName: VsockConnection::init_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Self::set_dst_cid'
    - '&mut Self::set_src_port'
    - '&mut Self::set_fwd_cnt'
    - VsockResult::set_src_cid
    - '&mut Self::set_buf_alloc'
    - VsockResult::hdr_mut
    - '&mut Self::set_dst_port'
    - '&mut Self::set_type'
    linkageType: ''
    returnType: '&''a mut VsockPacket'
    signature: 'fn init_pkt<''a>(&self, pkt: &''a mut VsockPacket) -> &''a mut VsockPacket'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VsockResult::hdr_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:782,1
    - Dst: VsockResult::set_src_cid
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    - Dst: '&mut Self::set_dst_cid'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    - Dst: '&mut Self::set_src_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    - Dst: '&mut Self::set_dst_port'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    - Dst: '&mut Self::set_type'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    - Dst: '&mut Self::set_buf_alloc'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    - Dst: '&mut Self::set_op'
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    - Dst: Result::set_len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - pkt
    - op
    - len
    argTypes:
    - '&mut VsockPacket'
    - u16
    - u32
    constantsTouched: []
    func_position:
      end: 793
      start: 781
    functionDepth: 8
    functionLinenumber: 781
    functionLinenumberEnd: 793
    functionName: unit_tests::init_pkt
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::set_dst_cid'
    - '&mut Self::set_src_port'
    - '&mut Self::set_op'
    - VsockResult::set_src_cid
    - '&mut Self::set_buf_alloc'
    - VsockResult::hdr_mut
    - '&mut Self::set_dst_port'
    - '&mut Self::set_type'
    - Result::set_len
    linkageType: ''
    returnType: '&mut VsockPacket'
    signature: 'fn init_pkt(pkt: &mut VsockPacket, op: u16, len: u32) -> &mut VsockPacket'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:906,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 921
      start: 905
    functionDepth: 5
    functionLinenumber: 905
    functionLinenumberEnd: 921
    functionName: unit_tests::test_peer_request
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new
    - Result::recv
    linkageType: ''
    returnType: void
    signature: fn test_peer_request()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:925,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:931,1
    - Dst: Result::init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:936,1
    - Dst: Result::send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 942
      start: 924
    functionDepth: 5
    functionLinenumber: 924
    functionLinenumberEnd: 942
    functionName: unit_tests::test_local_request
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new
    - Result::recv
    - Result::send
    - Result::init_pkt
    linkageType: ''
    returnType: void
    signature: fn test_local_request()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:946,1
    - Dst: Result::recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:947,1
    - Dst: std::thread::sleep
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:951,1
    - Dst: std::time::Duration::from_millis
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 945
    functionDepth: 5
    functionLinenumber: 945
    functionLinenumberEnd: 955
    functionName: unit_tests::test_local_request_timeout
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - std::time::Duration::from_millis
    - CsmTestContext::new
    - Result::recv
    - std::thread::sleep
    linkageType: ''
    returnType: void
    signature: fn test_local_request_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:959,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:961,1
    - Dst: TestStream::new_with_read_buf
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:961,1
    - Dst: notify_epollin
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:963,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:964,1
    - Dst: recv_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:970,1
    - Dst: notify_epollin
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:977,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 980
      start: 958
    functionDepth: 9
    functionLinenumber: 958
    functionLinenumberEnd: 980
    functionName: unit_tests::test_rx_data
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - recv_pkt
    - CsmTestContext::new_established
    - recv
    - TestStream::new_with_read_buf
    - set_stream
    - notify_epollin
    linkageType: ''
    returnType: void
    signature: fn test_rx_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1078,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1079,1
    - Dst: StreamState::Error
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1080,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1081,1
    - Dst: notify_epollin
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1082,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1077
    functionDepth: 5
    functionLinenumber: 1077
    functionLinenumberEnd: 1085
    functionName: unit_tests::test_local_read_error
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new_established
    - recv
    - TestStream::new
    - StreamState::Error
    - set_stream
    - notify_epollin
    linkageType: ''
    returnType: void
    signature: fn test_local_read_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1089,1
    - Dst: set_peer_credit
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1090,1
    - Dst: notify_epollin
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1091,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1088
    functionDepth: 7
    functionLinenumber: 1088
    functionLinenumberEnd: 1094
    functionName: unit_tests::test_credit_request_to_peer
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new_established
    - set_peer_credit
    - notify_epollin
    - recv
    linkageType: ''
    returnType: void
    signature: fn test_credit_request_to_peer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1098,1
    - Dst: init_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1099,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1100,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1097
    functionDepth: 7
    functionLinenumber: 1097
    functionLinenumberEnd: 1106
    functionName: unit_tests::test_credit_request_from_peer
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new_established
    - init_pkt
    - send
    - recv
    linkageType: ''
    returnType: void
    signature: fn test_credit_request_from_peer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1110,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1113,1
    - Dst: std::num::Wrapping
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1120,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1126,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1127,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1131,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1132,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1109
    functionDepth: 7
    functionLinenumber: 1109
    functionLinenumberEnd: 1140
    functionName: unit_tests::test_credit_update_to_peer
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new_established
    - recv
    - init_data_pkt
    - send
    - std::num::Wrapping
    linkageType: ''
    returnType: void
    signature: fn test_credit_update_to_peer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1149,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1151,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1153,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1158,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1159,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1172,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1172,1
    - Dst: notify
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1143
    functionDepth: 5
    functionLinenumber: 1143
    functionLinenumberEnd: 1177
    functionName: unit_tests::test_tx_buffering
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - CsmTestContext::new_established
    - notify
    - init_data_pkt
    - TestStream::new
    - send
    - set_stream
    linkageType: ''
    returnType: void
    signature: fn test_tx_buffering()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1183,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1184,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1186,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1189,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1190,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1194,1
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1201,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1203,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1205,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1210,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1211,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1214,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1216,1
    - Dst: notify_epollout
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1180
    functionDepth: 5
    functionLinenumber: 1180
    functionLinenumberEnd: 1226
    functionName: unit_tests::test_stream_write_error
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - notify_epollout
    - CsmTestContext::new_established
    - recv
    - init_data_pkt
    - TestStream::new
    - send
    - set_stream
    linkageType: ''
    returnType: void
    signature: fn test_stream_write_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsmTestContext::new_established
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1230,1
    - Dst: TestStream::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1232,1
    - Dst: set_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1234,1
    - Dst: init_data_pkt
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1238,1
    - Dst: String::as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1238,1
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1239,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1240,1
    - Dst: send
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1244,1
    - Dst: recv
      Src: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1229
    functionDepth: 5
    functionLinenumber: 1229
    functionLinenumberEnd: 1251
    functionName: unit_tests::test_peer_credit_misbehavior
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
    functionUses: 0
    functionsReached:
    - String::as_slice
    - CsmTestContext::new_established
    - recv
    - init_data_pkt
    - TestStream::new
    - send
    - String::len
    - set_stream
    linkageType: ''
    returnType: void
    signature: fn test_peer_credit_misbehavior()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 16
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: Net::shutdown
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - shutdown
    linkageType: ''
    returnType: void
    signature: fn shutdown(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_memory_region
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - region
    argTypes:
    - '&Arc<GuestRegionMmap>'
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: Net::add_memory_region
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - add_memory_region
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn add_memory_region(&mut self,region: &Arc<GuestRegionMmap>,) ->
      std::result::Result<(), crate::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 9
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: Net::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - start_dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 9
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Net::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - stop_dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 9
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Net::dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn dirty_log(&mut self) -> std::result::Result<MemoryRangeTable, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: Net::start_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - start_migration
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: complete_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:467,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: Net::complete_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
    functionUses: 0
    functionsReached:
    - complete_migration
    - take
    linkageType: ''
    returnType: std::result::Result
    signature: fn complete_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::connect_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:76,1
    - Dst: set_protocol_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:88,1
    - Dst: negotiate_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:127,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:130,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:131,1
    - Dst: get_queue_num
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:131,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:131,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:142,1
    - Dst: mem::size_of::<VirtioBlockConfig>
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:145,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:147,1
    - Dst: get_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:147,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:153,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:147,1
    - Dst: VirtioBlockConfig::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:156,1
    - Dst: VirtioBlockConfig::from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:157,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:157,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:168,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:176,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:182,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:182,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:182,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:184,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:184,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:185,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:188,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:188,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:188,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:192,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 128
    argCount: 6
    argNames:
    - id
    - vu_cfg
    - seccomp_action
    - exit_evt
    - iommu
    - state
    argTypes:
    - String
    - VhostUserConfig
    - SeccompAction
    - EventFd
    - bool
    - Option<State>
    constantsTouched: []
    func_position:
      end: 202
      start: 65
    functionDepth: 7
    functionLinenumber: 65
    functionLinenumberEnd: 202
    functionName: Blk::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 1
    functionsReached:
    - get_config
    - map_err
    - AtomicBool::new
    - bits
    - Ok
    - Default::default
    - VirtioBlockConfig::from_slice
    - Arc::new
    - Barrier::new
    - as_slice
    - mem::size_of::<VirtioBlockConfig>
    - Err
    - Mutex::new
    - VirtioBlockConfig::default
    - negotiate_features_vhost_user
    - VhostUserHandle::connect_vhost_user
    - set_protocol_features_vhost_user
    - socket_handle
    - get_queue_num
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,vu_cfg: VhostUserConfig,seccomp_action: SeccompAction,exit_evt:
      EventFd,iommu: bool,state: Option<State>,) -> Result<Blk>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: Blk::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: State
    signature: fn state(&self) -> State
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:217,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:218,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:222,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:223,1
    - Dst: Vec::join
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 8
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: Blk::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - Vec::join
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: Blk::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: Blk::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: Blk::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: Blk::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Blk::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:253,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: Blk::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - Blk::read_config_from_slice
    - as_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:260,1
    - Dst: std::mem::size_of_val
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:260,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:272,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:272,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:272,1
    - Dst: set_config
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:272,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 281
      start: 256
    functionDepth: 15
    functionLinenumber: 256
    functionLinenumberEnd: 281
    functionName: Blk::write_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of_val
    - map_err
    - set_config
    - lock
    - unwrap
    - socket_handle
    - String::len
    linkageType: ''
    returnType: void
    signature: 'fn write_config(&mut self, offset: u64, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:289,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:289,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:290,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:290,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:296,1
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:298,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:308,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:309,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:311,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:313,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:319,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:319,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:319,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:321,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:321,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 324
      start: 283
    functionDepth: 18
    functionLinenumber: 283
    functionLinenumberEnd: 324
    functionName: Blk::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - activate
    - remove
    - Vec::new
    - as_ref
    - Option::run
    - clone
    - dup_eventfds
    - GuestMemoryMmap::clone
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - Some
    - thread_helper::spawn_virtio_thread
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:328,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:328,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:329,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:329,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:333,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:333,1
    - Dst: reset_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:333,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:339,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:341,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:344,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:347,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:347,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 326
    functionDepth: 14
    functionLinenumber: 326
    functionLinenumberEnd: 348
    functionName: Blk::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - is_some
    - event_monitor::event
    - ok
    - take
    - lock
    - resume
    - reset_vhost_user
    - unwrap
    - Some
    - write
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 16
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: Blk::shutdown
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - shutdown
    linkageType: ''
    returnType: void
    signature: fn shutdown(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_memory_region
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - region
    argTypes:
    - '&Arc<GuestRegionMmap>'
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: Blk::add_memory_region
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - add_memory_region
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn add_memory_region(&mut self,region: &Arc<GuestRegionMmap>,) ->
      std::result::Result<(), crate::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:364,1
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 16
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: Blk::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:369,1
    - Dst: std::thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:372,1
    - Dst: unpark
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:372,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 368
    functionDepth: 14
    functionLinenumber: 368
    functionLinenumberEnd: 376
    functionName: Blk::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - resume
    - std::thread
    - unpark
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: Blk::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:385,1
    - Dst: Blk::state
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: Blk::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - snapshot
    - Blk::state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 9
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: Blk::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - start_dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 9
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: Blk::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - stop_dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 9
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: Blk::dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn dirty_log(&mut self) -> std::result::Result<MemoryRangeTable, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: Blk::start_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - start_migration
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: complete_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:408,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: Blk::complete_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
    functionUses: 0
    functionsReached:
    - complete_migration
    - take
    linkageType: ''
    returnType: std::result::Result
    signature: fn complete_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EpollHelper::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:189,1
    - Dst: add_event_custom
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:190,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:191,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:191,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:191,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:191,1
    - Dst: add_event
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:197,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:197,1
    - Dst: run
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:200,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - paused
    - paused_sync
    argTypes:
    - '&AtomicBool'
    - '&Barrier'
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 15
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: VhostUserEpollHandler::run
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - run
    - lock
    - EpollHelper::new
    - unwrap
    - socket_handle
    - Ok
    - as_raw_fd
    - add_event_custom
    - add_event
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn run(&mut self,paused: &AtomicBool,paused_sync: &Barrier,) ->
      std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: del_event_custom
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:206,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:207,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:207,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:207,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:207,1
    - Dst: VhostUserHandle::connect_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:212,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:215,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:212,1
    - Dst: EpollHelperError::IoError
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:219,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:219,1
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:224,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:224,1
    - Dst: vm_virtio::clone_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:227,1
    - Dst: usize::try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:227,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:227,1
    - Dst: "queues\n            .iter()\n            .map(|(i, q, e)| (*i, vm_virtio::clone_queue(q),\
        \ e.try_clone().unwrap()))\n            .collect::<Vec<_>>"
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:224,1
    - Dst: Result::reinitialize_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:230,1
    - Dst: memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:232,1
    - Dst: deref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:232,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:234,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:238,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:230,1
    - Dst: EpollHelperError::IoError
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:241,1
    - Dst: std::io::Error::other
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:241,1
    - Dst: add_event_custom
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:246,1
    - Dst: Result::socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:247,1
    - Dst: '&mut Frontend::as_raw_fd'
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:247,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:253,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:253,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 85
    argCount: 1
    argNames:
    - helper
    argTypes:
    - '&mut EpollHelper'
    constantsTouched: []
    func_position:
      end: 257
      start: 205
    functionDepth: 12
    functionLinenumber: 205
    functionLinenumberEnd: 257
    functionName: VhostUserEpollHandler::reconnect
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 1
    functionsReached:
    - del_event_custom
    - vm_virtio::clone_queue
    - as_ref
    - Result::socket_handle
    - "queues\n            .iter()\n            .map(|(i, q, e)| (*i, vm_virtio::clone_queue(q),\
      \ e.try_clone().unwrap()))\n            .collect::<Vec<_>>"
    - memory
    - Ok
    - as_mut
    - usize::try_clone
    - len
    - Result::reinitialize_vhost_user
    - as_raw_fd
    - iter
    - std::io::Result::unwrap
    - '&mut Frontend::as_raw_fd'
    - lock
    - unwrap
    - map
    - VhostUserHandle::connect_vhost_user
    - std::io::Error::other
    - deref
    - Result::map_err
    - EpollHelperError::IoError
    - socket_handle
    - add_event_custom
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn reconnect(&mut self, helper: &mut EpollHelper) -> std::result::Result<(),
      EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserEpollHandler::reconnect
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:269,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:269,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:270,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:276,1
    - Dst: handle_request
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:277,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:277,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:278,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:285,1
    - Dst: EpollHelperError::HandleEvent
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:285,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - helper
    - event
    argTypes:
    - '&mut EpollHelper'
    - '&epoll::Event'
    constantsTouched: []
    func_position:
      end: 292
      start: 261
    functionDepth: 13
    functionLinenumber: 261
    functionLinenumberEnd: 292
    functionName: VhostUserEpollHandler::handle_event
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - handle_request
    - EpollHelperError::HandleEvent
    - VhostUserEpollHandler::reconnect
    - map_err
    - std::result::Result::map_err
    - as_mut
    - Err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn handle_event(&mut self,helper: &mut EpollHelper,event: &epoll::Event,)
      -> std::result::Result<(), EpollHelperError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:318,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:320,1
    - Dst: Inflight::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:320,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:325,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:327,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:329,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:329,1
    - Dst: usize::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:330,1
    - Dst: impl Iterator::map
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:330,1
    - Dst: vm_virtio::clone_queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:332,1
    - Dst: usize::try_clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:332,1
    - Dst: std::io::Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:332,1
    - Dst: "iter()\n            .map(|(i, q, e)| (*i, vm_virtio::clone_queue(q), e.try_clone().unwrap()))\n\
        \            .collect::<Vec<_>>"
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:330,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:334,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:334,1
    - Dst: setup_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:334,1
    - Dst: GuestMemoryMmap::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:337,1
    - Dst: Arc<dyn VirtioInterrupt>::as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:339,1
    - Dst: as_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:342,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:334,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:346,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:347,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 64
    argCount: 7
    argNames:
    - mem
    - queues
    - interrupt_cb
    - acked_features
    - backend_req_handler
    - kill_evt
    - pause_evt
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - '&[(usize, Queue, EventFd)]'
    - Arc<dyn VirtioInterrupt>
    - u64
    - Option<FrontendReqHandler<T>>
    - EventFd
    - EventFd
    constantsTouched: []
    func_position:
      end: 360
      start: 307
    functionDepth: 13
    functionLinenumber: 307
    functionLinenumberEnd: 360
    functionName: VhostUserCommon::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - vm_virtio::clone_queue
    - as_ref
    - bits
    - Ok
    - as_mut
    - usize::try_clone
    - Inflight::default
    - GuestMemoryMmap::memory
    - setup_vhost_user
    - impl Iterator::map
    - std::io::Result::unwrap
    - Arc<dyn VirtioInterrupt>::as_ref
    - Err
    - lock
    - unwrap
    - usize::iter
    - clone
    - "iter()\n            .map(|(i, q, e)| (*i, vm_virtio::clone_queue(q), e.try_clone().unwrap()))\n\
      \            .collect::<Vec<_>>"
    - is_none
    - Some
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn activate<T: VhostUserFrontendReqHandler>(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,queues:
      &[(usize, Queue, EventFd)],interrupt_cb: Arc<dyn VirtioInterrupt>,acked_features:
      u64,backend_req_handler: Option<FrontendReqHandler<T>>,kill_evt: EventFd,pause_evt:
      EventFd,) -> std::result::Result<VhostUserEpollHandler<T>, ActivateError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::connect_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:363,1
    - Dst: set_protocol_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:370,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:372,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:372,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:372,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - acked_features
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 7
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: VhostUserCommon::restore_backend_connection
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - VhostUserHandle::connect_vhost_user
    - Arc::new
    - set_protocol_features_vhost_user
    - Mutex::new
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn restore_backend_connection(&mut self, acked_features: u64)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libc::close
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:380,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:380,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:380,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:380,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:380,1
    - Dst: std::fs::remove_file
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 377
    functionDepth: 13
    functionLinenumber: 377
    functionLinenumberEnd: 387
    functionName: VhostUserCommon::shutdown
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 1
    functionsReached:
    - libc::close
    - lock
    - unwrap
    - socket_handle
    - std::fs::remove_file
    - as_raw_fd
    linkageType: ''
    returnType: void
    signature: pub fn shutdown(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:395,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:398,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:398,1
    - Dst: add_memory_region
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:398,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:398,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:404,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:404,1
    - Dst: update_mem_table
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:404,1
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:407,1
    - Dst: Result::deref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:407,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:404,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 2
    argNames:
    - guest_memory
    - region
    argTypes:
    - '&Option<GuestMemoryAtomic<GuestMemoryMmap>>'
    - '&Arc<GuestRegionMmap>'
    constantsTouched: []
    func_position:
      end: 412
      start: 389
    functionDepth: 13
    functionLinenumber: 389
    functionLinenumberEnd: 412
    functionName: VhostUserCommon::add_memory_region
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Result::deref
    - update_mem_table
    - GuestMemoryAtomic::memory
    - lock
    - unwrap
    - add_memory_region
    - bits
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn add_memory_region(&mut self,guest_memory: &Option<GuestMemoryAtomic<GuestMemoryMmap>>,region:
      &Arc<GuestRegionMmap>,) -> std::result::Result<(), crate::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:416,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:416,1
    - Dst: pause_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:416,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:416,1
    - Dst: MigratableError::Pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:417,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 13
    functionLinenumber: 414
    functionLinenumberEnd: 422
    functionName: VhostUserCommon::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - lock
    - unwrap
    - MigratableError::Pause
    - pause_vhost_user
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: pub fn pause(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:426,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:426,1
    - Dst: resume_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:426,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:426,1
    - Dst: MigratableError::Resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:427,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 424
    functionDepth: 13
    functionLinenumber: 424
    functionLinenumberEnd: 432
    functionName: VhostUserCommon::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - MigratableError::Resume
    - map_err
    - lock
    - resume_vhost_user
    - unwrap
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: pub fn resume(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Snapshot::new_from_state
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:438,1
    - Dst: VhostUserCommon::shutdown
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:441,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 14
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: VhostUserCommon::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Snapshot::new_from_state
    - VhostUserCommon::shutdown
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn snapshot<''a, T>(&mut self, state: &T) -> std::result::Result<Snapshot,
      MigratableError>whereT: Serialize + Deserialize<''a>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:453,1
    - Dst: Result::last_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:453,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:453,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:454,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:454,1
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:454,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:454,1
    - Dst: MigratableError::StartDirtyLog
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:458,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:463,1
    - Dst: MigratableError::StartDirtyLog
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:463,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - guest_memory
    argTypes:
    - '&Option<GuestMemoryAtomic<GuestMemoryMmap>>'
    constantsTouched: []
    func_position:
      end: 470
      start: 447
    functionDepth: 13
    functionLinenumber: 447
    functionLinenumberEnd: 470
    functionName: VhostUserCommon::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Result::last_addr
    - GuestMemoryAtomic::memory
    - Err
    - lock
    - MigratableError::StartDirtyLog
    - Ok
    - unwrap
    - start_dirty_log
    - raw_value
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn start_dirty_log(&mut self,guest_memory: &Option<GuestMemoryAtomic<GuestMemoryMmap>>,)
      -> std::result::Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:474,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:474,1
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:474,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:474,1
    - Dst: MigratableError::StopDirtyLog
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:475,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 13
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: VhostUserCommon::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - stop_dirty_log
    - lock
    - unwrap
    - MigratableError::StopDirtyLog
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: pub fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GuestMemoryAtomic::memory
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:490,1
    - Dst: Result::last_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:490,1
    - Dst: raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:490,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:491,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:491,1
    - Dst: dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:491,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:491,1
    - Dst: MigratableError::DirtyLog
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:492,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:497,1
    - Dst: MigratableError::DirtyLog
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:497,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:500,1
    - Dst: MemoryRangeTable::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - guest_memory
    argTypes:
    - '&Option<GuestMemoryAtomic<GuestMemoryMmap>>'
    constantsTouched: []
    func_position:
      end: 502
      start: 484
    functionDepth: 13
    functionLinenumber: 484
    functionLinenumberEnd: 502
    functionName: VhostUserCommon::dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - map_err
    - MigratableError::DirtyLog
    - Result::last_addr
    - GuestMemoryAtomic::memory
    - Err
    - lock
    - dirty_log
    - Ok
    - unwrap
    - MemoryRangeTable::default
    - raw_value
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn dirty_log(&mut self,guest_memory: &Option<GuestMemoryAtomic<GuestMemoryMmap>>,)
      -> std::result::Result<MemoryRangeTable, MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: VhostUserCommon::start_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: pub fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option<EventFd>::write
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:518,1
    - Dst: IoResult::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:518,1
    - Dst: MigratableError::CompleteMigration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:519,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - kill_evt
    argTypes:
    - Option<EventFd>
    constantsTouched: []
    func_position:
      end: 530
      start: 509
    functionDepth: 9
    functionLinenumber: 509
    functionLinenumberEnd: 530
    functionName: VhostUserCommon::complete_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
    functionUses: 0
    functionsReached:
    - IoResult::map_err
    - MigratableError::CompleteMigration
    - Option<EventFd>::write
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'pub fn complete_migration(&mut self,kill_evt: Option<EventFd>,) ->
      std::result::Result<(), MigratableError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:66,1
    - Dst: GuestMemoryMmap::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:67,1
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:68,1
    - Dst: file
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:69,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:69,1
    - Dst: start
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:69,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:70,1
    - Dst: Error::VhostUserMemoryRegion
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:70,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:74,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:74,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:75,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:76,1
    - Dst: Vec::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:81,1
    - Dst: set_mem_table
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:84,1
    - Dst: Vec::as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:85,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:84,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 1
    argNames:
    - mem
    argTypes:
    - '&GuestMemoryMmap'
    constantsTouched: []
    func_position:
      end: 89
      start: 65
    functionDepth: 9
    functionLinenumber: 65
    functionLinenumberEnd: 89
    functionName: VhostUserHandle::update_mem_table
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Vec::new
    - Result::raw_value
    - Result::start_addr
    - Result::len
    - Result::as_ptr
    - GuestMemoryMmap::iter
    - Err
    - Vec::push
    - Result::file_offset
    - set_mem_table
    - file
    - Vec::as_slice
    - start
    - as_raw_fd
    - Error::VhostUserMemoryRegion
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn update_mem_table(&mut self, mem: &GuestMemoryMmap) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::file_offset
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:92,1
    - Dst: file
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:93,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:93,1
    - Dst: start
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:93,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:94,1
    - Dst: Result::start_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:98,1
    - Dst: Result::raw_value
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:98,1
    - Dst: Result::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:99,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:100,1
    - Dst: add_mem_region
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:105,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - region
    argTypes:
    - '&Arc<GuestRegionMmap>'
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 10
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: VhostUserHandle::add_memory_region
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Result::raw_value
    - add_mem_region
    - Result::start_addr
    - Result::len
    - Result::as_ptr
    - Err
    - Result::file_offset
    - file
    - start
    - as_raw_fd
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_memory_region(&mut self, region: &Arc<GuestRegionMmap>)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_owner
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:116,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:116,1
    - Dst: get_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:120,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:120,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:127,1
    - Dst: get_protocol_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:128,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:128,1
    - Dst: set_protocol_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:135,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:135,1
    - Dst: VhostUserProtocolFeatures::empty
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:141,1
    - Dst: VhostUserProtocolFeatures::contains
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:144,1
    - Dst: contains
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:145,1
    - Dst: set_hdr_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:147,1
    - Dst: VhostUserHandle::update_supports_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:150,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:150,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:152,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 2
    argNames:
    - avail_features
    - avail_protocol_features
    argTypes:
    - u64
    - VhostUserProtocolFeatures
    constantsTouched: []
    func_position:
      end: 153
      start: 110
    functionDepth: 9
    functionLinenumber: 110
    functionLinenumberEnd: 153
    functionName: VhostUserHandle::negotiate_features_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - set_protocol_features
    - map_err
    - get_features
    - set_owner
    - set_hdr_flags
    - VhostUserProtocolFeatures::contains
    - get_protocol_features
    - contains
    - VhostUserHandle::update_supports_migration
    - bits
    - VhostUserProtocolFeatures::empty
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn negotiate_features_vhost_user(&mut self,avail_features: u64,avail_protocol_features:
      VhostUserProtocolFeatures,) -> Result<(u64, u64)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:165,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:165,1
    - Dst: VhostUserHandle::update_mem_table
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:173,1
    - Dst: usize::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:178,1
    - Dst: set_vring_num
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:179,1
    - Dst: bool::size
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:180,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:179,1
    - Dst: is_none
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:186,1
    - Dst: usize::len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:190,1
    - Dst: size
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:191,1
    - Dst: get_inflight_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:193,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:193,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:198,1
    - Dst: set_inflight_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:201,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:202,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:202,1
    - Dst: as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:202,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:201,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:206,1
    - Dst: usize::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:207,1
    - Dst: bool::size
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:208,1
    - Dst: usize::into
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:208,1
    - Dst: bool::max_size
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:211,1
    - Dst: bool::size
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:212,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:214,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:216,1
    - Dst: bool::desc_table
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:216,1
    - Dst: std::mem::size_of::<RawDescriptor>
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:217,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:214,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:222,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:224,1
    - Dst: bool::used_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:224,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:222,1
    - Dst: get_host_address_range
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:230,1
    - Dst: vm_memory::GuestAddress
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:232,1
    - Dst: bool::avail_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:232,1
    - Dst: Option::ok_or
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:230,1
    - Dst: Result::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:239,1
    - Dst: bool::used_ring
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:241,1
    - Dst: set_vring_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:244,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:244,1
    - Dst: set_vring_base
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:247,1
    - Dst: bool::avail_idx
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:250,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:250,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:247,1
    - Dst: '&dyn VirtioInterrupt::notifier'
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:258,1
    - Dst: VirtioInterruptType::Queue
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:258,1
    - Dst: set_vring_call
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:260,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:260,1
    - Dst: set_vring_kick
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:265,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:265,1
    - Dst: push
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:269,1
    - Dst: VhostUserHandle::enable_vhost_user_vrings
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:272,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:272,1
    - Dst: set_backend_request_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:275,1
    - Dst: '&Option<FrontendReqHandler<S>>::get_tx_raw_fd'
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:276,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:275,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:280,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:283,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 203
    argCount: 6
    argNames:
    - mem
    - queues
    - virtio_interrupt
    - acked_features
    - backend_req_handler
    - inflight
    argTypes:
    - '&GuestMemoryMmap'
    - '&[(usize, Queue, EventFd)]'
    - '&dyn VirtioInterrupt'
    - u64
    - '&Option<FrontendReqHandler<S>>'
    - Option<&mut Inflight>
    constantsTouched: []
    func_position:
      end: 284
      start: 156
    functionDepth: 10
    functionLinenumber: 156
    functionLinenumberEnd: 284
    functionName: VhostUserHandle::setup_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 1
    functionsReached:
    - size
    - get_host_address_range
    - map_err
    - as_ref
    - push
    - bool::used_ring
    - bool::desc_table
    - VirtioInterruptType::Queue
    - Ok
    - bool::avail_ring
    - get_inflight_fd
    - Vec::new
    - VhostUserHandle::enable_vhost_user_vrings
    - set_vring_base
    - std::mem::size_of::<RawDescriptor>
    - usize::into
    - as_raw_fd
    - Result::push
    - set_features
    - vm_memory::GuestAddress
    - bool::avail_idx
    - VhostUserHandle::update_mem_table
    - unwrap
    - set_vring_addr
    - set_backend_request_fd
    - usize::iter
    - Option::ok_or
    - clone
    - set_vring_num
    - set_inflight_fd
    - is_none
    - '&Option<FrontendReqHandler<S>>::get_tx_raw_fd'
    - set_vring_kick
    - bool::max_size
    - '&dyn VirtioInterrupt::notifier'
    - bool::size
    - set_vring_call
    - Some
    - usize::len
    linkageType: ''
    returnType: Result
    signature: 'pub fn setup_vhost_user<S: VhostUserFrontendReqHandler>(&mut self,mem:
      &GuestMemoryMmap,queues: &[(usize, Queue, EventFd)],virtio_interrupt: &dyn VirtioInterrupt,acked_features:
      u64,backend_req_handler: &Option<FrontendReqHandler<S>>,inflight: Option<&mut
      Inflight>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_vring_enable
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:288,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:288,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - queue_indexes
    - enable
    argTypes:
    - Vec<usize>
    - bool
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: VhostUserHandle::enable_vhost_user_vrings
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 3
    functionsReached:
    - Ok
    - map_err
    - set_vring_enable
    linkageType: ''
    returnType: Result
    signature: 'fn enable_vhost_user_vrings(&mut self, queue_indexes: Vec<usize>,
      enable: bool) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: drain
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:297,1
    - Dst: set_vring_enable
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:298,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:298,1
    - Dst: get_vring_base
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:302,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:302,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: VhostUserHandle::reset_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - map_err
    - set_vring_enable
    - drain
    - get_vring_base
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn reset_vhost_user(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_owner
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:316,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:316,1
    - Dst: get_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:317,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:317,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:321,1
    - Dst: VhostUserProtocolFeatures::from_bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:323,1
    - Dst: set_protocol_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:325,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:325,1
    - Dst: u64::contains
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:329,1
    - Dst: set_hdr_flags
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:330,1
    - Dst: VhostUserHandle::update_supports_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:334,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - acked_features
    - acked_protocol_features
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 337
      start: 311
    functionDepth: 9
    functionLinenumber: 311
    functionLinenumberEnd: 337
    functionName: VhostUserHandle::set_protocol_features_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 1
    functionsReached:
    - set_protocol_features
    - map_err
    - get_features
    - set_owner
    - set_hdr_flags
    - u64::contains
    - VhostUserProtocolFeatures::from_bits
    - VhostUserHandle::update_supports_migration
    - bits
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_protocol_features_vhost_user(&mut self,acked_features:
      u64,acked_protocol_features: u64,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::set_protocol_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:350,1
    - Dst: VhostUserHandle::setup_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - mem
    - queues
    - virtio_interrupt
    - acked_features
    - acked_protocol_features
    - backend_req_handler
    - inflight
    argTypes:
    - '&GuestMemoryMmap'
    - '&[(usize, Queue, EventFd)]'
    - '&dyn VirtioInterrupt'
    - u64
    - u64
    - '&Option<FrontendReqHandler<S>>'
    - Option<&mut Inflight>
    constantsTouched: []
    func_position:
      end: 360
      start: 340
    functionDepth: 10
    functionLinenumber: 340
    functionLinenumberEnd: 360
    functionName: VhostUserHandle::reinitialize_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - VhostUserHandle::setup_vhost_user
    - VhostUserHandle::set_protocol_features_vhost_user
    linkageType: ''
    returnType: Result
    signature: 'pub fn reinitialize_vhost_user<S: VhostUserFrontendReqHandler>(&mut
      self,mem: &GuestMemoryMmap,queues: &[(usize, Queue, EventFd)],virtio_interrupt:
      &dyn VirtioInterrupt,acked_features: u64,acked_protocol_features: u64,backend_req_handler:
      &Option<FrontendReqHandler<S>>,inflight: Option<&mut Inflight>,) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::remove_file
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:370,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:370,1
    - Dst: UnixListener::bind
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:374,1
    - Dst: Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:374,1
    - Dst: std::result::Result::accept
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:376,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:376,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:378,1
    - Dst: Frontend::from_stream
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:379,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:385,1
    - Dst: Instant::now
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:388,1
    - Dst: Frontend::connect
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:392,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:394,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:401,1
    - Dst: std::thread::sleep
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:406,1
    - Dst: Duration::from_millis
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:406,1
    - Dst: elapsed
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:408,1
    - Dst: as_secs
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:408,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 4
    argNames:
    - server
    - socket_path
    - num_queues
    - unlink_socket
    argTypes:
    - bool
    - '&str'
    - u64
    - bool
    constantsTouched: []
    func_position:
      end: 416
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 416
    functionName: VhostUserHandle::connect_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 5
    functionsReached:
    - std::result::Result::accept
    - Instant::now
    - map_err
    - Vec::new
    - std::thread::sleep
    - Duration::from_millis
    - Err
    - UnixListener::bind
    - Result::map_err
    - as_secs
    - elapsed
    - Frontend::connect
    - std::fs::remove_file
    - Frontend::from_stream
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn connect_vhost_user(server: bool,socket_path: &str,num_queues:
      u64,unlink_socket: bool,) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: VhostUserHandle::socket_handle
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Frontend'
    signature: pub fn socket_handle(&mut self) -> &mut Frontend
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::enable_vhost_user_vrings
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:424,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:424,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: VhostUserHandle::pause_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - VhostUserHandle::enable_vhost_user_vrings
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn pause_vhost_user(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::enable_vhost_user_vrings
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:432,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:432,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: VhostUserHandle::resume_vhost_user
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - VhostUserHandle::enable_vhost_user_vrings
    - clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn resume_vhost_user(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:439,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - acked_features
    - acked_protocol_features
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 8
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: VhostUserHandle::update_supports_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 2
    functionsReached:
    - u64::from
    - bits
    linkageType: ''
    returnType: void
    signature: 'fn update_supports_migration(&mut self, acked_features: u64, acked_protocol_features:
      u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:448,1
    - Dst: ffi::CString::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:449,1
    - Dst: Result::unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:449,1
    - Dst: std::result::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:448,1
    - Dst: File::from_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:455,1
    - Dst: Vec::as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:462,1
    - Dst: Vec::set_len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:465,1
    - Dst: std::io::Result::map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:465,1
    - Dst: libc::fcntl
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:470,1
    - Dst: Vec::as_raw_fd
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:471,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:477,1
    - Dst: Error::SetSeals
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:477,1
    - Dst: std::io::Error::last_os_error
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:477,1
    - Dst: MmapRegion::build
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:481,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:482,1
    - Dst: FileOffset::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:482,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:481,1
    - Dst: replace
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:491,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:491,1
    - Dst: set_log_base
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:499,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:500,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:499,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:503,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 1
    argNames:
    - last_ram_addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 504
      start: 446
    functionDepth: 5
    functionLinenumber: 446
    functionLinenumberEnd: 504
    functionName: VhostUserHandle::update_log_base
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 2
    functionsReached:
    - map_err
    - std::result::Result::map_err
    - ffi::CString::new
    - File::from_raw_fd
    - MmapRegion::build
    - Result::unwrap
    - libc::fcntl
    - Ok
    - Vec::as_raw_fd
    - Arc::new
    - replace
    - Vec::set_len
    - std::io::Error::last_os_error
    - std::io::Result::map_err
    - Error::SetSeals
    - FileOffset::new
    - Err
    - set_log_base
    - memfd_create
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn update_log_base(&mut self, last_ram_addr: u64) -> Result<Option<Arc<MmapRegion>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:508,1
    - Dst: enumerate
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:508,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:512,1
    - Dst: set_vring_addr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:517,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:517,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: VhostUserHandle::set_vring_logging
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 2
    functionsReached:
    - iter
    - map_err
    - set_vring_addr
    - enumerate
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_vring_logging(&mut self, enable: bool) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:528,1
    - Dst: VhostUserHandle::update_log_base
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:532,1
    - Dst: set_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:536,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:536,1
    - Dst: VhostUserHandle::set_vring_logging
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - last_ram_addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 542
      start: 526
    functionDepth: 6
    functionLinenumber: 526
    functionLinenumberEnd: 542
    functionName: VhostUserHandle::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - set_features
    - VhostUserHandle::set_vring_logging
    - map_err
    - Err
    - VhostUserHandle::update_log_base
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_dirty_log(&mut self, last_ram_addr: u64) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:546,1
    - Dst: VhostUserHandle::set_vring_logging
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:550,1
    - Dst: set_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:553,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:553,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 544
    functionDepth: 4
    functionLinenumber: 544
    functionLinenumberEnd: 562
    functionName: VhostUserHandle::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - set_features
    - VhostUserHandle::set_vring_logging
    - map_err
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn stop_dirty_log(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::update_log_base
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:569,1
    - Dst: Result::size
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:572,1
    - Dst: Result::as_ptr
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:576,1
    - Dst: std::slice::from_raw_parts
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:577,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:579,1
    - Dst: MemoryRangeTable::from_dirty_bitmap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:579,1
    - Dst: Self::iter
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:580,1
    - Dst: impl Iterator::copied
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:580,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - last_ram_addr
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 587
      start: 564
    functionDepth: 6
    functionLinenumber: 564
    functionLinenumberEnd: 587
    functionName: VhostUserHandle::dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
    functionUses: 0
    functionsReached:
    - std::slice::from_raw_parts
    - Result::as_ptr
    - Self::iter
    - impl Iterator::copied
    - Err
    - VhostUserHandle::update_log_base
    - Result::size
    - MemoryRangeTable::from_dirty_bitmap
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn dirty_log(&mut self, last_ram_addr: u64) -> Result<MemoryRangeTable>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: VirtioFsConfig::default
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VhostUserHandle::connect_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:104,1
    - Dst: set_protocol_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:116,1
    - Dst: negotiate_features_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:140,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:143,1
    - Dst: socket_handle
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:144,1
    - Dst: get_queue_num
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:144,1
    - Dst: map_err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:144,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:155,1
    - Dst: VirtioFsConfig::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:159,1
    - Dst: '&str::as_bytes'
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:160,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:161,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:161,1
    - Dst: '&[u8]::len'
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:162,1
    - Dst: len
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:164,1
    - Dst: copy_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:166,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:166,1
    - Dst: bits
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:175,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:183,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:189,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:189,1
    - Dst: Barrier::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:189,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:191,1
    - Dst: AtomicBool::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:191,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:192,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:195,1
    - Dst: Arc::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:195,1
    - Dst: Mutex::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:195,1
    - Dst: String::to_string
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:197,1
    - Dst: Default::default
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 95
    argCount: 10
    argNames:
    - id
    - path
    - tag
    - req_num_queues
    - queue_size
    - cache
    - seccomp_action
    - exit_evt
    - iommu
    - state
    argTypes:
    - String
    - '&str'
    - '&str'
    - usize
    - u16
    - Option<(VirtioSharedMemoryList, MmapRegion)>
    - SeccompAction
    - EventFd
    - bool
    - Option<State>
    constantsTouched: []
    func_position:
      end: 210
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 210
    functionName: Fs::new
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 1
    functionsReached:
    - map_err
    - as_ref
    - String::to_string
    - AtomicBool::new
    - bits
    - Ok
    - Default::default
    - '&[u8]::len'
    - Arc::new
    - Barrier::new
    - len
    - VirtioFsConfig::default
    - Err
    - Mutex::new
    - negotiate_features_vhost_user
    - VhostUserHandle::connect_vhost_user
    - set_protocol_features_vhost_user
    - '&str::as_bytes'
    - copy_from_slice
    - socket_handle
    - get_queue_num
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(id: String,path: &str,tag: &str,req_num_queues: usize,queue_size:
      u16,cache: Option<(VirtioSharedMemoryList, MmapRegion)>,seccomp_action: SeccompAction,exit_evt:
      EventFd,iommu: bool,state: Option<State>,) -> Result<Fs>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: Fs::state
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: State
    signature: fn state(&self) -> State
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:226,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:228,1
    - Dst: wait_for_epoll_threads
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:230,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:231,1
    - Dst: Vec::join
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 8
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: Fs::drop
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - take
    - wait_for_epoll_threads
    - Vec::join
    - write
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: Fs::device_type
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: fn device_type(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: Fs::queue_max_sizes
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u16]'
    signature: fn queue_max_sizes(&self) -> &[u16]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: Fs::features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn features(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ack_features
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: Fs::ack_features
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - ack_features
    linkageType: ''
    returnType: void
    signature: 'fn ack_features(&mut self, value: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Fs::read_config_from_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:261,1
    - Dst: as_slice
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: Fs::read_config
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - as_slice
    - Fs::read_config_from_slice
    linkageType: ''
    returnType: void
    signature: 'fn read_config(&self, offset: u64, data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:270,1
    - Dst: Arc<dyn VirtioInterrupt>::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:270,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:271,1
    - Dst: GuestMemoryMmap::clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:271,1
    - Dst: dup_eventfds
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:276,1
    - Dst: activate
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:278,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:288,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:289,1
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:291,1
    - Dst: thread_helper::spawn_virtio_thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:292,1
    - Dst: Option::run
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:298,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:298,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:298,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:300,1
    - Dst: remove
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:300,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:302,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 60
    argCount: 3
    argNames:
    - mem
    - interrupt_cb
    - queues
    argTypes:
    - GuestMemoryAtomic<GuestMemoryMmap>
    - Arc<dyn VirtioInterrupt>
    - Vec<(usize, Queue, EventFd)>
    constantsTouched: []
    func_position:
      end: 304
      start: 264
    functionDepth: 18
    functionLinenumber: 264
    functionLinenumberEnd: 304
    functionName: Fs::activate
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - activate
    - remove
    - Vec::new
    - as_ref
    - event_monitor::event
    - Option::run
    - clone
    - dup_eventfds
    - GuestMemoryMmap::clone
    - unwrap
    - Arc<dyn VirtioInterrupt>::clone
    - Some
    - thread_helper::spawn_virtio_thread
    - Ok
    linkageType: ''
    returnType: ActivateResult
    signature: 'fn activate(&mut self,mem: GuestMemoryAtomic<GuestMemoryMmap>,interrupt_cb:
      Arc<dyn VirtioInterrupt>,queues: Vec<(usize, Queue, EventFd)>,) -> ActivateResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:308,1
    - Dst: is_some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:308,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:309,1
    - Dst: ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:309,1
    - Dst: lock
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:313,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:313,1
    - Dst: reset_vhost_user
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:313,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:319,1
    - Dst: write
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:321,1
    - Dst: event_monitor::event
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:324,1
    - Dst: Some
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:327,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:327,1
    - Dst: unwrap
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 306
    functionDepth: 14
    functionLinenumber: 306
    functionLinenumberEnd: 328
    functionName: Fs::reset
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - is_some
    - event_monitor::event
    - ok
    - take
    - lock
    - resume
    - reset_vhost_user
    - unwrap
    - Some
    - write
    linkageType: ''
    returnType: Option
    signature: fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 16
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: Fs::shutdown
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - shutdown
    linkageType: ''
    returnType: void
    signature: fn shutdown(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:335,1
    - Dst: map
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:335,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: Fs::get_shm_regions
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - clone
    linkageType: ''
    returnType: Option
    signature: fn get_shm_regions(&self) -> Option<VirtioSharedMemoryList>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:342,1
    - Dst: Ok
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:344,1
    - Dst: Err
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - shm_regions
    argTypes:
    - VirtioSharedMemoryList
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: Fs::set_shm_regions
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - Err
    - Ok
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn set_shm_regions(&mut self,shm_regions: VirtioSharedMemoryList,)
      -> std::result::Result<(), crate::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_memory_region
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - region
    argTypes:
    - '&Arc<GuestRegionMmap>'
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: Fs::add_memory_region
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - add_memory_region
    linkageType: ''
    returnType: std::result::Result
    signature: 'fn add_memory_region(&mut self,region: &Arc<GuestRegionMmap>,) ->
      std::result::Result<(), crate::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:358,1
    - Dst: as_ref
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:359,1
    - Dst: u32::push
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:360,1
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 357
    functionDepth: 5
    functionLinenumber: 357
    functionLinenumberEnd: 369
    functionName: Fs::userspace_mappings
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - clone
    - u32::push
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: fn userspace_mappings(&self) -> Vec<UserspaceMapping>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:374,1
    - Dst: pause
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 16
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: Fs::pause
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - pause
    linkageType: ''
    returnType: result::Result
    signature: fn pause(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:379,1
    - Dst: std::thread
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:382,1
    - Dst: unpark
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:382,1
    - Dst: resume
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 14
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: Fs::resume
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - resume
    - std::thread
    - unpark
    linkageType: ''
    returnType: result::Result
    signature: fn resume(&mut self) -> result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: Fs::id
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: String
    signature: fn id(&self) -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snapshot
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:395,1
    - Dst: Fs::state
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Fs::snapshot
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - snapshot
    - Fs::state
    linkageType: ''
    returnType: std::result::Result
    signature: fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 9
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: Fs::start_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - start_dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stop_dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 9
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: Fs::stop_dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - stop_dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn stop_dirty_log(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirty_log
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 9
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: Fs::dirty_log
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - dirty_log
    linkageType: ''
    returnType: std::result::Result
    signature: fn dirty_log(&mut self) -> std::result::Result<MemoryRangeTable, MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: Fs::start_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - start_migration
    linkageType: ''
    returnType: std::result::Result
    signature: fn start_migration(&mut self) -> std::result::Result<(), MigratableError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: complete_migration
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:418,1
    - Dst: take
      Src: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: Fs::complete_migration
    functionSourceFile: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
    functionUses: 0
    functionsReached:
    - complete_migration
    - take
    linkageType: ''
    returnType: std::result::Result
    signature: fn complete_migration(&mut self) -> std::result::Result<(), MigratableError>
Fuzzer filename: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - pagesize
  - DeviceType::fmt
  - MmioDeviceInfo::addr
  - MmioDeviceInfo::irq
  - MmioDeviceInfo::length
  source_file: /src/cloud-hypervisor/arch/src/lib.rs
- function_names:
  - load_uefi
  source_file: /src/cloud-hypervisor/arch/src/riscv64/uefi.rs
- function_names:
  - create_fdt
  - write_fdt_to_memory
  - create_cpu_nodes
  - create_memory_node
  - create_chosen_node
  - create_aia_node
  - create_serial_node
  - create_devices_node
  - create_pci_nodes
  - print_fdt
  - print_node
  source_file: /src/cloud-hypervisor/arch/src/riscv64/fdt.rs
- function_names:
  - configure_vcpu
  - arch_memory_regions
  - isa_string_from_host
  - configure_system
  - initramfs_load_addr
  - get_host_cpu_phys_bits
  - unit_tests::test_arch_memory_regions_dram
  source_file: /src/cloud-hypervisor/arch/src/riscv64/mod.rs
- function_names: []
  source_file: /src/cloud-hypervisor/arch/src/riscv64/layout.rs
- function_names:
  - load_uefi
  source_file: /src/cloud-hypervisor/arch/src/aarch64/uefi.rs
- function_names:
  - get_cache_size
  - get_cache_coherency_line_size
  - get_cache_number_of_sets
  - get_cache_shared
  - create_fdt
  - write_fdt_to_memory
  - create_cpu_nodes
  - create_memory_node
  - create_chosen_node
  - create_gic_node
  - create_clock_node
  - create_timer_node
  - create_psci_node
  - create_virtio_node
  - create_serial_node
  - create_rtc_node
  - create_gpio_node
  - create_fw_cfg_node
  - create_devices_node
  - create_pmu_node
  - create_pci_nodes
  - create_distance_map_node
  - print_fdt
  - print_node
  source_file: /src/cloud-hypervisor/arch/src/aarch64/fdt.rs
- function_names:
  - configure_vcpu
  - arch_memory_regions
  - configure_system
  - initramfs_load_addr
  - get_host_cpu_phys_bits
  - unit_tests::test_arch_memory_regions_dram
  source_file: /src/cloud-hypervisor/arch/src/aarch64/mod.rs
- function_names: []
  source_file: /src/cloud-hypervisor/arch/src/aarch64/layout.rs
- function_names:
  - setup_fpu
  - setup_msrs
  - setup_regs
  - setup_sregs
  - write_gdt_table
  - write_idt_value
  - configure_segments_and_sregs
  - unit_tests::create_guest_mem
  - unit_tests::read_u64
  - unit_tests::segments_and_sregs
  source_file: /src/cloud-hypervisor/arch/src/x86_64/regs.rs
- function_names:
  - compute_checksum
  - mpf_intel_compute_checksum
  - compute_mp_size
  - setup_mptable
  - unit_tests::table_entry_size
  - unit_tests::bounds_check
  - unit_tests::bounds_check_fails
  - unit_tests::mpf_intel_checksum
  - unit_tests::mpc_table_checksum
  - unit_tests::cpu_entry_count
  - unit_tests::cpu_entry_count_max
  source_file: /src/cloud-hypervisor/arch/src/x86_64/mptable.rs
- function_names:
  - get_x2apic_id
  - get_max_x2apic_id
  - CpuidPatch::get_cpuid_reg
  - CpuidPatch::set_cpuid_reg
  - CpuidPatch::patch_cpuid
  - CpuidPatch::is_feature_enabled
  - CpuidFeatureEntry::checked_feature_entry_list
  - CpuidFeatureEntry::get_features_from_cpuid
  - CpuidFeatureEntry::check_cpuid_compatibility
  - generate_common_cpuid
  - configure_vcpu
  - arch_memory_regions
  - configure_system
  - generate_ram_ranges
  - configure_pvh
  - configure_32bit_entry
  - add_e820_entry
  - add_memmap_entry
  - initramfs_load_addr
  - get_host_cpu_phys_bits
  - update_cpuid_topology
  - unit_tests::regions_base_addr
  - unit_tests::test_system_configuration
  - unit_tests::test_add_e820_entry
  - unit_tests::test_add_memmap_entry
  - unit_tests::test_get_x2apic_id
  source_file: /src/cloud-hypervisor/arch/src/x86_64/mod.rs
- function_names:
  - compute_checksum
  - write_and_incr
  - write_string
  - setup_smbios
  - unit_tests::struct_size
  - unit_tests::entrypoint_checksum
  source_file: /src/cloud-hypervisor/arch/src/x86_64/smbios.rs
- function_names:
  - set_apic_delivery_mode
  - set_lint
  source_file: /src/cloud-hypervisor/arch/src/x86_64/interrupts.rs
- function_names: []
  source_file: /src/cloud-hypervisor/arch/src/x86_64/mpspec.rs
- function_names: []
  source_file: /src/cloud-hypervisor/arch/src/x86_64/layout.rs
- function_names:
  - tdvf_descriptor_offset
  - parse_tdvf_sections
  - align_hob
  - TdHob::update_offset
  - TdHob::start
  - TdHob::finish
  - TdHob::add_resource
  - TdHob::add_memory_resource
  - TdHob::add_mmio_resource
  - TdHob::add_acpi_table
  - TdHob::add_payload
  - unit_tests::test_parse_tdvf_sections
  source_file: /src/cloud-hypervisor/arch/src/x86_64/tdx/mod.rs
- function_names:
  - main
  source_file: /src/cloud-hypervisor/net_util/build.rs
- function_names:
  - Tap::eq
  - Tap::clone
  - build_terminated_if_name
  - ipv6_mask_to_prefix
  - Tap::ioctl_with_mut_ref
  - Tap::ioctl_with_ref
  - Tap::ioctl_with_val
  - Tap::open_named
  - Tap::new
  - Tap::from_tap_fd
  - Tap::set_ip_addr
  - Tap::set_mac_addr
  - Tap::get_mac_addr
  - Tap::mtu
  - Tap::mtu
  - Tap::set_mtu
  - Tap::set_offload
  - Tap::enable
  - Tap::set_vnet_hdr_size
  - Tap::get_ifreq
  - Tap::if_name_as_bytes
  - Tap::if_name_as_str
  - Tap::new_for_fuzzing
  - Tap::read
  - Tap::write
  - Tap::flush
  - Tap::as_raw_fd
  - unit_tests::pnet_build_packet
  - unit_tests::pnet_send_packet
  - unit_tests::pnet_get_mac_tx_rx
  - unit_tests::test_tap_create
  - unit_tests::test_tap_from_fd
  - unit_tests::test_tap_configure
  - unit_tests::test_tap_configure_ipv6
  - unit_tests::test_set_options
  - unit_tests::test_tap_enable
  - unit_tests::test_raw_fd
  - unit_tests::test_read
  - unit_tests::test_write
  source_file: /src/cloud-hypervisor/net_util/src/tap.rs
- function_names:
  - check_mq_support
  - open_tap_rx_q_0
  - open_tap
  source_file: /src/cloud-hypervisor/net_util/src/open_tap.rs
- function_names:
  - create_sockaddr
  - create_inet_socket
  - create_unix_socket
  - vnet_hdr_len
  - register_listener
  - unregister_listener
  - build_net_config_space
  - build_net_config_space_with_mq
  - virtio_features_to_tap_offload
  - unit_tests::test_create_sockaddr
  source_file: /src/cloud-hypervisor/net_util/src/lib.rs
- function_names:
  - TxVirtio::default
  - TxVirtio::new
  - TxVirtio::process_desc_chain
  - RxVirtio::default
  - RxVirtio::new
  - RxVirtio::process_desc_chain
  - IovecBuffer::new
  - IovecBuffer::borrow
  - IovecBufferBorrowed::deref
  - IovecBufferBorrowed::deref_mut
  - IovecBufferBorrowed::drop
  - NetQueuePair::process_tx
  - NetQueuePair::process_rx
  source_file: /src/cloud-hypervisor/net_util/src/queue_pair.rs
- function_names:
  - CtrlQueue::new
  - CtrlQueue::process
  source_file: /src/cloud-hypervisor/net_util/src/ctrl_queue.rs
- function_names:
  - MacAddr::parse_str
  - MacAddr::from_bytes_unchecked
  - MacAddr::from_bytes
  - MacAddr::get_bytes
  - MacAddr::local_random
  - MacAddr::fmt
  - MacAddr::serialize
  - MacAddr::deserialize
  - MacAddr::from_str
  - unit_tests::test_mac_addr
  - unit_tests::test_from_bytes
  - unit_tests::test_mac_addr_serialization_and_deserialization
  source_file: /src/cloud-hypervisor/net_util/src/mac.rs
- function_names:
  - io::Error::from
  - VhostUserBlkThread::new
  - VhostUserBlkThread::process_queue
  - VhostUserBlkBackend::new
  - VhostUserBlkBackend::update_writeback
  - VhostUserBlkBackend::num_queues
  - VhostUserBlkBackend::max_queue_size
  - VhostUserBlkBackend::features
  - VhostUserBlkBackend::acked_features
  - VhostUserBlkBackend::protocol_features
  - VhostUserBlkBackend::set_event_idx
  - VhostUserBlkBackend::handle_event
  - VhostUserBlkBackend::get_config
  - VhostUserBlkBackend::set_config
  - VhostUserBlkBackend::exit_event
  - VhostUserBlkBackend::queues_per_thread
  - VhostUserBlkBackend::update_memory
  - VhostUserBlkBackendConfig::parse
  - start_block_backend
  source_file: /src/cloud-hypervisor/vhost_user_block/src/lib.rs
- function_names:
  - main
  source_file: /src/cloud-hypervisor/vhost_user_block/src/main.rs
- function_names:
  - main
  source_file: /src/cloud-hypervisor/cloud-hypervisor/build.rs
- function_names:
  - TargetApi::new_http_api
  - TargetApi::new_dbus_api
  - TargetApi::guest_args
  - TargetApi::remote_args
  - TargetApi::remote_command
  - _test_api_create_boot
  - _test_api_shutdown
  - _test_api_delete
  - _test_api_pause_resume
  - _test_pty_interaction
  - prepare_virtiofsd
  - prepare_vubd
  - temp_vsock_path
  - temp_api_path
  - temp_event_monitor_path
  - temp_snapshot_dir_path
  - temp_vmcore_file_path
  - direct_kernel_boot_path
  - edk2_path
  - cloud_hypervisor_release_path
  - prepare_vhost_user_net_daemon
  - prepare_swtpm_daemon
  - remote_command
  - remote_command_w_output
  - resize_command
  - resize_zone_command
  - resize_disk_command
  - setup_ovs_dpdk
  - cleanup_ovs_dpdk
  - setup_ovs_dpdk_guests
  - fw_path
  - MetaEvent::match_with_json_event
  - parse_event_file
  - check_sequential_events
  - check_sequential_events_exact
  - check_latest_events_exact
  - test_cpu_topology
  - _test_guest_numa_nodes
  - _test_power_button
  - test_vhost_user_net
  - test_vhost_user_blk
  - test_boot_from_vhost_user_blk
  - _test_virtio_fs
  - test_virtio_pmem
  - get_fd_count
  - _test_virtio_vsock
  - get_ksm_pages_shared
  - test_memory_mergeable
  - _get_vmm_overhead
  - get_vmm_overhead
  - process_rss_kib
  - get_counters
  - pty_read
  - get_pty_path
  - setup_vfio_network_interfaces
  - cleanup_vfio_network_interfaces
  - balloon_size
  - vm_state
  - _test_virtio_iommu
  - get_reboot_count
  - enable_guest_watchdog
  - make_guest_panic
  - _test_ivshmem
  - common_parallel::test_focal_hypervisor_fw
  - common_parallel::test_focal_ovmf
  - common_parallel::test_simple_launch
  - common_parallel::test_multi_cpu
  - common_parallel::test_cpu_topology_421
  - common_parallel::test_cpu_topology_142
  - common_parallel::test_cpu_topology_262
  - common_parallel::test_cpu_physical_bits
  - common_parallel::test_cpu_affinity
  - common_parallel::test_virtio_queue_affinity
  - common_parallel::test_large_vm
  - common_parallel::test_huge_memory
  - common_parallel::test_power_button
  - common_parallel::test_user_defined_memory_regions
  - common_parallel::test_guest_numa_nodes
  - common_parallel::test_iommu_segments
  - common_parallel::test_pci_msi
  - common_parallel::test_virtio_net_ctrl_queue
  - common_parallel::test_pci_multiple_segments
  - common_parallel::test_pci_multiple_segments_numa_node
  - common_parallel::test_direct_kernel_boot
  - common_parallel::test_direct_kernel_boot_bzimage
  - common_parallel::_test_virtio_block
  - common_parallel::test_virtio_block_io_uring
  - common_parallel::test_virtio_block_aio
  - common_parallel::test_virtio_block_sync
  - common_parallel::disk_check_consistency
  - common_parallel::test_virtio_block_qcow2
  - common_parallel::test_virtio_block_qcow2_zlib
  - common_parallel::test_virtio_block_qcow2_zstd
  - common_parallel::test_virtio_block_qcow2_backing_zstd_file
  - common_parallel::test_virtio_block_qcow2_backing_uncompressed_file
  - common_parallel::test_virtio_block_vhd
  - common_parallel::test_virtio_block_vhdx
  - common_parallel::test_virtio_block_dynamic_vhdx_expand
  - common_parallel::vhdx_image_size
  - common_parallel::test_virtio_block_direct_and_firmware
  - common_parallel::test_vhost_user_net_default
  - common_parallel::test_vhost_user_net_named_tap
  - common_parallel::test_vhost_user_net_existing_tap
  - common_parallel::test_vhost_user_net_multiple_queues
  - common_parallel::test_vhost_user_net_tap_multiple_queues
  - common_parallel::test_vhost_user_net_host_mac
  - common_parallel::test_vhost_user_net_client_mode
  - common_parallel::test_vhost_user_blk_default
  - common_parallel::test_vhost_user_blk_readonly
  - common_parallel::test_vhost_user_blk_direct
  - common_parallel::test_boot_from_vhost_user_blk_default
  - common_parallel::test_split_irqchip
  - common_parallel::test_dmi_serial_number
  - common_parallel::test_dmi_uuid
  - common_parallel::test_dmi_oem_strings
  - common_parallel::test_virtio_fs
  - common_parallel::test_virtio_fs_hotplug
  - common_parallel::test_virtio_fs_multi_segment_hotplug
  - common_parallel::test_virtio_fs_multi_segment
  - common_parallel::test_virtio_pmem_discard_writes
  - common_parallel::test_virtio_pmem_with_size
  - common_parallel::test_boot_from_virtio_pmem
  - common_parallel::test_multiple_network_interfaces
  - common_parallel::test_pmu_on
  - common_parallel::test_serial_off
  - common_parallel::test_serial_null
  - common_parallel::test_serial_tty
  - common_parallel::test_serial_file
  - common_parallel::test_pty_interaction
  - common_parallel::test_serial_socket_interaction
  - common_parallel::test_virtio_console
  - common_parallel::test_console_file
  - common_parallel::test_vfio
  - common_parallel::test_direct_kernel_boot_noacpi
  - common_parallel::test_virtio_vsock
  - common_parallel::test_virtio_vsock_hotplug
  - common_parallel::test_api_http_shutdown
  - common_parallel::test_api_http_delete
  - common_parallel::test_api_http_pause_resume
  - common_parallel::test_api_http_create_boot
  - common_parallel::test_virtio_iommu
  - common_parallel::test_pci_bar_reprogramming
  - common_parallel::test_memory_mergeable_off
  - common_parallel::test_cpu_hotplug
  - common_parallel::test_memory_hotplug
  - common_parallel::test_virtio_mem
  - common_parallel::test_resize
  - common_parallel::test_memory_overhead
  - common_parallel::test_landlock
  - common_parallel::_test_disk_hotplug
  - common_parallel::test_disk_hotplug
  - common_parallel::test_disk_hotplug_with_landlock
  - common_parallel::test_disk_resize
  - common_parallel::create_loop_device
  - common_parallel::test_virtio_block_topology
  - common_parallel::test_virtio_balloon_deflate_on_oom
  - common_parallel::test_virtio_balloon_free_page_reporting
  - common_parallel::test_pmem_hotplug
  - common_parallel::test_pmem_multi_segment_hotplug
  - common_parallel::_test_pmem_hotplug
  - common_parallel::test_net_hotplug
  - common_parallel::test_net_multi_segment_hotplug
  - common_parallel::_test_net_hotplug
  - common_parallel::test_initramfs
  - common_parallel::test_counters
  - common_parallel::test_coredump
  - common_parallel::test_coredump_no_pause
  - common_parallel::test_watchdog
  - common_parallel::test_pvpanic
  - common_parallel::test_tap_from_fd
  - common_parallel::_test_macvtap
  - common_parallel::test_macvtap
  - common_parallel::test_macvtap_hotplug
  - common_parallel::test_ovs_dpdk
  - common_parallel::setup_spdk_nvme
  - common_parallel::cleanup_spdk_nvme
  - common_parallel::test_vfio_user
  - common_parallel::test_vdpa_block
  - common_parallel::test_vdpa_net
  - common_parallel::test_tpm
  - common_parallel::test_double_tty
  - common_parallel::test_nmi
  - dbus_api::test_api_dbus_and_http_interleaved
  - dbus_api::test_api_dbus_create_boot
  - dbus_api::test_api_dbus_shutdown
  - dbus_api::test_api_dbus_delete
  - dbus_api::test_api_dbus_pause_resume
  - ivshmem::_test_live_migration_ivshmem
  - ivshmem::test_ivshmem
  - ivshmem::test_snapshot_restore_ivshmem
  - ivshmem::test_live_migration_ivshmem
  - ivshmem::test_live_migration_ivshmem_local
  - common_sequential::test_memory_mergeable_on
  - common_sequential::snapshot_and_check_events
  - common_sequential::test_snapshot_restore_hotplug_virtiomem
  - common_sequential::test_snapshot_restore_basic
  - common_sequential::_test_snapshot_restore
  - common_sequential::test_snapshot_restore_with_fd
  - common_sequential::test_snapshot_restore_pvpanic
  - common_sequential::_test_snapshot_restore_devices
  - common_sequential::test_virtio_pmem_persist_writes
  - windows::vcpu_threads_count
  - windows::netdev_ctrl_threads_count
  - windows::disk_ctrl_threads_count
  - windows::test_windows_guest
  - windows::test_windows_guest_multiple_queues
  - windows::test_windows_guest_snapshot_restore
  - windows::test_windows_guest_cpu_hotplug
  - windows::test_windows_guest_ram_hotplug
  - windows::test_windows_guest_netdev_hotplug
  - windows::test_windows_guest_disk_hotplug
  - windows::test_windows_guest_disk_hotplug_multi
  - windows::test_windows_guest_netdev_multi
  - vfio::test_nvidia_card_memory_hotplug
  - vfio::test_nvidia_card_memory_hotplug_acpi
  - vfio::test_nvidia_card_memory_hotplug_virtio_mem
  - vfio::test_nvidia_card_pci_hotplug
  - vfio::test_nvidia_card_reboot
  - vfio::test_nvidia_card_iommu_address_width
  - live_migration::start_live_migration
  - live_migration::print_and_panic
  - live_migration::_test_live_migration
  - live_migration::_test_live_migration_balloon
  - live_migration::_test_live_migration_numa
  - live_migration::_test_live_migration_watchdog
  - live_migration::_test_live_migration_ovs_dpdk
  - live_migration::_test_live_migration_with_landlock
  - live_migration::get_available_port
  - live_migration::start_live_migration_tcp
  - live_migration::_test_live_migration_tcp
  - live_migration::test_live_migration_basic
  - live_migration::test_live_migration_local
  - live_migration::test_live_migration_tcp
  - live_migration::test_live_migration_watchdog
  - live_migration::test_live_migration_watchdog_local
  - live_migration::test_live_upgrade_basic
  - live_migration::test_live_upgrade_local
  - live_migration::test_live_upgrade_watchdog
  - live_migration::test_live_upgrade_watchdog_local
  - live_migration::test_live_migration_with_landlock
  - live_migration::test_live_migration_balloon
  - live_migration::test_live_migration_balloon_local
  - live_migration::test_live_upgrade_balloon
  - live_migration::test_live_upgrade_balloon_local
  - live_migration::test_live_migration_numa
  - live_migration::test_live_migration_numa_local
  - live_migration::test_live_upgrade_numa
  - live_migration::test_live_upgrade_numa_local
  - live_migration::test_live_migration_ovs_dpdk
  - live_migration::test_live_migration_ovs_dpdk_local
  - live_migration::test_live_upgrade_ovs_dpdk
  - live_migration::test_live_upgrade_ovs_dpdk_local
  - aarch64_acpi::test_simple_launch_acpi
  - aarch64_acpi::test_guest_numa_nodes_acpi
  - aarch64_acpi::test_cpu_topology_421_acpi
  - aarch64_acpi::test_cpu_topology_142_acpi
  - aarch64_acpi::test_cpu_topology_262_acpi
  - aarch64_acpi::test_power_button_acpi
  - aarch64_acpi::test_virtio_iommu
  - rate_limiter::check_rate_limit
  - rate_limiter::_test_rate_limiter_net
  - rate_limiter::test_rate_limiter_net_rx
  - rate_limiter::test_rate_limiter_net_tx
  - rate_limiter::_test_rate_limiter_block
  - rate_limiter::_test_rate_limiter_group_block
  - rate_limiter::test_rate_limiter_block_bandwidth
  - rate_limiter::test_rate_limiter_group_block_bandwidth
  - rate_limiter::test_rate_limiter_block_iops
  - rate_limiter::test_rate_limiter_group_block_iops
  - fw_cfg::test_fw_cfg
  source_file: /src/cloud-hypervisor/cloud-hypervisor/tests/integration.rs
- function_names:
  - assert_args_sorted
  source_file: /src/cloud-hypervisor/cloud-hypervisor/src/test_util.rs
- function_names:
  - cli_print_error_chain
  source_file: /src/cloud-hypervisor/cloud-hypervisor/src/lib.rs
- function_names:
  - Logger::enabled
  - Logger::log
  - Logger::flush
  - prepare_default_values
  - default_vcpus
  - default_memory
  - default_rng
  - get_cli_options_sorted
  - create_app
  - start_vmm
  - expand_fdtable
  - main
  - unit_tests::get_vm_config_from_vec
  - unit_tests::compare_vm_config_cli_vs_json
  - unit_tests::test_valid_vm_config_default
  - unit_tests::test_valid_vm_config_cpus
  - unit_tests::test_valid_vm_config_memory
  - unit_tests::test_valid_vm_config_kernel
  - unit_tests::test_valid_vm_config_cmdline
  - unit_tests::test_valid_vm_config_disks
  - unit_tests::test_valid_vm_config_net
  - unit_tests::test_valid_vm_config_rng
  - unit_tests::test_valid_vm_config_fs
  - unit_tests::test_valid_vm_config_pmem
  - unit_tests::test_valid_vm_config_debug_console
  - unit_tests::test_valid_vm_config_serial_console
  - unit_tests::test_valid_vm_config_serial_pty_console_pty
  - unit_tests::test_valid_vm_config_devices
  - unit_tests::test_valid_vm_config_vdpa
  - unit_tests::test_valid_vm_config_vsock
  - unit_tests::test_valid_vm_config_tpm_socket
  - unit_tests::test_cli_options_sorted
  source_file: /src/cloud-hypervisor/cloud-hypervisor/src/main.rs
- function_names:
  - DBusApi1ProxyBlocking::new_connection
  - DBusApi1ProxyBlocking::print_response
  - DBusApi1ProxyBlocking::api_vmm_ping
  - DBusApi1ProxyBlocking::api_vmm_shutdown
  - DBusApi1ProxyBlocking::api_vm_add_device
  - DBusApi1ProxyBlocking::api_vm_add_disk
  - DBusApi1ProxyBlocking::api_vm_add_fs
  - DBusApi1ProxyBlocking::api_vm_add_net
  - DBusApi1ProxyBlocking::api_vm_add_pmem
  - DBusApi1ProxyBlocking::api_vm_add_user_device
  - DBusApi1ProxyBlocking::api_vm_add_vdpa
  - DBusApi1ProxyBlocking::api_vm_add_vsock
  - DBusApi1ProxyBlocking::api_vm_boot
  - DBusApi1ProxyBlocking::api_vm_coredump
  - DBusApi1ProxyBlocking::api_vm_counters
  - DBusApi1ProxyBlocking::api_vm_create
  - DBusApi1ProxyBlocking::api_vm_delete
  - DBusApi1ProxyBlocking::api_vm_info
  - DBusApi1ProxyBlocking::api_vm_pause
  - DBusApi1ProxyBlocking::api_vm_power_button
  - DBusApi1ProxyBlocking::api_vm_reboot
  - DBusApi1ProxyBlocking::api_vm_remove_device
  - DBusApi1ProxyBlocking::api_vm_resize
  - DBusApi1ProxyBlocking::api_vm_resize_zone
  - DBusApi1ProxyBlocking::api_vm_restore
  - DBusApi1ProxyBlocking::api_vm_receive_migration
  - DBusApi1ProxyBlocking::api_vm_send_migration
  - DBusApi1ProxyBlocking::api_vm_resume
  - DBusApi1ProxyBlocking::api_vm_shutdown
  - DBusApi1ProxyBlocking::api_vm_snapshot
  - TargetApi::do_command
  - rest_api_do_command
  - dbus_api_do_command
  - resize_config
  - resize_disk_config
  - resize_zone_config
  - add_device_config
  - add_user_device_config
  - remove_device_config
  - add_disk_config
  - add_fs_config
  - add_pmem_config
  - add_net_config
  - add_vdpa_config
  - add_vsock_config
  - snapshot_config
  - restore_config
  - coredump_config
  - receive_migration_data
  - send_migration_data
  - create_data
  - get_cli_args
  - get_cli_commands_sorted
  - main
  - unit_tests::test_cli_args_sorted
  - unit_tests::test_cli_commands_sorted
  source_file: /src/cloud-hypervisor/cloud-hypervisor/src/bin/ch-remote.rs
- function_names:
  - Tracer::new
  - Tracer::end
  - Tracer::add_event
  - Tracer::increase_thread_depth
  - Tracer::decrease_thread_depth
  - Tracer::thread_depth
  - trace_point_log
  - TraceBlock::new
  - TraceBlock::drop
  - trace_point
  - trace_scoped
  - end
  - start
  source_file: /src/cloud-hypervisor/tracer/src/tracer.rs
- function_names:
  - trace_scoped
  - trace_point
  - end
  - start
  source_file: /src/cloud-hypervisor/tracer/src/tracer_noop.rs
- function_names: []
  source_file: /src/cloud-hypervisor/tracer/src/lib.rs
- function_names:
  - Hypervisor::check_required_extensions
  - Hypervisor::tdx_capabilities
  - Hypervisor::get_guest_debug_hw_bps
  - Hypervisor::get_cpu_vendor
  - Hypervisor::enable_amx_state_components
  source_file: /src/cloud-hypervisor/hypervisor/src/hypervisor.rs
- function_names:
  - Vcpu::create_standard_regs
  - Vcpu::notify_guest_clock_paused
  - Vcpu::set_guest_debug
  - Vcpu::tdx_init
  - Vcpu::set_immediate_exit
  - Vcpu::get_tdx_exit_details
  - Vcpu::set_tdx_status
  - Vcpu::tsc_khz
  - Vcpu::set_tsc_khz
  - Vcpu::get_cpuid_values
  - Vcpu::set_sev_control_register
  - Vcpu::set_gic_redistributor_addr
  source_file: /src/cloud-hypervisor/hypervisor/src/cpu.rs
- function_names:
  - u64::from
  - Vm::sev_snp_init
  - Vm::tdx_init
  - Vm::tdx_finalize
  - Vm::tdx_init_memory_region
  - Vm::import_isolated_pages
  - Vm::complete_isolated_import
  - Vm::init
  - Vm::pause
  - Vm::resume
  - Vm::gain_page_access
  - Vm::enable_x2apic_api
  source_file: /src/cloud-hypervisor/hypervisor/src/vm.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/device.rs
- function_names:
  - new
  - vec_with_size_in_bytes
  - vec_with_array_field
  - ClockData::reset_flags
  - set_x86_64_reg
  - get_x86_64_reg
  - set_aarch64_reg
  - get_aarch64_reg
  - set_riscv64_reg
  - get_riscv64_reg
  source_file: /src/cloud-hypervisor/hypervisor/src/lib.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/mod.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/riscv64/aia.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/riscv64/mod.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/msr_index.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/regs.rs
- function_names:
  - gdt_entry
  - get_base
  - get_limit
  - get_g
  - get_db
  - get_l
  - get_avl
  - get_p
  - get_dpl
  - get_s
  - get_type
  - segment_from_gdt
  - unit_tests::field_parse
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/gdt.rs
- function_names:
  - SegmentRegister::segment_type
  - SegmentRegister::set_segment_type
  - SegmentRegister::dpl
  - SegmentRegister::set_dpl
  - SegmentRegister::present
  - SegmentRegister::set_present
  - SegmentRegister::long
  - SegmentRegister::set_long
  - SegmentRegister::avl
  - SegmentRegister::set_avl
  - SegmentRegister::desc_type
  - SegmentRegister::set_desc_type
  - SegmentRegister::granularity
  - SegmentRegister::set_granularity
  - SegmentRegister::db
  - SegmentRegister::set_db
  - segment_type_code
  - segment_type_ro
  - segment_type_expand_down
  - msr
  - msr_data
  - CpuIdEntry::fmt
  - LapicState::default
  - LapicState::get_klapic_reg
  - LapicState::set_klapic_reg
  - XsaveState::default
  - amx_supported
  - request_guest_amx_support
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/mod.rs
- function_names:
  - CpuStateManager::linearize
  - set_reg
  - EmulatorCpuState::read_reg
  - EmulatorCpuState::write_reg
  - EmulatorCpuState::read_segment
  - EmulatorCpuState::write_segment
  - EmulatorCpuState::ip
  - EmulatorCpuState::set_ip
  - EmulatorCpuState::efer
  - EmulatorCpuState::set_efer
  - EmulatorCpuState::flags
  - EmulatorCpuState::set_flags
  - EmulatorCpuState::mode
  - gen_handler_match
  - Emulator::new
  - Emulator::get_handler
  - Emulator::emulate_insn_stream
  - Emulator::emulate
  - Emulator::emulate_first_insn
  - unit_tests::test_empty_instruction_stream
  - unit_tests::test_empty_instruction_stream_bad
  - unit_tests::test_fetch_first_instruction
  - unit_tests::test_fetch_second_instruction
  - unit_tests::test_emulate_one_instruction
  - unit_tests::test_fetch_bad_insn
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/mod.rs
- function_names:
  - mov_rm_r
  - mov_rm_imm
  - movzx
  - mov_r_rm
  - mov_r_imm
  - unit_tests::test_mov_r64_r64
  - unit_tests::test_mov_r64_imm64
  - unit_tests::test_mov_r64_m64
  - unit_tests::test_mov_r8_imm8
  - unit_tests::test_mov_r32_imm8
  - unit_tests::test_mov_r64_imm32
  - unit_tests::test_mov_m8_r8
  - unit_tests::test_mov_m32_r32
  - unit_tests::test_mov_m32imm32_r32
  - unit_tests::test_mov_r32_m32imm32
  - unit_tests::test_mov_r8_m32imm32
  - unit_tests::test_mov_r64_imm64_and_r64_m64
  - unit_tests::test_mov_r64_imm64_and_r64_m64_first_insn
  - unit_tests::test_mov_r64_imm64_and_r64_m64_two_insns
  - unit_tests::test_movzx_r32_r8l
  - unit_tests::test_movzx_r32_r8h
  - unit_tests::test_movzx_r32_m8
  - u::n::i::t::_::t::e::s::t::s::::::::t::e::s::t::_::m::o::v::_::m::e::m::o::f::f::_::a::x::helper
  - unit_tests::test_mov_memoff_ax
  - u::n::i::t::_::t::e::s::t::s::::::::t::e::s::t::_::m::o::v::_::a::x::_::m::e::m::o::f::f::helper
  - unit_tests::test_mov_ax_memoff
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mov.rs
- function_names:
  - or_rm_r
  - unit_tests::test_or_rm8_r8
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/or.rs
- function_names:
  - calc_rflags_cpazso
  - cmp_rm_r
  - cmp_r_rm
  - cmp_rm_imm
  - unit_tests::test_cmp_rm8_r8_1
  - unit_tests::test_cmp_rm32_imm8_1
  - unit_tests::test_cmp_rm32_imm8_2
  - unit_tests::test_cmp_rm64_r64
  - unit_tests::test_cmp_64
  - unit_tests::test_cmp_32
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/cmp.rs
- function_names:
  - stos
  - unit_tests::test_rep_stosb
  - unit_tests::test_stosw
  - unit_tests::test_rep_stosw
  - unit_tests::test_rep_stosd
  - unit_tests::test_rep_stosq
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/stos.rs
- function_names:
  - movs
  - unit_tests::test_rep_movsq_m64_m64
  - unit_tests::test_rep_movsd_m32_m32
  - unit_tests::test_movsd_m32_m32
  - unit_tests::test_rep_movsw_m16_m16
  - unit_tests::test_movsw_m16_m16
  - unit_tests::test_movsb_m8_m8
  - unit_tests::test_rep_movsb_m8_m8
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/movs.rs
- function_names:
  - get_op
  - set_op
  - memory_operand_address
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/x86/emulator/instructions/mod.rs
- function_names:
  - FaultStatusCode::from_bits
  - FaultStatusCode::into_bits
  - arm64_sys_reg
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/regs.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/mod.rs
- function_names:
  - GicState::deserialize
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/aarch64/gic.rs
- function_names:
  - Exception::fmt
  source_file: /src/cloud-hypervisor/hypervisor/src/arch/emulator/mod.rs
- function_names:
  - MpState::from
  - kvm_mp_state::from
  - IoEventAddress::from
  - kvm_ioctls::IoEventAddress::from
  - CpuState::from
  - VcpuKvmState::from
  - ClockData::from
  - kvm_clock_data::from
  - crate::Register::from
  - kvm_bindings::kvm_one_reg::from
  - crate::VcpuInit::from
  - kvm_bindings::kvm_vcpu_init::from
  - crate::RegList::from
  - kvm_bindings::RegList::from
  - crate::StandardRegisters::from
  - kvm_bindings::kvm_regs::from
  - crate::StandardRegisters::from
  - kvm_bindings::kvm_riscv_core::from
  - IrqRoutingEntry::from
  - kvm_irq_routing_entry::from
  - KvmVm::create_device
  - KvmVm::check_extension
  - KvmVm::translate_msi_ext_dest_id
  - KvmVm::translate_msi_ext_dest_id
  - KvmVm::set_identity_map_address
  - KvmVm::set_tss_address
  - KvmVm::create_irq_chip
  - KvmVm::register_irqfd
  - KvmVm::unregister_irqfd
  - KvmVm::create_vcpu
  - KvmVm::create_vgic
  - KvmVm::create_vaia
  - KvmVm::register_ioevent
  - KvmVm::unregister_ioevent
  - KvmVm::make_routing_entry
  - KvmVm::set_gsi_routing
  - KvmVm::create_user_memory_region
  - KvmVm::remove_user_memory_region
  - KvmVm::get_preferred_target
  - KvmVm::enable_split_irq
  - KvmVm::enable_x2apic_api
  - KvmVm::get_clock
  - KvmVm::set_clock
  - KvmVm::create_passthrough_device
  - KvmVm::start_dirty_log
  - KvmVm::stop_dirty_log
  - KvmVm::get_dirty_log
  - KvmVm::tdx_init
  - KvmVm::tdx_finalize
  - KvmVm::tdx_init_memory_region
  - KvmVm::as_any
  - tdx_command
  - KvmHypervisor::get_msr_list
  - KvmHypervisor::new
  - KvmHypervisor::is_available
  - KvmHypervisor::hypervisor_type
  - KvmHypervisor::create_vm
  - KvmHypervisor::check_required_extensions
  - KvmHypervisor::get_supported_cpuid
  - KvmHypervisor::get_host_ipa_limit
  - KvmHypervisor::tdx_capabilities
  - KvmHypervisor::get_guest_debug_hw_bps
  - KvmHypervisor::get_max_vcpus
  - KvmVcpu::create_standard_regs
  - KvmVcpu::get_regs
  - KvmVcpu::get_regs
  - KvmVcpu::get_regs
  - KvmVcpu::set_regs
  - KvmVcpu::set_regs
  - KvmVcpu::set_regs
  - KvmVcpu::get_sregs
  - KvmVcpu::set_sregs
  - KvmVcpu::get_fpu
  - KvmVcpu::set_fpu
  - KvmVcpu::set_cpuid2
  - KvmVcpu::enable_hyperv_synic
  - KvmVcpu::get_cpuid2
  - KvmVcpu::get_lapic
  - KvmVcpu::set_lapic
  - KvmVcpu::get_msrs
  - KvmVcpu::set_msrs
  - KvmVcpu::get_mp_state
  - KvmVcpu::set_mp_state
  - KvmVcpu::translate_gva
  - KvmVcpu::run
  - KvmVcpu::notify_guest_clock_paused
  - KvmVcpu::set_guest_debug
  - KvmVcpu::vcpu_get_finalized_features
  - KvmVcpu::vcpu_set_processor_features
  - KvmVcpu::create_vcpu_init
  - KvmVcpu::vcpu_init
  - KvmVcpu::vcpu_finalize
  - KvmVcpu::get_reg_list
  - KvmVcpu::get_sys_reg
  - KvmVcpu::get_non_core_reg
  - KvmVcpu::setup_regs
  - KvmVcpu::setup_regs
  - KvmVcpu::state
  - KvmVcpu::state
  - KvmVcpu::state
  - KvmVcpu::set_state
  - KvmVcpu::set_state
  - KvmVcpu::set_state
  - KvmVcpu::tdx_init
  - KvmVcpu::set_immediate_exit
  - KvmVcpu::get_tdx_exit_details
  - KvmVcpu::set_tdx_status
  - KvmVcpu::boot_msr_entries
  - KvmVcpu::has_pmu_support
  - KvmVcpu::init_pmu
  - KvmVcpu::tsc_khz
  - KvmVcpu::set_tsc_khz
  - KvmVcpu::nmi
  - KvmVcpu::get_xsave
  - KvmVcpu::set_xsave
  - KvmVcpu::get_xsave2
  - KvmVcpu::set_xsave2
  - KvmVcpu::get_xcrs
  - KvmVcpu::set_xcrs
  - KvmVcpu::get_vcpu_events
  - KvmVcpu::set_vcpu_events
  - KvmVcpu::nested_state
  - KvmVcpu::set_nested_state
  - unit_tests::test_get_and_set_regs
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/mod.rs
- function_names:
  - KvmAiaImsics::version
  - KvmAiaImsics::init_device_attributes
  - KvmAiaImsics::create_device
  - KvmAiaImsics::get_device_attribute
  - KvmAiaImsics::set_device_attribute
  - KvmAiaImsics::new
  - KvmAiaImsics::aplic_compatibility
  - KvmAiaImsics::aplic_properties
  - KvmAiaImsics::imsic_compatibility
  - KvmAiaImsics::imsic_properties
  - KvmAiaImsics::vcpu_count
  - KvmAiaImsics::msi_compatible
  - KvmAiaImsics::as_any_concrete_mut
  - KvmAiaImsics::state
  - KvmAiaImsics::set_state
  - unit_tests::create_test_vaia_config
  - unit_tests::test_create_aia
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/aia.rs
- function_names:
  - riscv64_reg_id
  - is_non_core_register
  - check_required_kvm_extensions
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/riscv64/mod.rs
- function_names:
  - arm64_core_reg_id
  - is_system_register
  - check_required_kvm_extensions
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/mod.rs
- function_names:
  - VGIC_DIST_REG
  - dist_attr_set
  - dist_attr_get
  - read_ctlr
  - write_ctlr
  - get_interrupts_num
  - compute_reg_len
  - set_dist_regs
  - get_dist_regs
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/dist_regs.rs
- function_names:
  - arm64_vgic_sys_reg
  - SYS_ICC_AP0Rn_EL1
  - SYS_ICC_AP1Rn_EL1
  - icc_attr_set
  - icc_attr_get
  - get_icc_regs
  - set_icc_regs
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/icc_regs.rs
- function_names:
  - gicv3_its_attr_set
  - gicv3_its_attr_get
  - gicv3_its_tables_access
  - Gicv3ItsState::from
  - GicState::from
  - KvmGicV3Its::version
  - KvmGicV3Its::init_device_attributes
  - KvmGicV3Its::create_device
  - KvmGicV3Its::set_device_attribute
  - KvmGicV3Its::new
  - KvmGicV3Its::fdt_compatibility
  - KvmGicV3Its::msi_compatible
  - KvmGicV3Its::msi_compatibility
  - KvmGicV3Its::fdt_maint_irq
  - KvmGicV3Its::vcpu_count
  - KvmGicV3Its::device_properties
  - KvmGicV3Its::msi_properties
  - KvmGicV3Its::set_gicr_typers
  - KvmGicV3Its::as_any_concrete_mut
  - KvmGicV3Its::state
  - KvmGicV3Its::set_state
  - KvmGicV3Its::save_data_tables
  - unit_tests::create_test_vgic_config
  - unit_tests::test_create_gic
  - unit_tests::test_get_set_dist_regs
  - unit_tests::test_get_set_redist_regs
  - unit_tests::test_get_set_icc_regs
  - unit_tests::test_save_data_tables
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/mod.rs
- function_names:
  - VGIC_RDIST_REG
  - redist_attr_set
  - redist_attr_get
  - access_redists_aux
  - get_redist_regs
  - set_redist_regs
  - construct_gicr_typers
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/aarch64/gic/redist_regs.rs
- function_names:
  - check_required_kvm_extensions
  - kvm_segment::from
  - SegmentRegister::from
  - kvm_dtable::from
  - DescriptorTable::from
  - kvm_sregs::from
  - SpecialRegisters::from
  - kvm_cpuid_entry2::from
  - CpuIdEntry::from
  - FpuState::from
  - kvm_fpu::from
  - kvm_lapic_state::from
  - LapicState::from
  - MsrEntry::from
  - kvm_msr_entry::from
  - XsaveState::from
  - kvm_xsave::try_from
  - XsaveState::from
  - XsaveState::to_xsave2
  source_file: /src/cloud-hypervisor/hypervisor/src/kvm/x86_64/mod.rs
- function_names:
  - ClockData::from
  - MshvClockData::from
  - IoEventAddress::from
  - mshv_ioctls::IoEventAddress::from
  - CpuState::from
  - VcpuMshvState::from
  - crate::StandardRegisters::from
  - mshv_bindings::StandardRegisters::from
  - IrqRoutingEntry::from
  - mshv_user_irq_entry::from
  - crate::RegList::from
  - mshv_bindings::MshvRegList::from
  - crate::VcpuInit::from
  - mshv_bindings::MshvVcpuInit::from
  - MshvHypervisor::new
  - MshvHypervisor::is_available
  - MshvHypervisor::hypervisor_type
  - MshvHypervisor::create_vm
  - MshvHypervisor::get_supported_cpuid
  - MshvHypervisor::get_max_vcpus
  - MshvHypervisor::get_guest_debug_hw_bps
  - MshvHypervisor::get_host_ipa_limit
  - MshvVcpu::create_standard_regs
  - MshvVcpu::get_regs
  - MshvVcpu::set_regs
  - MshvVcpu::get_sregs
  - MshvVcpu::set_sregs
  - MshvVcpu::get_fpu
  - MshvVcpu::set_fpu
  - MshvVcpu::get_msrs
  - MshvVcpu::set_msrs
  - MshvVcpu::enable_hyperv_synic
  - MshvVcpu::run
  - MshvVcpu::init_pmu
  - MshvVcpu::has_pmu_support
  - MshvVcpu::setup_regs
  - MshvVcpu::get_sys_reg
  - MshvVcpu::get_reg_list
  - MshvVcpu::vcpu_init
  - MshvVcpu::vcpu_finalize
  - MshvVcpu::vcpu_get_finalized_features
  - MshvVcpu::vcpu_set_processor_features
  - MshvVcpu::create_vcpu_init
  - MshvVcpu::set_cpuid2
  - MshvVcpu::get_cpuid2
  - MshvVcpu::get_cpuid_values
  - MshvVcpu::get_lapic
  - MshvVcpu::set_lapic
  - MshvVcpu::get_mp_state
  - MshvVcpu::set_mp_state
  - MshvVcpu::set_state
  - MshvVcpu::set_state
  - MshvVcpu::state
  - MshvVcpu::state
  - MshvVcpu::translate_gva
  - MshvVcpu::boot_msr_entries
  - MshvVcpu::set_sev_control_register
  - MshvVcpu::nmi
  - MshvVcpu::set_gic_redistributor_addr
  - MshvVcpu::disable_prev_ghcb_page
  - MshvVcpu::get_xcrs
  - MshvVcpu::set_xcrs
  - MshvVcpu::get_vcpu_events
  - MshvVcpu::set_vcpu_events
  - MshvVcpu::clear_swexit_info1
  - MshvVcpu::gpa_write
  - MshvVcpu::advance_rip_update_rax
  - MshvVcpu::sys_reg_to_mshv_reg
  - MshvVm::create_device
  - MshvVm::set_partition_property
  - MshvVm::set_identity_map_address
  - MshvVm::set_tss_address
  - MshvVm::create_irq_chip
  - MshvVm::register_irqfd
  - MshvVm::unregister_irqfd
  - MshvVm::create_vcpu
  - MshvVm::enable_split_irq
  - MshvVm::register_ioevent
  - MshvVm::unregister_ioevent
  - MshvVm::create_user_memory_region
  - MshvVm::remove_user_memory_region
  - MshvVm::create_passthrough_device
  - MshvVm::make_routing_entry
  - MshvVm::set_gsi_routing
  - MshvVm::start_dirty_log
  - MshvVm::stop_dirty_log
  - MshvVm::get_dirty_log
  - MshvVm::get_clock
  - MshvVm::set_clock
  - MshvVm::as_any
  - MshvVm::sev_snp_init
  - MshvVm::import_isolated_pages
  - MshvVm::complete_isolated_import
  - MshvVm::create_vgic
  - MshvVm::get_preferred_target
  - MshvVm::pause
  - MshvVm::resume
  - MshvVm::gain_page_access
  - MshvVm::init
  source_file: /src/cloud-hypervisor/hypervisor/src/mshv/mod.rs
- function_names: []
  source_file: /src/cloud-hypervisor/hypervisor/src/mshv/snp_constants.rs
- function_names:
  - Emulator::new
  - Emulator::emulate_with_syndrome
  - Emulator::emulate
  source_file: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/emulator.rs
- function_names:
  - VcpuMshvState::fmt
  source_file: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/mod.rs
- function_names:
  - MshvGicV2MState::from
  - GicState::from
  - MshvGicV2M::new
  - MshvGicV2M::fdt_compatibility
  - MshvGicV2M::msi_compatible
  - MshvGicV2M::msi_compatibility
  - MshvGicV2M::fdt_maint_irq
  - MshvGicV2M::vcpu_count
  - MshvGicV2M::msi_properties
  - MshvGicV2M::device_properties
  - MshvGicV2M::set_gicr_typers
  - MshvGicV2M::state
  - MshvGicV2M::as_any_concrete_mut
  - MshvGicV2M::set_state
  - MshvGicV2M::save_data_tables
  source_file: /src/cloud-hypervisor/hypervisor/src/mshv/aarch64/gic/mod.rs
- function_names:
  - MshvEmulatorContext::translate
  - MshvEmulatorContext::r
  - MshvEmulatorContext::read_memory_flags
  - MshvEmulatorContext::w
  - MshvEmulatorContext::read_memory
  - MshvEmulatorContext::write_memory
  - MshvEmulatorContext::cpu_state
  - MshvEmulatorContext::set_cpu_state
  - MshvEmulatorContext::fetch
  source_file: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/emulator.rs
- function_names:
  - VcpuMshvState::fmt
  - MshvSegmentRegister::from
  - SegmentRegister::from
  - TableRegister::from
  - DescriptorTable::from
  - MshvSpecialRegisters::from
  - SpecialRegisters::from
  - hv_cpuid_entry::from
  - CpuIdEntry::from
  - FpuState::from
  - FloatingPointUnit::from
  - MshvLapicState::from
  - LapicState::from
  - MsrEntry::from
  - msr_entry::from
  source_file: /src/cloud-hypervisor/hypervisor/src/mshv/x86_64/mod.rs
- function_names:
  - BitposIterator::next
  - BitposIteratorExt::bit_positions
  - unit_tests::bitpos_check
  - unit_tests::bitpos_iterator_works
  source_file: /src/cloud-hypervisor/vm-migration/src/bitpos_iterator.rs
- function_names:
  - Request::new
  - Request::start
  - Request::state
  - Request::config
  - Request::memory
  - Request::memory_fd
  - Request::complete
  - Request::abandon
  - Request::command
  - Request::length
  - Request::read_from
  - Request::write_to
  - Response::new
  - Response::ok
  - Response::error
  - Response::status
  - Response::length
  - Response::read_from
  - Response::ok_or_abandon
  - Response::write_to
  - MemoryRangeTable::dirty_ranges_iter
  - MemoryRangeTable::from_dirty_bitmap
  - MemoryRangeTable::regions
  - MemoryRangeTable::push
  - MemoryRangeTable::read_from
  - MemoryRangeTable::length
  - MemoryRangeTable::write_to
  - MemoryRangeTable::is_empty
  - MemoryRangeTable::extend
  - MemoryRangeTable::new_from_tables
  - unit_tests::test_memory_range_table_from_dirty_ranges_iter
  source_file: /src/cloud-hypervisor/vm-migration/src/protocol.rs
- function_names:
  - Pausable::pause
  - Pausable::resume
  - SnapshotData::to_state
  - SnapshotData::new_from_state
  - Snapshot::from_data
  - Snapshot::new_from_state
  - Snapshot::add_snapshot
  - Snapshot::to_state
  - snapshot_from_id
  - state_from_id
  - Snapshottable::id
  - Snapshottable::snapshot
  - Transportable::send
  - Transportable::recv
  - Migratable::start_dirty_log
  - Migratable::stop_dirty_log
  - Migratable::dirty_log
  - Migratable::start_migration
  - Migratable::complete_migration
  source_file: /src/cloud-hypervisor/vm-migration/src/lib.rs
- function_names:
  - Monitor::new
  - Monitor::subscribe
  - set_file_nonblocking
  - set_monitor
  - PropertiesFormatter::fmt
  - event_log
  - event
  source_file: /src/cloud-hypervisor/event_monitor/src/lib.rs
- function_names:
  - GuestNetworkConfig::wait_vm_boot
  - UbuntuDiskConfig::new
  - WindowsDiskConfig::new
  - WindowsDiskConfig::drop
  - workspace_root
  - UbuntuDiskConfig::prepare_cloudinit
  - UbuntuDiskConfig::prepare_files
  - UbuntuDiskConfig::disk
  - WindowsDiskConfig::prepare_cloudinit
  - WindowsDiskConfig::prepare_files
  - WindowsDiskConfig::disk
  - rate_limited_copy
  - handle_child_output
  - scp_to_guest_with_auth
  - scp_to_guest
  - ssh_command_ip_with_auth
  - ssh_command_ip
  - exec_host_command_with_retries
  - exec_host_command_status
  - exec_host_command_output
  - check_lines_count
  - check_matched_lines_count
  - kill_child
  - next_guest_id
  - Guest::new_from_ip_range
  - Guest::new
  - Guest::default_net_string
  - Guest::default_net_string_w_iommu
  - Guest::default_net_string_w_mtu
  - Guest::ssh_command
  - Guest::ssh_command_l1
  - Guest::ssh_command_l2_1
  - Guest::ssh_command_l2_2
  - Guest::ssh_command_l2_3
  - Guest::api_create_body
  - Guest::get_cpu_count
  - Guest::get_total_memory
  - Guest::get_total_memory_l2
  - Guest::get_numa_node_memory
  - Guest::wait_vm_boot
  - Guest::check_numa_node_cpus
  - Guest::check_numa_node_distances
  - Guest::check_numa_common
  - Guest::get_pci_bridge_class
  - Guest::get_pci_device_ids
  - Guest::get_pci_vendor_ids
  - Guest::does_device_vendor_pair_match
  - Guest::check_vsock
  - Guest::check_nvidia_gpu
  - Guest::reboot_linux
  - Guest::enable_memory_hotplug
  - Guest::check_devices_common
  - VerbosityLevel::fmt
  - GuestCommand::new
  - GuestCommand::new_with_binary_path
  - GuestCommand::verbosity
  - GuestCommand::capture_output
  - GuestCommand::set_print_cmd
  - GuestCommand::spawn
  - GuestCommand::args
  - GuestCommand::default_disks
  - GuestCommand::default_net
  - clh_command
  - parse_iperf3_output
  - FioOps::fmt
  - parse_fio_output
  - parse_fio_output_iops
  - child_wait_timeout
  - measure_virtio_net_throughput
  - parse_ethr_latency_output
  - measure_virtio_net_latency
  - extract_bar_address
  source_file: /src/cloud-hypervisor/test_infra/src/lib.rs
- function_names: []
  source_file: /src/cloud-hypervisor/vm-device/src/lib.rs
- function_names:
  - BusDevice::read
  - BusDevice::write
  - BusDeviceSync::read
  - BusDeviceSync::write
  - Mutex::read
  - Mutex::write
  - io::Error::from
  - BusRange::overlaps
  - BusRange::eq
  - BusRange::cmp
  - BusRange::partial_cmp
  - Bus::new
  - Bus::first_before
  - Bus::resolve
  - Bus::insert
  - Bus::remove
  - Bus::remove_by_device
  - Bus::update_range
  - Bus::read
  - Bus::write
  - unit_tests::bus_insert
  - unit_tests::bus_read_write
  - unit_tests::bus_read_write_values
  - unit_tests::busrange_cmp
  - unit_tests::bus_range_overlap
  source_file: /src/cloud-hypervisor/vm-device/src/bus.rs
- function_names:
  - InterruptSourceGroup::enable
  - InterruptSourceGroup::disable
  source_file: /src/cloud-hypervisor/vm-device/src/interrupt/mod.rs
- function_names: []
  source_file: /src/cloud-hypervisor/vm-device/src/dma_mapping/mod.rs
- function_names:
  - AddressAllocator::new
  - AddressAllocator::align_address
  - AddressAllocator::available_range
  - AddressAllocator::first_available_range
  - AddressAllocator::allocate
  - AddressAllocator::free
  - AddressAllocator::base
  - AddressAllocator::end
  - unit_tests::new_fails_overflow
  - unit_tests::new_fails_size_zero
  - unit_tests::allocate_fails_alignment_zero
  - unit_tests::allocate_fails_alignment_non_power_of_two
  - unit_tests::allocate_fails_not_enough_space
  - unit_tests::allocate_alignment
  - unit_tests::allocate_address
  - unit_tests::allocate_address_alignment
  - unit_tests::allocate_address_not_enough_space
  - unit_tests::allocate_address_free_and_realloc
  - unit_tests::allocate_address_free_fail_and_realloc
  - unit_tests::allocate_address_fail_free_and_realloc
  source_file: /src/cloud-hypervisor/vm-allocator/src/address.rs
- function_names:
  - MemorySlotAllocator::next_memory_slot
  - MemorySlotAllocator::free_memory_slot
  - MemorySlotAllocator::new
  source_file: /src/cloud-hypervisor/vm-allocator/src/memory_slot.rs
- function_names: []
  source_file: /src/cloud-hypervisor/vm-allocator/src/lib.rs
- function_names:
  - get_page_size
  - align_page_size_up
  - align_page_size_down
  - is_4k_aligned
  - is_4k_multiple
  - is_page_size_aligned
  source_file: /src/cloud-hypervisor/vm-allocator/src/page_size.rs
- function_names:
  - SystemAllocator::new
  - SystemAllocator::allocate_irq
  - SystemAllocator::allocate_gsi
  - SystemAllocator::allocate_io_addresses
  - SystemAllocator::allocate_platform_mmio_addresses
  - SystemAllocator::free_io_addresses
  - SystemAllocator::free_platform_mmio_addresses
  source_file: /src/cloud-hypervisor/vm-allocator/src/system.rs
- function_names:
  - GsiApic::new
  - GsiAllocator::new
  - GsiAllocator::new
  - GsiAllocator::allocate_gsi
  - GsiAllocator::allocate_irq
  - GsiAllocator::allocate_irq
  - GsiAllocator::default
  source_file: /src/cloud-hypervisor/vm-allocator/src/gsi.rs
- function_names:
  - std::io::Error::from
  - VhostUserNetThread::new
  - VhostUserNetThread::set_epoll_fd
  - VhostUserNetBackend::new
  - VhostUserNetBackend::num_queues
  - VhostUserNetBackend::max_queue_size
  - VhostUserNetBackend::features
  - VhostUserNetBackend::protocol_features
  - VhostUserNetBackend::set_event_idx
  - VhostUserNetBackend::handle_event
  - VhostUserNetBackend::exit_event
  - VhostUserNetBackend::queues_per_thread
  - VhostUserNetBackend::update_memory
  - VhostUserNetBackendConfig::parse
  - start_net_backend
  source_file: /src/cloud-hypervisor/vhost_user_net/src/lib.rs
- function_names:
  - main
  source_file: /src/cloud-hypervisor/vhost_user_net/src/main.rs
- function_names:
  - PvmemcontrolSubclass::get_register_value
  - PvmemcontrolTransport::ack
  - PvmemcontrolTransport::error
  - PvmemcontrolTransport::register_response
  - PvmemcontrolTransport::as_register
  - PvmemcontrolResp::fmt
  - GuestConnection::default
  - GuestConnection::new
  - GuestConnection::next
  - GuestConnection::try_from
  - PercpuInitState::new
  - PvmemcontrolDevice::new
  - PvmemcontrolDevice::register_percpu_buf
  - PvmemcontrolDevice::reset
  - PvmemcontrolDevice::error
  - PvmemcontrolDevice::ready
  - PvmemcontrolDevice::run_command
  - PvmemcontrolDevice::read_transport
  - PvmemcontrolDevice::write_transport
  - PvmemcontrolDevice::find_connection
  - PvmemcontrolBusDevice::operate_on_memory_range
  - PvmemcontrolBusDevice::madvise
  - PvmemcontrolBusDevice::mlock
  - PvmemcontrolBusDevice::munlock
  - PvmemcontrolBusDevice::mprotect
  - PvmemcontrolBusDevice::set_vma_anon_name
  - PvmemcontrolBusDevice::process_request
  - PvmemcontrolBusDevice::handle_request
  - PvmemcontrolBusDevice::handle_pvmemcontrol_request
  - PvmemcontrolBusDevice::handle_guest_write
  - PvmemcontrolBusDevice::handle_guest_read
  - PvmemcontrolDevice::make_device
  - PvmemcontrolPciDevice::write_config_register
  - PvmemcontrolPciDevice::read_config_register
  - PvmemcontrolPciDevice::as_any_mut
  - PvmemcontrolPciDevice::id
  - PvmemcontrolPciDevice::allocate_bars
  - PvmemcontrolPciDevice::free_bars
  - PvmemcontrolPciDevice::move_bar
  - PvmemcontrolPciDevice::pause
  - PvmemcontrolPciDevice::resume
  - PvmemcontrolPciDevice::id
  - PvmemcontrolPciDevice::snapshot
  - PvmemcontrolBusDevice::read
  - PvmemcontrolBusDevice::write
  source_file: /src/cloud-hypervisor/devices/src/pvmemcontrol.rs
- function_names:
  - vector
  - delivery_mode
  - destination_mode
  - remote_irr
  - trigger_mode
  - interrupt_mask
  - destination_field
  - set_delivery_status
  - set_remote_irr
  - decode_irq_from_selector
  - Ioapic::read
  - Ioapic::write
  - Ioapic::new
  - Ioapic::ioapic_write
  - Ioapic::ioapic_read
  - Ioapic::state
  - Ioapic::update_entry
  - Ioapic::end_of_interrupt
  - Ioapic::service_irq
  - Ioapic::notifier
  - Ioapic::id
  - Ioapic::snapshot
  source_file: /src/cloud-hypervisor/devices/src/ioapic.rs
- function_names:
  - Aia::new
  - Aia::restore_vaia
  - Aia::enable
  - Aia::create_default_config
  - Aia::get_vaia
  - Aia::service_irq
  - Aia::notifier
  source_file: /src/cloud-hypervisor/devices/src/aia.rs
- function_names:
  - IvshmemSubclass::get_register_value
  - IvshmemDevice::new
  - IvshmemDevice::set_region
  - IvshmemDevice::config_bar_addr
  - IvshmemDevice::data_bar_addr
  - IvshmemDevice::state
  - IvshmemDevice::read
  - IvshmemDevice::write
  - IvshmemDevice::allocate_bars
  - IvshmemDevice::free_bars
  - IvshmemDevice::write_config_register
  - IvshmemDevice::read_config_register
  - IvshmemDevice::read_bar
  - IvshmemDevice::write_bar
  - IvshmemDevice::move_bar
  - IvshmemDevice::as_any_mut
  - IvshmemDevice::id
  - IvshmemDevice::id
  - IvshmemDevice::snapshot
  source_file: /src/cloud-hypervisor/devices/src/ivshmem.rs
- function_names:
  - generate_read_fn
  - generate_write_fn
  source_file: /src/cloud-hypervisor/devices/src/lib.rs
- function_names: []
  source_file: /src/cloud-hypervisor/devices/src/interrupt_controller.rs
- function_names:
  - DebugConsole::new
  - DebugConsole::read
  - DebugConsole::write
  - DebugConsole::id
  - DebugConsole::snapshot
  source_file: /src/cloud-hypervisor/devices/src/debug_console.rs
- function_names:
  - PvPanicSubclass::get_register_value
  - PvPanicDevice::new
  - PvPanicDevice::event_to_string
  - PvPanicDevice::state
  - PvPanicDevice::config_bar_addr
  - PvPanicDevice::read
  - PvPanicDevice::write
  - PvPanicDevice::write_config_register
  - PvPanicDevice::read_config_register
  - PvPanicDevice::allocate_bars
  - PvPanicDevice::free_bars
  - PvPanicDevice::move_bar
  - PvPanicDevice::read_bar
  - PvPanicDevice::as_any_mut
  - PvPanicDevice::id
  - PvPanicDevice::id
  - PvPanicDevice::snapshot
  source_file: /src/cloud-hypervisor/devices/src/pvpanic.rs
- function_names:
  - Gic::new
  - Gic::restore_vgic
  - Gic::enable
  - Gic::create_default_config
  - Gic::get_vgic
  - Gic::set_gicr_typers
  - Gic::service_irq
  - Gic::notifier
  - Gic::id
  - Gic::snapshot
  - Gic::pause
  source_file: /src/cloud-hypervisor/devices/src/gic.rs
- function_names:
  - AcpiShutdownDevice::new
  - AcpiShutdownDevice::read
  - AcpiShutdownDevice::write
  - AcpiGedDevice::new
  - AcpiGedDevice::notify
  - AcpiGedDevice::irq
  - AcpiGedDevice::read
  - AcpiGedDevice::to_aml_bytes
  - AcpiPmTimerDevice::new
  - AcpiPmTimerDevice::default
  - AcpiPmTimerDevice::read
  source_file: /src/cloud-hypervisor/devices/src/acpi.rs
- function_names:
  - get_crb_loc_state_field
  - get_crb_loc_sts_field
  - get_crb_intf_id_field
  - get_crb_intf_id2_field
  - get_crb_ctrl_sts_field
  - get_field
  - set_reg_field
  - get_reg_field
  - locality_from_addr
  - Tpm::new
  - Tpm::get_active_locality
  - Tpm::request_completed
  - Tpm::reset
  - Tpm::read
  - Tpm::write
  - unit_tests::test_set_get_reg_field
  source_file: /src/cloud-hypervisor/devices/src/tpm.rs
- function_names:
  - I8042Device::new
  - I8042Device::read
  - I8042Device::write
  source_file: /src/cloud-hypervisor/devices/src/legacy/i8042.rs
- function_names:
  - FwCfgContentAccess::read
  - FwCfgContent::default
  - FwCfgContent::size
  - FwCfgContent::access
  - create_file_name
  - create_intra_pointer
  - create_acpi_table_checksum
  - AcpiTable::pointers
  - AcpiTable::checksums
  - AcpiTable::take
  - create_acpi_loader
  - FwCfg::new
  - FwCfg::populate_fw_cfg
  - FwCfg::add_e820
  - FwCfg::file_dir_mut
  - FwCfg::update_count
  - FwCfg::add_item
  - FwCfg::dma_read_content
  - FwCfg::dma_read
  - FwCfg::do_dma
  - FwCfg::add_kernel_data
  - FwCfg::add_kernel_cmdline
  - FwCfg::add_acpi
  - FwCfg::add_initramfs_data
  - FwCfg::read_content
  - FwCfg::read_data
  - FwCfg::read
  - FwCfg::write
  - unit_tests::test_signature
  - unit_tests::test_kernel_cmdline
  - unit_tests::test_initram_fs
  - unit_tests::test_dma
  source_file: /src/cloud-hypervisor/devices/src/legacy/fw_cfg.rs
- function_names:
  - Pl011::new
  - Pl011::set_out
  - Pl011::state
  - Pl011::queue_input_bytes
  - Pl011::flush_output
  - Pl011::pl011_get_baudrate
  - Pl011::pl011_trace_baudrate_change
  - Pl011::pl011_set_read_trigger
  - Pl011::handle_write
  - Pl011::handle_debug
  - Pl011::trigger_interrupt
  - Pl011::read
  - Pl011::write
  - Pl011::id
  - Pl011::snapshot
  - unit_tests::pl011_output
  - unit_tests::pl011_input
  source_file: /src/cloud-hypervisor/devices/src/legacy/uart_pl011.rs
- function_names:
  - Serial::new
  - Serial::new_out
  - Serial::new_sink
  - Serial::set_out
  - Serial::queue_input_bytes
  - Serial::flush_output
  - Serial::is_dlab_set
  - Serial::is_recv_intr_enabled
  - Serial::is_thr_intr_enabled
  - Serial::is_loop
  - Serial::add_intr_bit
  - Serial::del_intr_bit
  - Serial::thr_empty
  - Serial::recv_data
  - Serial::trigger_interrupt
  - Serial::iir_reset
  - Serial::handle_write
  - Serial::state
  - Serial::read
  - Serial::write
  - Serial::id
  - Serial::snapshot
  - unit_tests::serial_output
  - unit_tests::serial_input
  - unit_tests::serial_thr
  - unit_tests::serial_dlab
  - unit_tests::serial_modem
  - unit_tests::serial_scratch
  source_file: /src/cloud-hypervisor/devices/src/legacy/serial.rs
- function_names:
  - Gpio::new
  - Gpio::state
  - Gpio::pl061_internal_update
  - Gpio::handle_write
  - Gpio::trigger_key
  - Gpio::trigger_gpio_interrupt
  - Gpio::read
  - Gpio::write
  - Gpio::id
  - Gpio::snapshot
  - unit_tests::test_gpio_read_write_and_event
  source_file: /src/cloud-hypervisor/devices/src/legacy/gpio_pl061.rs
- function_names: []
  source_file: /src/cloud-hypervisor/devices/src/legacy/mod.rs
- function_names:
  - FwDebugDevice::new
  - FwDebugDevice::read
  - FwDebugDevice::write
  source_file: /src/cloud-hypervisor/devices/src/legacy/fwdebug.rs
- function_names:
  - DebugIoPortRange::from_u8
  - DebugIoPortRange::fmt
  - DebugPort::new
  - DebugPort::read
  - DebugPort::write
  source_file: /src/cloud-hypervisor/devices/src/legacy/debug_port.rs
- function_names:
  - libc::clockid_t::from
  - get_time
  - seconds_to_nanoseconds
  - Rtc::new
  - Rtc::get_time
  - Rtc::handle_write
  - Rtc::default
  - Rtc::read
  - Rtc::write
  - unit_tests::test_get_time
  - unit_tests::test_local_time_display
  - unit_tests::test_seconds_to_nanoseconds
  - unit_tests::test_rtc_read_write_and_event
  source_file: /src/cloud-hypervisor/devices/src/legacy/rtc_pl031.rs
- function_names:
  - Cmos::new
  - Cmos::write
  - C::m::o::s::::::::r::e::a::d::to_bcd
  - Cmos::read
  source_file: /src/cloud-hypervisor/devices/src/legacy/cmos.rs
- function_names:
  - init_tests
  - cleanup_tests
  - performance_test_new_guest
  - direct_kernel_boot_path
  - remote_command
  - performance_net_throughput
  - performance_net_latency
  - parse_boot_time_output
  - measure_boot_time
  - performance_boot_time
  - performance_boot_time_pmem
  - performance_block_io
  - parse_event_file
  - parse_restore_time_output
  - measure_restore_time
  - performance_restore_latency
  - unit_tests::test_parse_iperf3_output
  - unit_tests::test_parse_ethr_latency_output
  - unit_tests::test_parse_boot_time_output
  - unit_tests::test_parse_restore_time_output
  - unit_tests::test_parse_fio_output
  source_file: /src/cloud-hypervisor/performance-metrics/src/performance_tests.rs
- function_names:
  - MetricsReport::default
  - ImageFormat::from_str
  - ImageFormat::fmt
  - PerformanceTestOverrides::fmt
  - PerformanceTestControl::fmt
  - PerformanceTestControl::default
  - PerformanceTest::run
  - PerformanceTest::calc_timeout
  - mean
  - std_deviation
  - adjuster::identity
  - adjuster::s_to_ms
  - adjuster::bps_to_gbps
  - adjuster::Bps_to_MiBps
  - run_test_with_timeout
  - date
  - main
  source_file: /src/cloud-hypervisor/performance-metrics/src/main.rs
- function_names: []
  source_file: /src/cloud-hypervisor/vm-virtio/src/queue.rs
- function_names:
  - VirtioDeviceType::from
  - VirtioDeviceType::fmt
  - GuestAddress::translate_gva
  - GuestAddress::translate_gpa
  - u64::translate_gva
  - u64::translate_gpa
  - clone_queue
  source_file: /src/cloud-hypervisor/vm-virtio/src/lib.rs
- function_names:
  - RawFileDiskAio::new
  - RawFileDiskAio::logical_size
  - RawFileDiskAio::physical_size
  - RawFileDiskAio::new_async_io
  - RawFileDiskAio::topology
  - RawFileDiskAio::fd
  - RawFileAsyncAio::new
  - RawFileAsyncAio::notifier
  - RawFileAsyncAio::read_vectored
  - RawFileAsyncAio::write_vectored
  - RawFileAsyncAio::fsync
  - RawFileAsyncAio::next_completed_request
  source_file: /src/cloud-hypervisor/block/src/raw_async_aio.rs
- function_names:
  - VhdFooter::new
  - VhdFooter::cookie
  - VhdFooter::features
  - VhdFooter::file_format_version
  - VhdFooter::data_offset
  - VhdFooter::time_stamp
  - VhdFooter::creator_application
  - VhdFooter::creator_version
  - VhdFooter::creator_host_os
  - VhdFooter::original_size
  - VhdFooter::current_size
  - VhdFooter::disk_geometry
  - VhdFooter::disk_type
  - VhdFooter::checksum
  - VhdFooter::unique_id
  - VhdFooter::saved_state
  - is_fixed_vhd
  - unit_tests::valid_fixed_vhd_footer
  - unit_tests::valid_dynamic_vhd_footer
  - unit_tests::with_file
  - unit_tests::test_check_vhd_footer
  - unit_tests::test_is_fixed_vhd
  - unit_tests::test_is_not_fixed_vhd
  source_file: /src/cloud-hypervisor/block/src/vhd.rs
- function_names:
  - RawFileDisk::new
  - RawFileDisk::logical_size
  - RawFileDisk::physical_size
  - RawFileDisk::new_async_io
  - RawFileDisk::topology
  - RawFileDisk::resize
  - RawFileDisk::fd
  - RawFileAsync::new
  - RawFileAsync::notifier
  - RawFileAsync::read_vectored
  - RawFileAsync::write_vectored
  - RawFileAsync::fsync
  - RawFileAsync::next_completed_request
  - RawFileAsync::batch_requests_enabled
  - RawFileAsync::submit_batch_requests
  source_file: /src/cloud-hypervisor/block/src/raw_async.rs
- function_names:
  - FixedVhd::new
  - FixedVhd::as_raw_fd
  - FixedVhd::read
  - FixedVhd::write
  - FixedVhd::flush
  - FixedVhd::seek
  - FixedVhd::logical_size
  - FixedVhd::physical_size
  - FixedVhd::clone
  source_file: /src/cloud-hypervisor/block/src/fixed_vhd.rs
- function_names:
  - build_device_id
  - build_serial
  - ExecuteError::status
  - request_type
  - sector
  - Request::parse
  - Request::execute
  - Request::execute_async
  - Request::complete_async
  - Request::set_writeback
  - block_aio_is_supported
  - block_io_uring_is_supported
  - AsyncAdaptor::read_vectored_sync
  - AsyncAdaptor::write_vectored_sync
  - AsyncAdaptor::fsync_sync
  - read_aligned_block_size
  - detect_image_type
  - DiskTopology::default
  - DiskTopology::is_block_device
  - DiskTopology::query_block_size
  - DiskTopology::probe
  source_file: /src/cloud-hypervisor/block/src/lib.rs
- function_names:
  - FixedVhdDiskSync::new
  - FixedVhdDiskSync::logical_size
  - FixedVhdDiskSync::physical_size
  - FixedVhdDiskSync::new_async_io
  - FixedVhdDiskSync::fd
  - FixedVhdSync::new
  - FixedVhdSync::notifier
  - FixedVhdSync::read_vectored
  - FixedVhdSync::write_vectored
  - FixedVhdSync::fsync
  - FixedVhdSync::next_completed_request
  source_file: /src/cloud-hypervisor/block/src/fixed_vhd_sync.rs
- function_names:
  - fcntl
  - LockType::to_libc_val
  - LockState::new
  - LockGranularity::l_start
  - LockGranularity::l_len
  - get_flock
  - try_acquire_lock
  - clear_lock
  - get_lock_state
  source_file: /src/cloud-hypervisor/block/src/fcntl.rs
- function_names:
  - QcowDiskSync::new
  - QcowDiskSync::logical_size
  - QcowDiskSync::physical_size
  - QcowDiskSync::new_async_io
  - QcowDiskSync::fd
  - QcowSync::new
  - QcowSync::notifier
  - QcowSync::read_vectored
  - QcowSync::write_vectored
  - QcowSync::fsync
  - QcowSync::next_completed_request
  source_file: /src/cloud-hypervisor/block/src/qcow_sync.rs
- function_names:
  - BorrowedDiskFd::new
  - BorrowedDiskFd::as_raw_fd
  - DiskFile::topology
  - DiskFile::resize
  - AsyncIo::batch_requests_enabled
  - AsyncIo::submit_batch_requests
  source_file: /src/cloud-hypervisor/block/src/async_io.rs
- function_names:
  - FixedVhdDiskAsync::new
  - FixedVhdDiskAsync::logical_size
  - FixedVhdDiskAsync::physical_size
  - FixedVhdDiskAsync::new_async_io
  - FixedVhdDiskAsync::fd
  - FixedVhdAsync::new
  - FixedVhdAsync::notifier
  - FixedVhdAsync::read_vectored
  - FixedVhdAsync::write_vectored
  - FixedVhdAsync::fsync
  - FixedVhdAsync::next_completed_request
  - FixedVhdAsync::batch_requests_enabled
  - FixedVhdAsync::submit_batch_requests
  source_file: /src/cloud-hypervisor/block/src/fixed_vhd_async.rs
- function_names:
  - VhdxDiskSync::new
  - VhdxDiskSync::logical_size
  - VhdxDiskSync::physical_size
  - VhdxDiskSync::new_async_io
  - VhdxDiskSync::fd
  - VhdxSync::new
  - VhdxSync::notifier
  - VhdxSync::read_vectored
  - VhdxSync::write_vectored
  - VhdxSync::fsync
  - VhdxSync::next_completed_request
  source_file: /src/cloud-hypervisor/block/src/vhdx_sync.rs
- function_names:
  - RawFileDiskSync::new
  - RawFileDiskSync::logical_size
  - RawFileDiskSync::physical_size
  - RawFileDiskSync::new_async_io
  - RawFileDiskSync::topology
  - RawFileDiskSync::fd
  - RawFileSync::new
  - RawFileSync::notifier
  - RawFileSync::read_vectored
  - RawFileSync::write_vectored
  - RawFileSync::fsync
  - RawFileSync::next_completed_request
  source_file: /src/cloud-hypervisor/block/src/raw_sync.rs
- function_names:
  - FileTypeIdentifier::new
  - Header::new
  - Header::write_to_buffer
  - Header::update_header
  - RegionTableHeader::new
  - RegionInfo::new
  - RegionTableEntry::new
  - VhdxHeader::new
  - VhdxHeader::current_header
  - VhdxHeader::update_header
  - VhdxHeader::update_headers
  - VhdxHeader::update
  - VhdxHeader::region_entry_count
  - calculate_checksum
  source_file: /src/cloud-hypervisor/block/src/vhdx/vhdx_header.rs
- function_names:
  - BatEntry::collect_bat_entries
  - BatEntry::calculate_entries
  - BatEntry::write_bat_entries
  source_file: /src/cloud-hypervisor/block/src/vhdx/vhdx_bat.rs
- function_names:
  - Vhdx::new
  - Vhdx::virtual_disk_size
  - Vhdx::read
  - Vhdx::flush
  - Vhdx::write
  - Vhdx::seek
  - Vhdx::logical_size
  - Vhdx::physical_size
  - Vhdx::clone
  - Vhdx::as_raw_fd
  - uuid_from_guid
  source_file: /src/cloud-hypervisor/block/src/vhdx/mod.rs
- function_names:
  - align
  - Sector::new
  - read
  - write
  source_file: /src/cloud-hypervisor/block/src/vhdx/vhdx_io.rs
- function_names:
  - DiskSpec::new
  - DiskSpec::sectors_per_block
  - DiskSpec::chunk_ratio
  - MetadataTableHeader::new
  - MetadataTableEntry::new
  source_file: /src/cloud-hypervisor/block/src/vhdx/vhdx_metadata.rs
- function_names:
  - QcowRawFile::from
  - QcowRawFile::read_pointer_table
  - QcowRawFile::read_pointer_cluster
  - QcowRawFile::setup_pointer_table_writer
  - QcowRawFile::write_pointer_table
  - QcowRawFile::write_pointer_table_direct
  - QcowRawFile::read_refcount_block
  - QcowRawFile::write_refcount_block
  - QcowRawFile::add_cluster_end
  - QcowRawFile::file_mut
  - QcowRawFile::cluster_size
  - QcowRawFile::cluster_offset
  - QcowRawFile::cluster_address
  - QcowRawFile::zero_cluster
  - QcowRawFile::write_cluster
  - QcowRawFile::physical_size
  - QcowRawFile::clone
  - QcowRawFile::as_raw_fd
  source_file: /src/cloud-hypervisor/block/src/qcow/qcow_raw_file.rs
- function_names:
  - VecCache::new
  - VecCache::from_vec
  - VecCache::get
  - VecCache::get_values
  - VecCache::mark_clean
  - VecCache::len
  - VecCache::dirty
  - VecCache::index
  - VecCache::index_mut
  - VecCache::deref
  - CacheMap::new
  - CacheMap::contains_key
  - CacheMap::get
  - CacheMap::get_mut
  - CacheMap::iter_mut
  - CacheMap::insert
  - unit_tests::evicts_when_full
  source_file: /src/cloud-hypervisor/block/src/qcow/vec_cache.rs
- function_names:
  - ZlibDecoder::decode
  - ZstdDecoder::decode
  - tests::test_zlib_decode
  - tests::test_zstd_decode
  source_file: /src/cloud-hypervisor/block/src/qcow/decoder.rs
- function_names:
  - l2_entry_is_empty
  - l2_entry_is_compressed
  - l2_entry_compressed_cluster_layout
  - l2_entry_std_cluster_addr
  - l2_entry_make_std
  - l1_entry_make
  - Q::c::o::w::H::e::a::d::e::r::::::::n::e::w::read_u32_from_file
  - Q::c::o::w::H::e::a::d::e::r::::::::n::e::w::read_u64_from_file
  - QcowHeader::new
  - QcowHeader::get_decoder
  - QcowHeader::create_for_size_and_path
  - Q::c::o::w::H::e::a::d::e::r::::::::w::r::i::t::e::_::t::o::write_u32_to_file
  - Q::c::o::w::H::e::a::d::e::r::::::::w::r::i::t::e::_::t::o::write_u64_to_file
  - QcowHeader::write_to
  - max_refcount_clusters
  - QcowFile::from
  - QcowFile::from_with_nesting_depth
  - QcowFile::new
  - QcowFile::new_from_backing
  - QcowFile::new_from_header
  - QcowFile::set_backing_file
  - QcowFile::header
  - QcowFile::l1_table
  - QcowFile::l2_table
  - QcowFile::ref_table
  - QcowFile::refcount_block
  - QcowFile::first_zero_refcount
  - QcowFile::find_avail_clusters
  - Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::add_ref
  - Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_header_refcount
  - Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_l1_refcounts
  - Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_data_refcounts
  - Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::set_refcount_table_refcounts
  - Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::alloc_refblocks
  - Q::c::o::w::F::i::l::e::::::::r::e::b::u::i::l::d::_::r::e::f::c::o::u::n::t::s::write_refblocks
  - QcowFile::rebuild_refcounts
  - QcowFile::limit_range_file
  - QcowFile::limit_range_cluster
  - QcowFile::virtual_size
  - QcowFile::l1_address_offset
  - QcowFile::l1_table_index
  - QcowFile::l2_table_index
  - QcowFile::decompress_l2_cluster
  - QcowFile::file_read
  - QcowFile::file_offset_write
  - QcowFile::update_cluster_addr
  - QcowFile::get_new_cluster
  - QcowFile::append_data_cluster
  - QcowFile::cluster_allocated
  - QcowFile::find_allocated_cluster
  - QcowFile::deallocate_cluster
  - QcowFile::deallocate_bytes
  - QcowFile::read_l2_cluster
  - QcowFile::cache_l2_cluster
  - QcowFile::set_cluster_refcount_track_freed
  - QcowFile::set_cluster_refcount
  - QcowFile::sync_caches
  - QcowFile::as_raw_fd
  - QcowFile::drop
  - QcowFile::read
  - QcowFile::seek
  - QcowFile::write
  - QcowFile::flush
  - QcowFile::fsync
  - QcowFile::set_len
  - QcowFile::punch_hole
  - QcowFile::write_zeroes_at
  - QcowFile::seek_hole
  - QcowFile::seek_data
  - QcowFile::logical_size
  - QcowFile::physical_size
  - offset_is_cluster_boundary
  - div_round_up_u64
  - div_round_up_u32
  - convert_copy
  - convert_reader_writer
  - convert_reader
  - convert
  - detect_image_type
  - unit_tests::valid_header_v3
  - unit_tests::valid_header_v2
  - unit_tests::test_huge_header
  - unit_tests::basic_file
  - unit_tests::with_basic_file
  - unit_tests::with_default_file
  - unit_tests::write_read_start_backing_v2
  - unit_tests::write_read_start_backing_v3
  - unit_tests::default_header_v2
  - unit_tests::default_header_v3
  - unit_tests::header_read
  - unit_tests::header_v2_with_backing
  - unit_tests::header_v3_with_backing
  - unit_tests::no_backing_file
  - unit_tests::disable_backing_file
  - unit_tests::new_self_referential_qcow
  - unit_tests::max_nesting_backing
  - unit_tests::invalid_magic
  - unit_tests::invalid_refcount_order
  - unit_tests::invalid_cluster_bits
  - unit_tests::test_header_huge_file
  - unit_tests::test_header_crazy_file_size_rejected
  - unit_tests::test_huge_l1_table
  - unit_tests::test_header_1_tb_file_min_cluster
  - unit_tests::test_header_1_tb_file
  - unit_tests::test_header_huge_num_refcounts
  - unit_tests::test_header_huge_refcount_offset
  - unit_tests::write_read_start
  - unit_tests::write_read_start_backing_overlap
  - unit_tests::offset_write_read
  - unit_tests::write_zeroes_read
  - unit_tests::write_zeroes_full_cluster
  - unit_tests::test_header
  - unit_tests::read_small_buffer
  - unit_tests::replay_ext4
  - unit_tests::combo_write_read
  - unit_tests::combo_write_read_direct
  - unit_tests::combo_write_read_common
  - unit_tests::seek_cur
  - unit_tests::seek_data
  - unit_tests::seek_data_direct
  - unit_tests::seek_data_common
  - unit_tests::seek_hole
  - unit_tests::seek_hole_direct
  - unit_tests::seek_hole_common
  - unit_tests::rebuild_refcounts
  source_file: /src/cloud-hypervisor/block/src/qcow/mod.rs
- function_names:
  - is_valid_alignment
  - RawFile::new
  - RawFile::round_up
  - RawFile::round_down
  - RawFile::is_aligned
  - RawFile::set_len
  - RawFile::metadata
  - RawFile::try_clone
  - RawFile::sync_all
  - RawFile::sync_data
  - RawFile::is_direct
  - RawFile::read
  - RawFile::write
  - RawFile::flush
  - RawFile::seek
  - RawFile::write_zeroes_at
  - RawFile::punch_hole
  - RawFile::seek_hole
  - RawFile::seek_data
  - RawFile::logical_size
  - RawFile::physical_size
  - RawFile::clone
  - RawFile::as_raw_fd
  source_file: /src/cloud-hypervisor/block/src/qcow/raw_file.rs
- function_names:
  - RefCount::new
  - RefCount::refcounts_per_block
  - RefCount::max_valid_cluster_offset
  - RefCount::set_cluster_refcount
  - RefCount::flush_blocks
  - RefCount::flush_table
  - RefCount::get_cluster_refcount
  - RefCount::ref_table
  - RefCount::refcount_block
  - RefCount::get_refcount_index
  source_file: /src/cloud-hypervisor/block/src/qcow/refcount.rs
- function_names:
  - split_commas
  - OptionParser::new
  - OptionParser::parse
  - OptionParser::add
  - OptionParser::add_valueless
  - OptionParser::get
  - OptionParser::is_set
  - OptionParser::convert
  - Toggle::from_str
  - ByteSized::from_str
  - IntegerList::from_str
  - u64::parse_value
  - Vec::parse_value
  - Vec::parse_value
  - Vec::parse_value
  - Tuple::from_str
  - dequote
  - T::from_str
  - StringList::from_str
  - unit_tests::test_option_parser
  - unit_tests::parse_bytes
  - unit_tests::check_dequote
  source_file: /src/cloud-hypervisor/option_parser/src/lib.rs
- function_names:
  - is_selftest
  - Emulator::new
  - Emulator::prepare_data_fd
  - Emulator::probe_caps
  - Emulator::check_caps
  - Emulator::run_control_cmd
  - Emulator::get_established_flag
  - Emulator::deliver_request
  - Emulator::cancel_cmd
  - Emulator::set_buffer_size
  - Emulator::startup_tpm
  - Emulator::stop_tpm
  - Emulator::get_buffer_size
  source_file: /src/cloud-hypervisor/tpm/src/emulator.rs
- function_names:
  - SocketDev::default
  - SocketDev::new
  - SocketDev::init
  - SocketDev::connect
  - SocketDev::set_datafd
  - SocketDev::set_msgfd
  - SocketDev::send_full
  - SocketDev::write
  - SocketDev::read
  source_file: /src/cloud-hypervisor/tpm/src/socket.rs
- function_names:
  - PtmResult::ptm_to_request
  - PtmResult::get_member_type
  - PtmResult::update_ptm_with_response
  - PtmResult::set_member_type
  - PtmResult::set_result_code
  - PtmResult::get_result_code
  - PtmCap::ptm_to_request
  - PtmCap::get_member_type
  - PtmCap::update_ptm_with_response
  - PtmCap::set_member_type
  - PtmCap::set_result_code
  - PtmCap::get_result_code
  - PtmEst::new
  - PtmEst::default
  - PtmEst::ptm_to_request
  - PtmEst::get_member_type
  - PtmEst::update_ptm_with_response
  - PtmEst::set_member_type
  - PtmEst::set_result_code
  - PtmEst::get_result_code
  - PtmInit::default
  - PtmInit::new
  - PtmInit::ptm_to_request
  - PtmInit::get_member_type
  - PtmInit::update_ptm_with_response
  - PtmInit::set_member_type
  - PtmInit::set_result_code
  - PtmInit::get_result_code
  - PtmSetBufferSize::new
  - PtmSetBufferSize::get_bufsize
  - PtmSetBufferSize::ptm_to_request
  - PtmSetBufferSize::get_member_type
  - PtmSetBufferSize::update_ptm_with_response
  - PtmSetBufferSize::set_member_type
  - PtmSetBufferSize::set_result_code
  - PtmSetBufferSize::get_result_code
  - unit_tests::test_ptmresult
  - unit_tests::test_ptmcap
  - unit_tests::test_ptmest
  - unit_tests::test_ptminit
  - unit_tests::test_ptmsetbuffersize
  source_file: /src/cloud-hypervisor/tpm/src/lib.rs
- function_names:
  - fuzz_target
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/linux_loader_cmdline.rs
- function_names:
  - fuzz_target
  - memfd_create
  - NoopVirtioInterrupt::trigger
  - setup_virt_queue
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/block.rs
- function_names:
  - fuzz_target
  - memfd_create
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/vhdx.rs
- function_names:
  - align
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - setup_virt_queues
  - memfd_create
  - create_pipe
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/console.rs
- function_names:
  - fuzz_target
  - memfd_create
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/linux_loader.rs
- function_names:
  - align
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - setup_virt_queue
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/rng.rs
- function_names:
  - fuzz_target
  - memfd_create_with_size
  - NoopVirtioInterrupt::trigger
  - create_dummy_pmem
  - setup_virt_queue
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/pmem.rs
- function_names:
  - fuzz_target
  - TestInterrupt::trigger
  - TestInterrupt::update
  - TestInterrupt::set_gsi
  - TestInterrupt::notifier
  - TestInterrupt::new
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/serial.rs
- function_names:
  - align
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - setup_virt_queue
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/vsock.rs
- function_names:
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - align
  - setup_virt_queues
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/balloon.rs
- function_names:
  - align
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - setup_virt_queues
  - create_socketpair
  - EpollEvent::from
  - tap_backend_stub
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/net.rs
- function_names:
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - setup_virt_queue
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/watchdog.rs
- function_names:
  - fuzz_target
  - generate_request
  - StubApiRequestHandler::vm_create
  - StubApiRequestHandler::vm_boot
  - StubApiRequestHandler::vm_pause
  - StubApiRequestHandler::vm_resume
  - StubApiRequestHandler::vm_snapshot
  - StubApiRequestHandler::vm_restore
  - StubApiRequestHandler::vm_resize_disk
  - StubApiRequestHandler::vm_coredump
  - StubApiRequestHandler::vm_shutdown
  - StubApiRequestHandler::vm_reboot
  - StubApiRequestHandler::vm_info
  - StubApiRequestHandler::vmm_ping
  - StubApiRequestHandler::vm_delete
  - StubApiRequestHandler::vmm_shutdown
  - StubApiRequestHandler::vm_resize
  - StubApiRequestHandler::vm_resize_zone
  - StubApiRequestHandler::vm_add_device
  - StubApiRequestHandler::vm_add_user_device
  - StubApiRequestHandler::vm_remove_device
  - StubApiRequestHandler::vm_add_disk
  - StubApiRequestHandler::vm_add_fs
  - StubApiRequestHandler::vm_add_pmem
  - StubApiRequestHandler::vm_add_net
  - StubApiRequestHandler::vm_add_vdpa
  - StubApiRequestHandler::vm_add_vsock
  - StubApiRequestHandler::vm_counters
  - StubApiRequestHandler::vm_power_button
  - StubApiRequestHandler::vm_receive_migration
  - StubApiRequestHandler::vm_send_migration
  - StubApiRequestHandler::vm_nmi
  - http_receiver_stub
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/http_api.rs
- function_names:
  - fuzz_target
  - read_u64
  - memfd_create
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/qcow.rs
- function_names:
  - align
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - setup_virt_queue
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/iommu.rs
- function_names:
  - align
  - fuzz_target
  - NoopVirtioInterrupt::trigger
  - create_dummy_virtio_mem
  - setup_virt_queue
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/mem.rs
- function_names:
  - fuzz_target
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/cmos.rs
- function_names:
  - EmulatorContext::read_memory
  - EmulatorContext::write_memory
  - EmulatorContext::cpu_state
  - EmulatorContext::set_cpu_state
  - EmulatorContext::fetch
  - fuzz_target
  - generate_segment_register
  - generate_descriptor_table
  - generate_context_and_instruction
  source_file: /src/cloud-hypervisor/fuzz/fuzz_targets/x86emul.rs
- function_names: []
  source_file: /src/cloud-hypervisor/net_gen/src/sockios.rs
- function_names:
  - __IncompleteArrayField::new
  - __IncompleteArrayField::as_ptr
  - __IncompleteArrayField::as_mut_ptr
  - __IncompleteArrayField::as_slice
  - __IncompleteArrayField::as_mut_slice
  - __IncompleteArrayField::fmt
  - ifreq::default
  source_file: /src/cloud-hypervisor/net_gen/src/iff.rs
- function_names:
  - __IncompleteArrayField::new
  - __IncompleteArrayField::as_ptr
  - __IncompleteArrayField::as_mut_ptr
  - __IncompleteArrayField::as_slice
  - __IncompleteArrayField::as_mut_slice
  - __IncompleteArrayField::fmt
  source_file: /src/cloud-hypervisor/net_gen/src/if_tun.rs
- function_names: []
  source_file: /src/cloud-hypervisor/net_gen/src/lib.rs
- function_names: []
  source_file: /src/cloud-hypervisor/net_gen/src/ipv6.rs
- function_names: []
  source_file: /src/cloud-hypervisor/net_gen/src/inn.rs
- function_names:
  - StatusCode::from_raw
  - StatusCode::parse
  - StatusCode::is_server_error
  - get_header
  - get_status_code
  - parse_http_response
  - simple_api_full_command_with_fds_and_response
  - simple_api_full_command_with_fds
  - simple_api_full_command
  - simple_api_full_command_and_response
  - simple_api_command_with_fds
  - simple_api_command
  source_file: /src/cloud-hypervisor/api_client/src/lib.rs
- function_names:
  - SerialBuffer::new
  - SerialBuffer::fill_buffer
  - SerialBuffer::write
  - SerialBuffer::flush
  source_file: /src/cloud-hypervisor/serial_buffer/src/lib.rs
- function_names:
  - main
  source_file: /src/cloud-hypervisor/vmm/build.rs
- function_names:
  - add_to_config
  - VmParams::from_arg_matches
  - HotplugMethod::from_str
  - CpuTopology::from_str
  - CpusConfig::parse
  - PciSegmentConfig::parse
  - PciSegmentConfig::validate
  - PlatformConfig::parse
  - PlatformConfig::validate
  - MemoryConfig::parse
  - MemoryConfig::total_size
  - RateLimiterGroupConfig::parse
  - RateLimiterGroupConfig::validate
  - DiskConfig::parse
  - DiskConfig::validate
  - VhostMode::from_str
  - NetConfig::parse
  - NetConfig::validate
  - RngConfig::parse
  - BalloonConfig::parse
  - FsConfig::parse
  - FsConfig::validate
  - FwCfgConfig::parse
  - FwCfgConfig::validate
  - FwCfgItem::parse
  - PmemConfig::parse
  - PmemConfig::validate
  - ConsoleConfig::parse
  - DebugConsoleConfig::parse
  - DeviceConfig::parse
  - DeviceConfig::validate
  - UserDeviceConfig::parse
  - UserDeviceConfig::validate
  - VdpaConfig::parse
  - VdpaConfig::validate
  - VsockConfig::parse
  - VsockConfig::validate
  - NumaConfig::parse
  - deserialize_restorednetconfig_fds
  - RestoreConfig::parse
  - RestoreConfig::validate
  - TpmConfig::parse
  - LandlockConfig::parse
  - LandlockConfig::validate
  - IvshmemConfig::parse
  - IvshmemConfig::validate
  - VmConfig::validate_identifier
  - VmConfig::backed_by_shared_memory
  - VmConfig::validate
  - VmConfig::parse
  - VmConfig::remove_device
  - VmConfig::add_preserved_fds
  - VmConfig::is_tdx_enabled
  - VmConfig::is_sev_snp_enabled
  - VmConfig::clone
  - VmConfig::drop
  - unit_tests::test_cpu_parsing
  - unit_tests::test_mem_parsing
  - unit_tests::test_rate_limit_group_parsing
  - unit_tests::test_pci_segment_parsing
  - unit_tests::disk_fixture
  - unit_tests::test_disk_parsing
  - unit_tests::net_fixture
  - unit_tests::test_net_parsing
  - unit_tests::test_parse_rng
  - unit_tests::fs_fixture
  - unit_tests::test_parse_fs
  - unit_tests::pmem_fixture
  - unit_tests::test_pmem_parsing
  - unit_tests::test_console_parsing
  - unit_tests::device_fixture
  - unit_tests::test_device_parsing
  - unit_tests::vdpa_fixture
  - unit_tests::test_vdpa_parsing
  - unit_tests::test_tpm_parsing
  - unit_tests::test_vsock_parsing
  - unit_tests::test_restore_parsing
  - unit_tests::test_restore_config_validation
  - unit_tests::platform_fixture
  - unit_tests::numa_fixture
  - unit_tests::test_config_validation
  - unit_tests::test_landlock_parsing
  - unit_tests::test_fw_cfg_config_item_list_parsing
  source_file: /src/cloud-hypervisor/vmm/src/config.rs
- function_names:
  - GuestDebuggable::coredump
  - CpuSegment::new
  - CpuSegment::new_from_table
  - Elf64Writable::write_header
  - Elf64Writable::write_note
  - Elf64Writable::write_load
  - Elf64Writable::write_loads
  - Elf64Writable::elf_note_size
  - Elf64Writable::get_note_size
  - CpuElf64Writable::cpu_write_elf64_note
  - CpuElf64Writable::cpu_write_vmm_note
  source_file: /src/cloud-hypervisor/vmm/src/coredump.rs
- function_names:
  - PciSegment::new
  - PciSegment::new_default_segment
  - PciSegment::new_default_segment
  - PciSegment::next_device_bdf
  - PciSegment::reserve_legacy_interrupts_for_pci_devices
  - PciDevSlot::to_aml_bytes
  - PciDevSlotNotify::to_aml_bytes
  - PciDevSlotMethods::to_aml_bytes
  - PciDsmMethod::to_aml_bytes
  - PciSegment::to_aml_bytes
  source_file: /src/cloud-hypervisor/vmm/src/pci_segment.rs
- function_names:
  - and
  - or
  - create_vmm_ioctl_seccomp_rule_common_mshv
  - create_vmm_ioctl_seccomp_rule_common_kvm
  - create_vmm_ioctl_seccomp_rule_hypervisor
  - create_vmm_ioctl_seccomp_rule_common
  - create_vmm_ioctl_seccomp_rule_kvm
  - create_vmm_ioctl_seccomp_rule_kvm
  - create_vmm_ioctl_seccomp_rule_kvm
  - create_vmm_ioctl_seccomp_rule_mshv
  - create_vmm_ioctl_seccomp_rule
  - create_api_ioctl_seccomp_rule
  - create_signal_handler_ioctl_seccomp_rule
  - signal_handler_thread_rules
  - create_pty_foreground_ioctl_seccomp_rule
  - pty_foreground_thread_rules
  - vmm_thread_rules
  - create_vcpu_ioctl_seccomp_rule_kvm
  - create_vcpu_ioctl_seccomp_rule_mshv
  - create_vcpu_ioctl_seccomp_rule_hypervisor
  - create_vcpu_ioctl_seccomp_rule
  - vcpu_thread_rules
  - http_api_thread_rules
  - dbus_api_thread_rules
  - event_monitor_thread_rules
  - get_seccomp_rules
  - get_seccomp_filter
  source_file: /src/cloud-hypervisor/vmm/src/seccomp_filters.rs
- function_names:
  - VirtioMemZone::region
  - VirtioMemZone::set_virtio_device
  - VirtioMemZone::hotplugged_size
  - VirtioMemZone::hugepages
  - VirtioMemZone::blocks_state
  - VirtioMemZone::plugged_ranges
  - MemoryZone::regions
  - MemoryZone::virtio_mem_zone
  - MemoryZone::virtio_mem_zone_mut
  - mmio_address_space_size
  - statfs_get_bsize
  - memory_zone_get_align_size
  - align_down
  - is_aligned
  - MemoryManager::read
  - MemoryManager::write
  - MemoryManager::create_memory_regions_from_zones
  - MemoryManager::restore_memory_regions_and_zones
  - MemoryManager::fill_saved_regions
  - MemoryManager::validate_memory_config
  - MemoryManager::allocate_address_space
  - MemoryManager::add_uefi_flash
  - MemoryManager::new
  - MemoryManager::new_from_snapshot
  - MemoryManager::memfd_create
  - MemoryManager::mbind
  - MemoryManager::create_anonymous_file
  - MemoryManager::open_backing_file
  - MemoryManager::create_ram_region_raw
  - MemoryManager::create_ram_region
  - MemoryManager::get_prefault_align_size
  - MemoryManager::get_prefault_num_threads
  - MemoryManager::add_region
  - MemoryManager::start_addr
  - MemoryManager::add_ram_region
  - MemoryManager::hotplug_ram_region
  - MemoryManager::guest_memory
  - MemoryManager::boot_guest_memory
  - MemoryManager::allocator
  - MemoryManager::start_of_device_area
  - MemoryManager::end_of_device_area
  - MemoryManager::memory_slot_allocator
  - MemoryManager::allocate_memory_slot
  - MemoryManager::create_userspace_mapping
  - MemoryManager::remove_userspace_mapping
  - MemoryManager::virtio_mem_resize
  - MemoryManager::resize
  - MemoryManager::resize_zone
  - MemoryManager::is_hardlink
  - MemoryManager::memory_zones
  - MemoryManager::memory_zones_mut
  - MemoryManager::memory_range_table
  - MemoryManager::snapshot_data
  - MemoryManager::memory_slot_fds
  - MemoryManager::acpi_address
  - MemoryManager::num_guest_ram_mappings
  - MemoryManager::uefi_flash
  - MemoryManager::coredump_memory_regions
  - MemoryManager::coredump_iterate_save_mem
  - MemoryManager::receive_memory_regions
  - MemoryNotify::to_aml_bytes
  - MemorySlot::to_aml_bytes
  - MemorySlots::to_aml_bytes
  - MemoryMethods::to_aml_bytes
  - MemoryManager::to_aml_bytes
  - MemoryManager::id
  - MemoryManager::snapshot
  - MemoryManager::send
  - MemoryManager::start_dirty_log
  - MemoryManager::stop_dirty_log
  - MemoryManager::dirty_log
  source_file: /src/cloud-hypervisor/vmm/src/memory_manager.rs
- function_names:
  - DeviceNode::new
  - device_node
  - DeviceTree::new
  - DeviceTree::contains_key
  - DeviceTree::get
  - DeviceTree::get_mut
  - DeviceTree::insert
  - DeviceTree::remove
  - DeviceTree::iter
  - DeviceTree::breadth_first_traversal
  - DeviceTree::pci_devices
  - DeviceTree::remove_node_by_pci_bdf
  - BftIter::new
  - BftIter::next
  - BftIter::next_back
  - unit_tests::test_device_tree
  source_file: /src/cloud-hypervisor/vmm/src/device_tree.rs
- function_names:
  - default_cpuconfig_max_phys_bits
  - CpusConfig::default
  - default_platformconfig_num_pci_segments
  - default_platformconfig_iommu_address_width_bits
  - default_pci_segment_aperture_weight
  - MemoryZoneConfig::apply_landlock
  - default_memoryconfig_thp
  - default_cpusconfig_nested
  - MemoryConfig::default
  - DiskConfig::apply_landlock
  - default_diskconfig_num_queues
  - default_diskconfig_queue_size
  - default_netconfig_true
  - default_netconfig_tap
  - default_netconfig_mac
  - default_netconfig_num_queues
  - default_netconfig_queue_size
  - deserialize_netconfig_fds
  - RngConfig::default
  - RngConfig::apply_landlock
  - default_fsconfig_num_queues
  - default_fsconfig_queue_size
  - FsConfig::apply_landlock
  - PmemConfig::apply_landlock
  - default_consoleconfig_file
  - ConsoleConfig::apply_landlock
  - DebugConsoleConfig::default
  - DebugConsoleConfig::apply_landlock
  - DeviceConfig::apply_landlock
  - UserDeviceConfig::apply_landlock
  - default_vdpaconfig_num_queues
  - VdpaConfig::apply_landlock
  - VsockConfig::apply_landlock
  - IvshmemConfig::default
  - FwCfgConfig::default
  - FwCfgItemList::from_str
  - PayloadConfig::validate
  - PayloadConfig::apply_landlock
  - default_serial
  - default_console
  - TpmConfig::apply_landlock
  - LandlockConfig::apply_landlock
  - VmConfig::apply_landlock
  - VmConfig::max_apic_id
  source_file: /src/cloud-hypervisor/vmm/src/vm_config.rs
- function_names:
  - EpollDispatch::from
  - SerialManager::new
  - SerialManager::trigger_pty_flush
  - SerialManager::start_thread
  - SerialManager::drop
  source_file: /src/cloud-hypervisor/vmm/src/serial_manager.rs
- function_names:
  - with_tx
  - notify
  - sigwinch_handler
  - unblock_all_signals
  - close_fds_fallback
  - close_unused_fds
  - set_foreground_process_group
  - sigwinch_listener_main
  - clone_clear_sighand
  - start_sigwinch_listener
  - listen_for_sigwinch_on_tty
  source_file: /src/cloud-hypervisor/vmm/src/sigwinch_listener.rs
- function_names:
  - extract_bits_64
  - extract_bits_64_without_offset
  - round_up
  - Vcpu::new
  - Vcpu::configure
  - Vcpu::get_mpidr
  - Vcpu::get_saved_state
  - Vcpu::init
  - Vcpu::run
  - Vcpu::set_sev_control_register
  - Vcpu::set_gic_redistributor_addr
  - Vcpu::id
  - Vcpu::snapshot
  - CpuManager::read
  - CpuManager::write
  - VcpuState::active
  - VcpuState::signal_thread
  - VcpuState::wait_until_signal_acknowledged
  - VcpuState::join_thread
  - VcpuState::unpark_thread
  - CpuManager::new
  - CpuManager::populate_cpuid
  - CpuManager::create_vcpu
  - CpuManager::configure_vcpu
  - CpuManager::create_vcpus
  - CpuManager::init_pmu
  - CpuManager::vcpus
  - CpuManager::start_vcpu
  - CpuManager::activate_vcpus
  - CpuManager::mark_vcpus_for_removal
  - CpuManager::check_pending_removed_vcpu
  - CpuManager::remove_vcpu
  - CpuManager::create_boot_vcpus
  - CpuManager::start_boot_vcpus
  - CpuManager::set_processors_per_socket_property
  - CpuManager::start_restored_vcpus
  - CpuManager::resize
  - CpuManager::signal_vcpus
  - CpuManager::shutdown
  - CpuManager::initialize_tdx
  - CpuManager::boot_vcpus
  - CpuManager::max_vcpus
  - CpuManager::common_cpuid
  - CpuManager::present_vcpus
  - CpuManager::get_mpidrs
  - CpuManager::get_saved_states
  - CpuManager::get_vcpu_topology
  - CpuManager::create_madt
  - CpuManager::create_pptt
  - CpuManager::create_standard_regs
  - CpuManager::get_regs
  - CpuManager::set_regs
  - CpuManager::get_sregs
  - CpuManager::set_sregs
  - CpuManager::translate_gva
  - CpuManager::translate_gva
  - CpuManager::set_acpi_address
  - CpuManager::set_interrupt_controller
  - CpuManager::vcpus_kill_signalled
  - CpuManager::get_cpuid_leaf
  - CpuManager::sev_snp_enabled
  - CpuManager::nmi
  - Cpu::generate_mat
  - Cpu::to_aml_bytes
  - CpuNotify::to_aml_bytes
  - CpuMethods::to_aml_bytes
  - CpuManager::to_aml_bytes
  - CpuManager::pause
  - CpuManager::resume
  - CpuManager::id
  - CpuManager::snapshot
  - CpuManager::set_guest_debug
  - CpuManager::debug_pause
  - CpuManager::debug_resume
  - CpuManager::read_regs
  - CpuManager::read_regs
  - CpuManager::write_regs
  - CpuManager::write_regs
  - CpuManager::read_mem
  - CpuManager::write_mem
  - CpuManager::active_vcpus
  - CpuManager::cpu_write_elf64_note
  - CpuManager::cpu_write_vmm_note
  - unit_tests::test_setlint
  - unit_tests::test_setup_fpu
  - unit_tests::test_setup_msrs
  - unit_tests::test_setup_regs_for_pvh
  - unit_tests::test_setup_regs_for_bzimage
  - unit_tests::test_setup_regs
  - unit_tests::test_read_mpidr
  - unit_tests::test_is_system_register
  - u::n::i::t::_::t::e::s::t::s::::::::t::e::s::t::_::s::a::v::e::_::r::e::s::t::o::r::e::_::c::o::r::e::_::r::e::g::s::hypervisor_cpu_error_to_raw_os_error
  - unit_tests::test_save_restore_core_regs
  - unit_tests::test_get_set_mpstate
  source_file: /src/cloud-hypervisor/vmm/src/cpu.rs
- function_names:
  - clone3
  source_file: /src/cloud-hypervisor/vmm/src/clone3.rs
- function_names:
  - VmState::valid_transition
  - VmOpsHandler::guest_mem_write
  - VmOpsHandler::guest_mem_read
  - VmOpsHandler::mmio_read
  - VmOpsHandler::mmio_write
  - VmOpsHandler::pio_read
  - VmOpsHandler::pio_write
  - physical_bits
  - Vm::new_from_memory_manager
  - Vm::populate_fw_cfg
  - Vm::create_numa_nodes
  - Vm::new
  - Vm::create_hypervisor_vm
  - Vm::load_initramfs
  - Vm::generate_cmdline
  - Vm::load_firmware
  - Vm::load_kernel
  - Vm::load_igvm
  - Vm::load_kernel
  - Vm::load_payload
  - Vm::load_payload
  - Vm::load_payload_async
  - Vm::configure_system
  - Vm::configure_system
  - Vm::configure_system
  - Vm::console_resize_pipe
  - Vm::shutdown
  - Vm::resize
  - Vm::resize_disk
  - Vm::resize_zone
  - Vm::add_device
  - Vm::add_user_device
  - Vm::remove_device
  - Vm::add_disk
  - Vm::add_fs
  - Vm::add_pmem
  - Vm::add_net
  - Vm::add_vdpa
  - Vm::add_vsock
  - Vm::counters
  - Vm::extract_tdvf_sections
  - Vm::hob_memory_resources
  - Vm::populate_tdx_sections
  - Vm::init_tdx_memory
  - Vm::create_acpi_tables
  - Vm::entry_point
  - Vm::boot
  - Vm::restore
  - Vm::get_config
  - Vm::get_state
  - Vm::balloon_size
  - Vm::send_memory_fds
  - Vm::send_memory_regions
  - Vm::memory_range_table
  - Vm::device_tree
  - Vm::release_disk_locks
  - Vm::activate_virtio_devices
  - Vm::power_button
  - Vm::power_button
  - Vm::power_button
  - Vm::memory_manager_data
  - Vm::debug_request
  - Vm::get_dump_state
  - Vm::coredump_get_mem_offset
  - Vm::nmi
  - Vm::pause
  - Vm::resume
  - Vm::id
  - Vm::snapshot
  - Vm::send
  - Vm::start_dirty_log
  - Vm::stop_dirty_log
  - Vm::dirty_log
  - Vm::start_migration
  - Vm::complete_migration
  - Vm::set_guest_debug
  - Vm::debug_pause
  - Vm::debug_resume
  - Vm::read_regs
  - Vm::write_regs
  - Vm::read_mem
  - Vm::write_mem
  - Vm::active_vcpus
  - Vm::coredump
  - unit_tests::test_vm_state_transitions
  - unit_tests::test_vm_created_transitions
  - unit_tests::test_vm_running_transitions
  - unit_tests::test_vm_shutdown_transitions
  - unit_tests::test_vm_paused_transitions
  - unit_tests::test_hob_memory_resources
  - unit_tests::test_vm
  - unit_tests::test_create_fdt_with_devices
  - test_vm
  source_file: /src/cloud-hypervisor/vmm/src/vm.rs
- function_names:
  - GdbStub::new
  - GdbStub::vm_request
  - GdbStub::base_ops
  - GdbStub::support_breakpoints
  - GdbStub::guard_rail_implicit_sw_breakpoints
  - tid_to_cpuid
  - cpuid_to_tid
  - get_raw_tid
  - GdbStub::read_registers
  - GdbStub::write_registers
  - GdbStub::read_addrs
  - GdbStub::write_addrs
  - GdbStub::list_active_threads
  - GdbStub::support_resume
  - GdbStub::resume
  - GdbStub::clear_resume_actions
  - GdbStub::set_resume_action_continue
  - GdbStub::support_single_step
  - GdbStub::set_resume_action_step
  - GdbStub::support_hw_breakpoint
  - GdbStub::add_hw_breakpoint
  - GdbStub::remove_hw_breakpoint
  - GdbEventLoop::wait_for_stop_reason
  - GdbEventLoop::on_interrupt
  - gdb_thread
  source_file: /src/cloud-hypervisor/vmm/src/gdb.rs
- function_names:
  - url_to_path
  - url_to_file
  - recv_vm_config
  - recv_vm_state
  - get_vm_snapshot
  source_file: /src/cloud-hypervisor/vmm/src/migration.rs
- function_names:
  - hypervisor::HypervisorVmConfig::from
  - EpollDispatch::from
  - SocketStream::read
  - SocketStream::write
  - SocketStream::flush
  - SocketStream::as_raw_fd
  - SocketStream::read_volatile
  - SocketStream::read_exact_volatile
  - SocketStream::write_volatile
  - SocketStream::write_all_volatile
  - EpollContext::new
  - EpollContext::add_event
  - EpollContext::add_event_custom
  - EpollContext::as_raw_fd
  - PciDeviceInfo::serialize
  - feature_list
  - start_event_monitor_thread
  - start_vmm_thread
  - VmmVersionInfo::new
  - ReceiveMigrationState::finished
  - Vmm::signal_handler
  - Vmm::setup_signal_handler
  - Vmm::new
  - Vmm::vm_receive_memory_fd
  - Vmm::vm_receive_migration_step
  - Vmm::vm_receive_config
  - Vmm::vm_receive_state
  - Vmm::vm_receive_memory
  - Vmm::socket_url_to_path
  - Vmm::send_migration_socket
  - Vmm::receive_migration_socket
  - Vmm::vm_maybe_send_dirty_pages
  - Vmm::send_migration
  - Vmm::vm_check_cpuid_compatibility
  - Vmm::vm_restore
  - Vmm::control_loop
  - apply_landlock
  - Vmm::vm_create
  - Vmm::vm_boot
  - Vmm::vm_pause
  - Vmm::vm_resume
  - Vmm::vm_snapshot
  - Vmm::vm_restore
  - Vmm::vm_coredump
  - Vmm::vm_shutdown
  - Vmm::vm_reboot
  - Vmm::vm_info
  - Vmm::vmm_ping
  - Vmm::vm_delete
  - Vmm::vmm_shutdown
  - Vmm::vm_resize
  - Vmm::vm_resize_disk
  - Vmm::vm_resize_zone
  - Vmm::vm_add_device
  - Vmm::vm_add_user_device
  - Vmm::vm_remove_device
  - Vmm::vm_add_disk
  - Vmm::vm_add_fs
  - Vmm::vm_add_pmem
  - Vmm::vm_add_net
  - Vmm::vm_add_vdpa
  - Vmm::vm_add_vsock
  - Vmm::vm_counters
  - Vmm::vm_power_button
  - Vmm::vm_nmi
  - Vmm::vm_receive_migration
  - Vmm::vm_send_migration
  - unit_tests::create_dummy_vmm
  - unit_tests::create_dummy_vm_config
  - unit_tests::test_vmm_vm_create
  - unit_tests::test_vmm_vm_cold_add_device
  - unit_tests::test_vmm_vm_cold_add_user_device
  - unit_tests::test_vmm_vm_cold_add_disk
  - unit_tests::test_vmm_vm_cold_add_fs
  - unit_tests::test_vmm_vm_cold_add_pmem
  - unit_tests::test_vmm_vm_cold_add_net
  - unit_tests::test_vmm_vm_cold_add_vdpa
  - unit_tests::test_vmm_vm_cold_add_vsock
  source_file: /src/cloud-hypervisor/vmm/src/lib.rs
- function_names:
  - Console::need_resize
  - Console::update_console_size
  - AddressManager::move_bar
  - PtyPair::clone
  - SevSnpPageAccessProxy::fmt
  - SevSnpPageAccessProxy::new
  - SevSnpPageAccessProxy::translate_gpa
  - SevSnpPageAccessProxy::translate_gva
  - create_mmio_allocators
  - DeviceManager::new
  - DeviceManager::console_resize_pipe
  - DeviceManager::create_interrupt_controller
  - DeviceManager::create_devices
  - DeviceManager::create_fw_cfg_device
  - DeviceManager::state
  - DeviceManager::get_msi_iova_space
  - DeviceManager::get_device_info
  - DeviceManager::add_pci_devices
  - DeviceManager::add_interrupt_controller
  - DeviceManager::get_interrupt_controller
  - DeviceManager::add_interrupt_controller
  - DeviceManager::get_interrupt_controller
  - DeviceManager::add_interrupt_controller
  - DeviceManager::add_acpi_devices
  - DeviceManager::add_legacy_devices
  - DeviceManager::add_legacy_devices
  - DeviceManager::add_debug_console_device
  - DeviceManager::add_serial_device
  - DeviceManager::add_serial_device
  - DeviceManager::add_serial_device
  - DeviceManager::add_virtio_console_device
  - DeviceManager::add_console_devices
  - DeviceManager::add_tpm_device
  - DeviceManager::try_lock_disks
  - DeviceManager::release_disk_locks
  - DeviceManager::make_virtio_devices
  - DeviceManager::aio_is_supported
  - DeviceManager::io_uring_is_supported
  - DeviceManager::make_virtio_block_device
  - DeviceManager::make_virtio_block_devices
  - DeviceManager::make_virtio_net_device
  - DeviceManager::make_virtio_net_devices
  - DeviceManager::make_virtio_rng_devices
  - DeviceManager::make_virtio_fs_device
  - DeviceManager::make_virtio_fs_devices
  - DeviceManager::make_virtio_pmem_device
  - DeviceManager::make_virtio_pmem_devices
  - DeviceManager::make_virtio_vsock_device
  - DeviceManager::make_virtio_vsock_devices
  - DeviceManager::make_virtio_mem_devices
  - DeviceManager::make_pvmemcontrol_device
  - DeviceManager::make_virtio_balloon_devices
  - DeviceManager::make_virtio_watchdog_devices
  - DeviceManager::make_vdpa_device
  - DeviceManager::make_vdpa_devices
  - DeviceManager::next_device_name
  - DeviceManager::add_passthrough_device
  - DeviceManager::create_vfio_container
  - DeviceManager::add_vfio_device
  - DeviceManager::add_pci_device
  - DeviceManager::add_vfio_devices
  - DeviceManager::add_vfio_user_device
  - DeviceManager::add_user_devices
  - DeviceManager::add_virtio_pci_device
  - DeviceManager::add_pvpanic_device
  - DeviceManager::add_ivshmem_device
  - DeviceManager::pci_resources
  - DeviceManager::io_bus
  - DeviceManager::mmio_bus
  - DeviceManager::fw_cfg
  - DeviceManager::allocator
  - DeviceManager::interrupt_controller
  - DeviceManager::pci_segments
  - DeviceManager::cmdline_additions
  - DeviceManager::update_memory
  - DeviceManager::activate_virtio_devices
  - DeviceManager::notify_hotplug
  - DeviceManager::add_device
  - DeviceManager::add_user_device
  - DeviceManager::remove_device
  - DeviceManager::eject_device
  - DeviceManager::hotplug_virtio_pci_device
  - DeviceManager::is_iommu_segment
  - DeviceManager::add_disk
  - DeviceManager::add_fs
  - DeviceManager::add_pmem
  - DeviceManager::add_net
  - DeviceManager::add_vdpa
  - DeviceManager::add_vsock
  - DeviceManager::counters
  - DeviceManager::resize_balloon
  - DeviceManager::balloon_size
  - DeviceManager::resize_disk
  - DeviceManager::device_tree
  - DeviceManager::notify_power_button
  - DeviceManager::notify_power_button
  - DeviceManager::iommu_attached_devices
  - DeviceManager::validate_identifier
  - DeviceManager::acpi_platform_addresses
  - DeviceManager::cleanup_vfio_container
  - IvshmemHandler::map_ram_region
  - IvshmemHandler::unmap_ram_region
  - numa_node_id_from_memory_zone_id
  - numa_node_id_from_pci_segment_id
  - TpmDevice::to_aml_bytes
  - DeviceManager::to_aml_bytes
  - DeviceManager::pause
  - DeviceManager::resume
  - DeviceManager::id
  - DeviceManager::snapshot
  - DeviceManager::start_dirty_log
  - DeviceManager::stop_dirty_log
  - DeviceManager::dirty_log
  - DeviceManager::start_migration
  - DeviceManager::complete_migration
  - DeviceManager::read
  - DeviceManager::write
  - DeviceManager::drop
  - unit_tests::test_create_mmio_allocators
  source_file: /src/cloud-hypervisor/vmm/src/device_manager.rs
- function_names:
  - InterruptRoute::new
  - InterruptRoute::enable
  - InterruptRoute::disable
  - InterruptRoute::trigger
  - InterruptRoute::notifier
  - MsiInterruptGroup::set_gsi_routes
  - MsiInterruptGroup::new
  - MsiInterruptGroup::enable
  - MsiInterruptGroup::disable
  - MsiInterruptGroup::trigger
  - MsiInterruptGroup::notifier
  - MsiInterruptGroup::update
  - MsiInterruptGroup::set_gsi
  - LegacyUserspaceInterruptGroup::new
  - LegacyUserspaceInterruptGroup::trigger
  - LegacyUserspaceInterruptGroup::update
  - LegacyUserspaceInterruptGroup::set_gsi
  - LegacyUserspaceInterruptGroup::notifier
  - LegacyUserspaceInterruptManager::new
  - MsiInterruptManager::new
  - LegacyUserspaceInterruptManager::create_group
  - LegacyUserspaceInterruptManager::destroy_group
  - MsiInterruptManager::create_group
  - MsiInterruptManager::destroy_group
  source_file: /src/cloud-hypervisor/vmm/src/interrupt.rs
- function_names:
  - LandlockAccess::try_from
  - Landlock::new
  - Landlock::add_rule
  - Landlock::add_rule_with_access
  - Landlock::restrict_self
  - test_try_from_access
  source_file: /src/cloud-hypervisor/vmm/src/landlock.rs
- function_names:
  - MemoryAffinity::from_region
  - MemoryAffinity::from_range
  - create_dsdt_table
  - create_facp_table
  - create_mcfg_table
  - create_tpm2_table
  - create_srat_table
  - create_slit_table
  - create_gtdt_table
  - create_spcr_table
  - create_dbg2_table
  - create_iort_table
  - create_viot_table
  - create_acpi_tables_internal
  - create_acpi_tables_for_fw_cfg
  - create_acpi_tables
  - create_acpi_tables_tdx
  source_file: /src/cloud-hypervisor/vmm/src/acpi.rs
- function_names:
  - modify_mode
  - set_raw_mode
  - create_pty
  - dup_stdout
  - pre_create_console_devices
  source_file: /src/cloud-hypervisor/vmm/src/console_devices.rs
- function_names:
  - IgvmLoadedInfo::default
  source_file: /src/cloud-hypervisor/vmm/src/igvm/mod.rs
- function_names:
  - igvm_memmap_from_ram_range
  - generate_memory_map
  - import_parameter
  - load_igvm
  source_file: /src/cloud-hypervisor/vmm/src/igvm/igvm_loader.rs
- function_names:
  - Loader::new
  - Loader::accept_new_range
  - Loader::import_pages
  - Loader::verify_startup_memory_available
  source_file: /src/cloud-hypervisor/vmm/src/igvm/loader.rs
- function_names:
  - get_response
  - get_response_body
  - VmAddDevice::request
  - VmAddDevice::send
  - AddDisk::request
  - AddDisk::send
  - VmAddFs::request
  - VmAddFs::send
  - VmAddPmem::request
  - VmAddPmem::send
  - VmAddNet::request
  - VmAddNet::send
  - VmAddVdpa::request
  - VmAddVdpa::send
  - VmAddVsock::request
  - VmAddVsock::send
  - VmAddUserDevice::request
  - VmAddUserDevice::send
  - VmBoot::request
  - VmBoot::send
  - VmCoredump::request
  - VmCoredump::send
  - VmCounters::request
  - VmCounters::send
  - VmCreate::request
  - VmCreate::send
  - VmDelete::request
  - VmDelete::send
  - VmInfo::request
  - VmInfo::send
  - VmPause::request
  - VmPause::send
  - VmPowerButton::request
  - VmPowerButton::send
  - VmReboot::request
  - VmReboot::send
  - VmReceiveMigration::request
  - VmReceiveMigration::send
  - VmRemoveDevice::request
  - VmRemoveDevice::send
  - VmResize::request
  - VmResize::send
  - VmResizeDisk::request
  - VmResizeDisk::send
  - VmResizeZone::request
  - VmResizeZone::send
  - VmRestore::request
  - VmRestore::send
  - VmResume::request
  - VmResume::send
  - VmSendMigration::request
  - VmSendMigration::send
  - VmShutdown::request
  - VmShutdown::send
  - VmSnapshot::request
  - VmSnapshot::send
  - VmmPing::request
  - VmmPing::send
  - VmmShutdown::request
  - VmmShutdown::send
  - VmNmi::request
  - VmNmi::send
  source_file: /src/cloud-hypervisor/vmm/src/api/mod.rs
- function_names:
  - fds_helper::NetConfig::id
  - fds_helper::NetConfig::fds_from_http_body
  - fds_helper::NetConfig::set_fds
  - fds_helper::RestoredNetConfig::id
  - fds_helper::RestoredNetConfig::fds_from_http_body
  - fds_helper::RestoredNetConfig::set_fds
  - fds_helper::RestoredNetConfig::expected_num_fds
  - fds_helper::attach_fds_to_cfg_inner
  - fds_helper::attach_fds_to_cfgs
  - fds_helper::attach_fds_to_cfg
  - VmCreate::handle_request
  - GetHandler::handle_request
  - PutHandler::handle_request
  - vm_action_get_handler
  - vm_action_put_handler
  - vm_action_put_handler_body
  - VmAddNet::handle_request
  - VmResize::handle_request
  - VmRestore::handle_request
  - VmActionHandler::new
  - VmActionHandler::put_handler
  - VmActionHandler::get_handler
  - VmInfo::handle_request
  - VmmPing::handle_request
  - VmmShutdown::handle_request
  - external_fds_tests::test_fds_provided_via_http_api_are_reset
  - external_fds_tests::test_new_device_cfg_takes_all_fds
  - external_fds_tests::test_restore_cfgs_take_only_their_fds
  source_file: /src/cloud-hypervisor/vmm/src/api/http/http_endpoint.rs
- function_names:
  - error_response
  - EndpointHandler::handle_request
  - EndpointHandler::put_handler
  - EndpointHandler::get_handler
  - endpoint
  - handle_http_request
  - start_http_thread
  - start_http_path_thread
  - start_http_fd_thread
  - http_api_graceful_shutdown
  source_file: /src/cloud-hypervisor/vmm/src/api/http/mod.rs
- function_names:
  - api_error
  - dbus_api_graceful_shutdown
  - DBusApi::new
  - DBusApi::clone_api_sender
  - DBusApi::clone_api_notifier
  - DBusApi::vm_action
  - DBusApi::vmm_ping
  - DBusApi::vmm_shutdown
  - DBusApi::vm_add_device
  - DBusApi::vm_add_disk
  - DBusApi::vm_add_fs
  - DBusApi::vm_add_net
  - DBusApi::vm_add_pmem
  - DBusApi::vm_add_user_device
  - DBusApi::vm_add_vdpa
  - DBusApi::vm_add_vsock
  - DBusApi::vm_boot
  - DBusApi::vm_coredump
  - DBusApi::vm_counters
  - DBusApi::vm_create
  - DBusApi::vm_delete
  - DBusApi::vm_info
  - DBusApi::vm_pause
  - DBusApi::vm_power_button
  - DBusApi::vm_reboot
  - DBusApi::vm_remove_device
  - DBusApi::vm_resize
  - DBusApi::vm_resize_zone
  - DBusApi::vm_restore
  - DBusApi::vm_receive_migration
  - DBusApi::vm_send_migration
  - DBusApi::vm_resume
  - DBusApi::vm_shutdown
  - DBusApi::vm_snapshot
  - start_dbus_thread
  source_file: /src/cloud-hypervisor/vmm/src/api/dbus/mod.rs
- function_names:
  - PciVfioUserSubclass::get_register_value
  - VfioUserPciDevice::new
  - VfioUserPciDevice::map_mmio_regions
  - VfioUserPciDevice::unmap_mmio_regions
  - VfioUserPciDevice::dma_map
  - VfioUserPciDevice::dma_unmap
  - VfioUserPciDevice::read
  - VfioUserPciDevice::write
  - VfioUserClientWrapper::region_read
  - VfioUserClientWrapper::region_write
  - VfioUserClientWrapper::get_irq_info
  - VfioUserClientWrapper::enable_irq
  - VfioUserClientWrapper::disable_irq
  - VfioUserClientWrapper::unmask_irq
  - VfioUserPciDevice::allocate_bars
  - VfioUserPciDevice::free_bars
  - VfioUserPciDevice::as_any_mut
  - VfioUserPciDevice::write_config_register
  - VfioUserPciDevice::read_config_register
  - VfioUserPciDevice::read_bar
  - VfioUserPciDevice::write_bar
  - VfioUserPciDevice::move_bar
  - VfioUserPciDevice::id
  - VfioUserPciDevice::drop
  - VfioUserPciDevice::id
  - VfioUserPciDevice::snapshot
  - VfioUserDmaMapping::new
  - VfioUserDmaMapping::map
  - VfioUserDmaMapping::unmap
  source_file: /src/cloud-hypervisor/pci/src/vfio_user.rs
- function_names:
  - PciVfioSubclass::get_register_value
  - VfioMsi::update
  - VfioMsix::update
  - VfioMsix::table_accessed
  - Interrupt::update_msi
  - Interrupt::update_msix
  - Interrupt::accessed
  - Interrupt::msix_table_accessed
  - Interrupt::msix_write_table
  - Interrupt::msix_read_table
  - Interrupt::intx_in_use
  - Vec::check_range
  - Vec::find_user_address
  - Vfio::read_config_byte
  - Vfio::read_config_word
  - Vfio::read_config_dword
  - Vfio::write_config_dword
  - Vfio::read_config
  - Vfio::write_config
  - Vfio::enable_msi
  - Vfio::disable_msi
  - Vfio::enable_msix
  - Vfio::disable_msix
  - Vfio::region_read
  - Vfio::region_write
  - Vfio::get_irq_info
  - Vfio::enable_irq
  - Vfio::disable_irq
  - Vfio::unmask_irq
  - VfioDeviceWrapper::new
  - VfioDeviceWrapper::region_read
  - VfioDeviceWrapper::region_write
  - VfioDeviceWrapper::get_irq_info
  - VfioDeviceWrapper::enable_irq
  - VfioDeviceWrapper::disable_irq
  - VfioDeviceWrapper::unmask_irq
  - VfioCommon::new
  - VfioCommon::fixup_msix_region
  - VfioCommon::allocate_bars
  - VfioCommon::free_bars
  - VfioCommon::parse_msix_capabilities
  - VfioCommon::initialize_msix
  - VfioCommon::parse_msi_capabilities
  - VfioCommon::initialize_msi
  - VfioCommon::has_capabilities
  - VfioCommon::get_msix_cap_idx
  - VfioCommon::parse_capabilities
  - VfioCommon::add_nv_gpudirect_clique_cap
  - VfioCommon::parse_extended_capabilities
  - VfioCommon::enable_intx
  - VfioCommon::disable_intx
  - VfioCommon::enable_msi
  - VfioCommon::disable_msi
  - VfioCommon::enable_msix
  - VfioCommon::disable_msix
  - VfioCommon::initialize_legacy_interrupt
  - VfioCommon::update_msi_capabilities
  - VfioCommon::update_msix_capabilities
  - VfioCommon::find_region
  - VfioCommon::read_bar
  - VfioCommon::write_bar
  - VfioCommon::write_config_register
  - VfioCommon::read_config_register
  - VfioCommon::state
  - VfioCommon::set_state
  - VfioCommon::id
  - VfioCommon::snapshot
  - VfioPciDevice::new
  - VfioPciDevice::iommu_attached
  - VfioPciDevice::generate_sparse_areas
  - VfioPciDevice::map_mmio_regions
  - VfioPciDevice::unmap_mmio_regions
  - VfioPciDevice::mmio_regions
  - VfioPciDevice::drop
  - VfioPciDevice::read
  - VfioPciDevice::write
  - VfioPciDevice::allocate_bars
  - VfioPciDevice::free_bars
  - VfioPciDevice::write_config_register
  - VfioPciDevice::read_config_register
  - VfioPciDevice::read_bar
  - VfioPciDevice::write_bar
  - VfioPciDevice::move_bar
  - VfioPciDevice::as_any_mut
  - VfioPciDevice::id
  - VfioPciDevice::id
  - VfioPciDevice::snapshot
  - VfioDmaMapping::new
  - VfioDmaMapping::map
  - VfioDmaMapping::unmap
  source_file: /src/cloud-hypervisor/pci/src/vfio.rs
- function_names:
  - MsixTableEntry::masked
  - MsixTableEntry::default
  - MsixConfig::new
  - MsixConfig::state
  - MsixConfig::masked
  - MsixConfig::enabled
  - MsixConfig::set_msg_ctl
  - MsixConfig::read_table
  - MsixConfig::write_table
  - MsixConfig::read_pba
  - MsixConfig::write_pba
  - MsixConfig::set_pba_bit
  - MsixConfig::get_pba_bit
  - MsixConfig::inject_msix_and_clear_pba
  - MsixConfig::id
  - MsixConfig::snapshot
  - MsixCap::bytes
  - MsixCap::id
  - MsixCap::new
  - MsixCap::set_msg_ctl
  - MsixCap::masked
  - MsixCap::enabled
  - MsixCap::table_offset
  - MsixCap::pba_offset
  - MsixCap::table_set_offset
  - MsixCap::pba_set_offset
  - MsixCap::table_bir
  - MsixCap::pba_bir
  - MsixCap::table_size
  - MsixCap::table_range
  - MsixCap::pba_range
  source_file: /src/cloud-hypervisor/pci/src/msix.rs
- function_names:
  - PciDevice::allocate_bars
  - PciDevice::free_bars
  - PciDevice::read_bar
  - PciDevice::write_bar
  - PciDevice::move_bar
  source_file: /src/cloud-hypervisor/pci/src/device.rs
- function_names:
  - PciInterruptPin::to_mask
  - PciBdfVisitor::expecting
  - PciBdfVisitor::visit_str
  - PciBdf::deserialize
  - PciBdf::serialize
  - PciBdf::segment
  - PciBdf::bus
  - PciBdf::device
  - PciBdf::function
  - PciBdf::new
  - PciBdf::from
  - u32::from
  - u32::from
  - u16::from
  - u16::from
  - PciBdf::fmt
  - PciBdf::fmt
  - PciBdf::from_str
  - PciBdf::from
  source_file: /src/cloud-hypervisor/pci/src/lib.rs
- function_names:
  - msi_num_enabled_vectors
  - MsiCap::addr_64_bits
  - MsiCap::per_vector_mask
  - MsiCap::enabled
  - MsiCap::num_enabled_vectors
  - MsiCap::vector_masked
  - MsiCap::size
  - MsiCap::update
  - MsiConfig::new
  - MsiConfig::state
  - MsiConfig::enabled
  - MsiConfig::size
  - MsiConfig::num_enabled_vectors
  - MsiConfig::update
  - MsiConfig::id
  - MsiConfig::snapshot
  source_file: /src/cloud-hypervisor/pci/src/msi.rs
- function_names:
  - PciRoot::new
  - PciRoot::write_config_register
  - PciRoot::read_config_register
  - PciRoot::as_any_mut
  - PciRoot::id
  - PciBus::new
  - PciBus::register_mapping
  - PciBus::add_device
  - PciBus::remove_by_device
  - PciBus::next_device_id
  - PciBus::get_device_id
  - PciBus::put_device_id
  - PciConfigIo::new
  - PciConfigIo::config_space_read
  - PciConfigIo::config_space_write
  - PciConfigIo::set_config_address
  - PciConfigIo::read
  - PciConfigIo::write
  - PciConfigMmio::new
  - PciConfigMmio::config_space_read
  - PciConfigMmio::config_space_write
  - PciConfigMmio::read
  - PciConfigMmio::write
  - shift_and_mask
  - parse_mmio_config_address
  - parse_io_config_address
  source_file: /src/cloud-hypervisor/pci/src/bus.rs
- function_names:
  - PciClassCode::get_register_value
  - PciMultimediaSubclass::get_register_value
  - PciBridgeSubclass::get_register_value
  - PciSerialBusSubClass::get_register_value
  - PciMassStorageSubclass::get_register_value
  - PciNetworkControllerSubclass::get_register_value
  - PciCapabilityId::from
  - PciExpressCapabilityId::from
  - encode_32_bits_bar_size
  - decode_32_bits_bar_size
  - encode_64_bits_bar_size
  - decode_64_bits_bar_size
  - PciBarRegionType::from
  - PciBarType::from
  - bool::from
  - PciConfiguration::new
  - PciConfiguration::state
  - PciConfiguration::read_reg
  - PciConfiguration::write_reg
  - PciConfiguration::write_word
  - PciConfiguration::write_byte
  - PciConfiguration::write_byte_internal
  - PciConfiguration::add_pci_bar
  - PciConfiguration::add_pci_rom_bar
  - PciConfiguration::get_bar_addr
  - PciConfiguration::set_irq
  - PciConfiguration::add_capability
  - PciConfiguration::next_dword
  - PciConfiguration::write_config_register
  - PciConfiguration::read_config_register
  - PciConfiguration::detect_bar_reprogramming
  - PciConfiguration::pending_bar_reprogram
  - PciConfiguration::clear_pending_bar_reprogram
  - PciConfiguration::id
  - PciConfiguration::snapshot
  - PciBarConfiguration::default
  - PciBarConfiguration::new
  - PciBarConfiguration::set_index
  - PciBarConfiguration::set_address
  - PciBarConfiguration::set_size
  - PciBarConfiguration::set_region_type
  - PciBarConfiguration::set_prefetchable
  - PciBarConfiguration::idx
  - PciBarConfiguration::addr
  - PciBarConfiguration::size
  - PciBarConfiguration::region_type
  - PciBarConfiguration::prefetchable
  - unit_tests::add_capability
  - unit_tests::class_code
  source_file: /src/cloud-hypervisor/pci/src/configuration.rs
- function_names:
  - MmapRegion::drop
  - MmapRegion::addr
  - MmapRegion::len
  - MmapRegion::mmap
  source_file: /src/cloud-hypervisor/pci/src/mmap.rs
- function_names:
  - RateLimiterGroupHandle::new
  - RateLimiterGroupHandle::consume
  - RateLimiterGroupHandle::manual_replenish
  - RateLimiterGroupHandle::event_handler
  - RateLimiterGroupHandle::is_blocked
  - RateLimiterGroupHandle::clone
  - RateLimiterGroupHandle::as_raw_fd
  - RateLimiterGroupHandle::drop
  - EpollDispatch::from
  - RateLimiterGroup::new
  - RateLimiterGroup::new_handle
  - RateLimiterGroup::start_thread
  - RateLimiterGroup::drop
  - unit_tests::test_rate_limiter_group_new
  - unit_tests::test_rate_limiter_group_manual_replenish
  - unit_tests::test_rate_limiter_group_bandwidth
  - unit_tests::test_rate_limiter_group_ops
  - unit_tests::test_rate_limiter_group_full
  - unit_tests::test_rate_limiter_group_overconsumption
  source_file: /src/cloud-hypervisor/rate_limiter/src/group.rs
- function_names:
  - gcd
  - TokenBucket::new
  - TokenBucket::reduce
  - TokenBucket::replenish
  - TokenBucket::capacity
  - TokenBucket::one_time_burst
  - TokenBucket::refill_time_ms
  - TokenBucket::budget
  - RateLimiterInner::activate_timer
  - RateLimiter::new
  - RateLimiter::consume
  - RateLimiter::manual_replenish
  - RateLimiter::is_blocked
  - RateLimiter::event_handler
  - RateLimiter::update_buckets
  - RateLimiter::as_raw_fd
  - RateLimiter::default
  - unit_tests::test_token_bucket_create
  - unit_tests::test_token_bucket_preprocess
  - unit_tests::test_token_bucket_reduce
  - unit_tests::test_rate_limiter_default
  - unit_tests::test_rate_limiter_new
  - unit_tests::test_rate_limiter_manual_replenish
  - unit_tests::test_rate_limiter_bandwidth
  - unit_tests::test_rate_limiter_ops
  - unit_tests::test_rate_limiter_full
  - unit_tests::test_rate_limiter_overconsumption
  - unit_tests::test_update_buckets
  - unit_tests::test_rate_limiter_debug
  source_file: /src/cloud-hypervisor/rate_limiter/src/lib.rs
- function_names:
  - main
  source_file: /src/cloud-hypervisor/virtio-devices/build.rs
- function_names:
  - BlockCounters::default
  - has_feature
  - BlockEpollHandler::check_request
  - BlockEpollHandler::process_queue_submit
  - BlockEpollHandler::try_signal_used_queue
  - BlockEpollHandler::process_queue_submit_and_signal
  - BlockEpollHandler::find_inflight_request
  - BlockEpollHandler::process_queue_complete
  - BlockEpollHandler::signal_used_queue
  - BlockEpollHandler::set_queue_thread_affinity
  - BlockEpollHandler::run
  - BlockEpollHandler::handle_event
  - Block::new
  - Block::read_only
  - Block::lock_granularity
  - Block::try_lock_image
  - Block::unlock_image
  - Block::state
  - Block::update_writeback
  - Block::resize
  - Block::wait_for_epoll_threads
  - Block::drop
  - Block::device_type
  - Block::queue_max_sizes
  - Block::features
  - Block::ack_features
  - Block::read_config
  - Block::write_config
  - Block::activate
  - Block::reset
  - Block::counters
  - Block::set_access_platform
  - Block::pause
  - Block::resume
  - Block::id
  - Block::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/block.rs
- function_names:
  - Vdpa::new
  - Vdpa::enable_vrings
  - Vdpa::activate_vdpa
  - Vdpa::reset_vdpa
  - Vdpa::dma_map
  - Vdpa::dma_unmap
  - Vdpa::state
  - Vdpa::device_type
  - Vdpa::queue_max_sizes
  - Vdpa::features
  - Vdpa::ack_features
  - Vdpa::read_config
  - Vdpa::write_config
  - Vdpa::activate
  - Vdpa::reset
  - Vdpa::set_access_platform
  - Vdpa::pause
  - Vdpa::resume
  - Vdpa::id
  - Vdpa::snapshot
  - Vdpa::start_migration
  - Vdpa::complete_migration
  - VdpaDmaMapping::new
  - VdpaDmaMapping::map
  - VdpaDmaMapping::unmap
  source_file: /src/cloud-hypervisor/virtio-devices/src/vdpa.rs
- function_names:
  - and
  - or
  - mshv_sev_snp_ioctl_seccomp_rule
  - create_mshv_sev_snp_ioctl_seccomp_rule
  - create_virtio_console_ioctl_seccomp_rule
  - create_virtio_iommu_ioctl_seccomp_rule
  - create_virtio_mem_ioctl_seccomp_rule
  - virtio_balloon_thread_rules
  - virtio_block_thread_rules
  - virtio_console_thread_rules
  - virtio_iommu_thread_rules
  - virtio_mem_thread_rules
  - virtio_net_thread_rules
  - create_virtio_net_ctl_ioctl_seccomp_rule
  - virtio_net_ctl_thread_rules
  - virtio_pmem_thread_rules
  - virtio_rng_thread_rules
  - virtio_vhost_fs_thread_rules
  - virtio_vhost_net_ctl_thread_rules
  - virtio_vhost_net_thread_rules
  - virtio_vhost_block_thread_rules
  - create_vsock_ioctl_seccomp_rule
  - virtio_vsock_thread_rules
  - virtio_watchdog_thread_rules
  - get_seccomp_rules
  - virtio_thread_common
  - get_seccomp_filter
  source_file: /src/cloud-hypervisor/virtio-devices/src/seccomp_filters.rs
- function_names:
  - VirtioConsoleConfig::default
  - Endpoint::out_file
  - Endpoint::in_file
  - Endpoint::is_pty
  - ConsoleEpollHandler::new
  - ConsoleEpollHandler::process_input_queue
  - ConsoleEpollHandler::process_output_queue
  - ConsoleEpollHandler::signal_used_queue
  - ConsoleEpollHandler::run
  - ConsoleEpollHandler::trigger_pty_flush
  - ConsoleEpollHandler::register_file_event
  - ConsoleEpollHandler::handle_event
  - ConsoleEpollHandler::handle_timeout
  - ConsoleEpollHandler::event_list
  - ConsoleResizer::update_console_size
  - VirtioConsoleConfig::update_console_size
  - get_win_size
  - Console::new
  - Console::state
  - Console::wait_for_epoll_threads
  - Console::drop
  - Console::device_type
  - Console::queue_max_sizes
  - Console::features
  - Console::ack_features
  - Console::read_config
  - Console::activate
  - Console::reset
  - Console::set_access_platform
  - Console::pause
  - Console::resume
  - Console::id
  - Console::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/console.rs
- function_names:
  - RngEpollHandler::process_queue
  - RngEpollHandler::signal_used_queue
  - RngEpollHandler::run
  - RngEpollHandler::handle_event
  - Rng::new
  - Rng::state
  - Rng::wait_for_epoll_threads
  - Rng::drop
  - Rng::device_type
  - Rng::queue_max_sizes
  - Rng::features
  - Rng::ack_features
  - Rng::activate
  - Rng::reset
  - Rng::set_access_platform
  - Rng::pause
  - Rng::resume
  - Rng::id
  - Rng::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/rng.rs
- function_names:
  - Request::parse
  - PmemEpollHandler::process_queue
  - PmemEpollHandler::signal_used_queue
  - PmemEpollHandler::run
  - PmemEpollHandler::handle_event
  - Pmem::new
  - Pmem::state
  - Pmem::wait_for_epoll_threads
  - Pmem::drop
  - Pmem::device_type
  - Pmem::queue_max_sizes
  - Pmem::features
  - Pmem::ack_features
  - Pmem::read_config
  - Pmem::activate
  - Pmem::reset
  - Pmem::userspace_mappings
  - Pmem::set_access_platform
  - Pmem::pause
  - Pmem::resume
  - Pmem::id
  - Pmem::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/pmem.rs
- function_names:
  - spawn_virtio_thread
  source_file: /src/cloud-hypervisor/virtio-devices/src/thread_helper.rs
- function_names:
  - PartiallyBalloonedPage::new
  - PartiallyBalloonedPage::pfn_match
  - PartiallyBalloonedPage::bitmap_full
  - PartiallyBalloonedPage::set_bit
  - PartiallyBalloonedPage::reset
  - BalloonEpollHandler::signal
  - BalloonEpollHandler::advise_memory_range
  - BalloonEpollHandler::release_memory_range
  - BalloonEpollHandler::release_memory_range_4k
  - BalloonEpollHandler::process_queue
  - BalloonEpollHandler::process_reporting_queue
  - BalloonEpollHandler::run
  - BalloonEpollHandler::handle_event
  - Balloon::new
  - Balloon::resize
  - Balloon::get_actual
  - Balloon::state
  - Balloon::wait_for_epoll_threads
  - Balloon::drop
  - Balloon::device_type
  - Balloon::queue_max_sizes
  - Balloon::features
  - Balloon::ack_features
  - Balloon::read_config
  - Balloon::write_config
  - Balloon::activate
  - Balloon::reset
  - Balloon::pause
  - Balloon::resume
  - Balloon::id
  - Balloon::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/balloon.rs
- function_names:
  - NetCtrlEpollHandler::signal_used_queue
  - NetCtrlEpollHandler::run_ctrl
  - NetCtrlEpollHandler::handle_event
  - NetEpollHandler::signal_used_queue
  - NetEpollHandler::handle_rx_event
  - NetEpollHandler::process_tx
  - NetEpollHandler::handle_tx_event
  - NetEpollHandler::handle_rx_tap_event
  - NetEpollHandler::run
  - NetEpollHandler::handle_event
  - Net::new_with_tap
  - Net::new
  - Net::from_tap_fds
  - Net::state
  - Net::wait_for_epoll_threads
  - Net::drop
  - Net::device_type
  - Net::queue_max_sizes
  - Net::features
  - Net::ack_features
  - Net::read_config
  - Net::activate
  - Net::reset
  - Net::counters
  - Net::set_access_platform
  - Net::pause
  - Net::resume
  - Net::id
  - Net::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/net.rs
- function_names:
  - WatchdogEpollHandler::process_queue
  - WatchdogEpollHandler::signal_used_queue
  - WatchdogEpollHandler::run
  - WatchdogEpollHandler::handle_event
  - Watchdog::new
  - Watchdog::state
  - Watchdog::wait_for_epoll_threads
  - Watchdog::drop
  - timerfd_create
  - timerfd_setup
  - Watchdog::device_type
  - Watchdog::queue_max_sizes
  - Watchdog::features
  - Watchdog::ack_features
  - Watchdog::activate
  - Watchdog::reset
  - Watchdog::pause
  - Watchdog::resume
  - Watchdog::id
  - Watchdog::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/watchdog.rs
- function_names:
  - VirtioInterrupt::notifier
  - VirtioDevice::features
  - VirtioDevice::ack_features
  - VirtioDevice::read_config
  - VirtioDevice::write_config
  - VirtioDevice::reset
  - VirtioDevice::get_shm_regions
  - VirtioDevice::set_shm_regions
  - VirtioDevice::shutdown
  - VirtioDevice::add_memory_region
  - VirtioDevice::userspace_mappings
  - VirtioDevice::counters
  - VirtioDevice::read_config_from_slice
  - VirtioDevice::set_access_platform
  - VirtioCommon::feature_acked
  - VirtioCommon::ack_features
  - VirtioCommon::activate
  - VirtioCommon::reset
  - VirtioCommon::wait_for_epoll_threads
  - VirtioCommon::dup_eventfds
  - VirtioCommon::set_access_platform
  - VirtioCommon::pause
  - VirtioCommon::resume
  source_file: /src/cloud-hypervisor/virtio-devices/src/device.rs
- function_names:
  - EpollHelperHandler::handle_timeout
  - EpollHelperHandler::event_list
  - EpollHelper::new
  - EpollHelper::add_event
  - EpollHelper::add_event_custom
  - EpollHelper::mod_event_custom
  - EpollHelper::del_event_custom
  - EpollHelper::run
  - EpollHelper::run_with_timeout
  - EpollHelper::run_with_timeout
  - EpollHelper::as_raw_fd
  source_file: /src/cloud-hypervisor/virtio-devices/src/epoll_helper.rs
- function_names:
  - Request::parse
  - detach_endpoint_from_domain
  - IommuEpollHandler::request_queue
  - IommuEpollHandler::signal_used_queue
  - IommuEpollHandler::run
  - IommuEpollHandler::handle_event
  - IommuMapping::translate_gva
  - IommuMapping::translate_gpa
  - AccessPlatformMapping::new
  - AccessPlatformMapping::translate_gva
  - AccessPlatformMapping::translate_gpa
  - Iommu::new
  - Iommu::state
  - Iommu::update_bypass
  - Iommu::add_external_mapping
  - Iommu::wait_for_epoll_threads
  - Iommu::drop
  - Iommu::device_type
  - Iommu::queue_max_sizes
  - Iommu::features
  - Iommu::ack_features
  - Iommu::read_config
  - Iommu::write_config
  - Iommu::activate
  - Iommu::reset
  - Iommu::pause
  - Iommu::resume
  - Iommu::id
  - Iommu::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/iommu.rs
- function_names:
  - RateLimiterConfig::try_into
  - get_host_address_range
  source_file: /src/cloud-hypervisor/virtio-devices/src/lib.rs
- function_names:
  - VirtioMemConfig::validate
  - VirtioMemConfig::resize
  - VirtioMemConfig::is_valid_range
  - Request::parse
  - Request::send_response
  - BlocksState::new
  - BlocksState::is_range_state
  - BlocksState::set_range
  - BlocksState::inner
  - BlocksState::memory_ranges
  - usize_to_u64
  - MemEpollHandler::discard_memory_range
  - MemEpollHandler::state_change_request
  - MemEpollHandler::unplug_all
  - MemEpollHandler::state_request
  - MemEpollHandler::signal
  - MemEpollHandler::process_queue
  - MemEpollHandler::run
  - MemEpollHandler::handle_event
  - Mem::new
  - Mem::resize
  - Mem::add_dma_mapping_handler
  - Mem::remove_dma_mapping_handler
  - Mem::state
  - Mem::wait_for_epoll_threads
  - Mem::drop
  - Mem::device_type
  - Mem::queue_max_sizes
  - Mem::features
  - Mem::ack_features
  - Mem::read_config
  - Mem::activate
  - Mem::reset
  - Mem::pause
  - Mem::resume
  - Mem::id
  - Mem::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/mem.rs
- function_names:
  - VirtioPciCap::bytes
  - VirtioPciCap::id
  - VirtioPciCap::new
  - VirtioPciNotifyCap::bytes
  - VirtioPciNotifyCap::id
  - VirtioPciNotifyCap::new
  - VirtioPciCap64::bytes
  - VirtioPciCap64::id
  - VirtioPciCap64::new
  - VirtioPciCfgCap::bytes
  - VirtioPciCfgCap::id
  - VirtioPciCfgCap::new
  - PciVirtioSubclass::get_register_value
  - VirtioPciDeviceActivator::activate
  - VirtioPciDevice::new
  - VirtioPciDevice::state
  - VirtioPciDevice::queue_evts
  - VirtioPciDevice::is_driver_ready
  - VirtioPciDevice::is_driver_init
  - VirtioPciDevice::config_bar_addr
  - VirtioPciDevice::add_pci_capabilities
  - VirtioPciDevice::read_cap_pci_cfg
  - VirtioPciDevice::write_cap_pci_cfg
  - VirtioPciDevice::virtio_device
  - VirtioPciDevice::prepare_activator
  - VirtioPciDevice::activate
  - VirtioPciDevice::needs_activation
  - VirtioPciDevice::dma_handler
  - VirtioPciDevice::ioeventfds
  - VirtioInterruptMsix::new
  - VirtioInterruptMsix::trigger
  - VirtioInterruptMsix::notifier
  - VirtioPciDevice::write_config_register
  - VirtioPciDevice::read_config_register
  - VirtioPciDevice::allocate_bars
  - VirtioPciDevice::free_bars
  - VirtioPciDevice::move_bar
  - VirtioPciDevice::read_bar
  - VirtioPciDevice::write_bar
  - VirtioPciDevice::as_any_mut
  - VirtioPciDevice::id
  - VirtioPciDevice::read
  - VirtioPciDevice::write
  - VirtioPciDevice::pause
  - VirtioPciDevice::resume
  - VirtioPciDevice::id
  - VirtioPciDevice::snapshot
  source_file: /src/cloud-hypervisor/virtio-devices/src/transport/pci_device.rs
- function_names:
  - get_vring_size
  - VirtioPciCommonConfig::new
  - VirtioPciCommonConfig::state
  - VirtioPciCommonConfig::read
  - VirtioPciCommonConfig::write
  - VirtioPciCommonConfig::read_common_config_byte
  - VirtioPciCommonConfig::write_common_config_byte
  - VirtioPciCommonConfig::read_common_config_word
  - VirtioPciCommonConfig::write_common_config_word
  - VirtioPciCommonConfig::read_common_config_dword
  - VirtioPciCommonConfig::write_common_config_dword
  - VirtioPciCommonConfig::read_common_config_qword
  - VirtioPciCommonConfig::write_common_config_qword
  - VirtioPciCommonConfig::with_queue
  - VirtioPciCommonConfig::with_queue_mut
  - VirtioPciCommonConfig::id
  - VirtioPciCommonConfig::snapshot
  - unit_tests::write_base_regs
  source_file: /src/cloud-hypervisor/virtio-devices/src/transport/pci_common_config.rs
- function_names: []
  source_file: /src/cloud-hypervisor/virtio-devices/src/transport/mod.rs
- function_names:
  - VsockPacket::from_tx_virtq_head
  - VsockPacket::from_rx_virtq_head
  - VsockPacket::hdr
  - VsockPacket::hdr_mut
  - VsockPacket::buf
  - VsockPacket::buf_mut
  - VsockPacket::src_cid
  - VsockPacket::set_src_cid
  - VsockPacket::dst_cid
  - VsockPacket::set_dst_cid
  - VsockPacket::src_port
  - VsockPacket::set_src_port
  - VsockPacket::dst_port
  - VsockPacket::set_dst_port
  - VsockPacket::len
  - VsockPacket::is_empty
  - VsockPacket::set_len
  - VsockPacket::type_
  - VsockPacket::set_type
  - VsockPacket::op
  - VsockPacket::set_op
  - VsockPacket::flags
  - VsockPacket::set_flags
  - VsockPacket::set_flag
  - VsockPacket::buf_alloc
  - VsockPacket::set_buf_alloc
  - VsockPacket::fwd_cnt
  - VsockPacket::set_fwd_cnt
  - unit_tests::set_pkt_len
  - unit_tests::test_tx_packet_assembly
  - unit_tests::test_rx_packet_assembly
  - unit_tests::test_packet_hdr_accessors
  - unit_tests::test_packet_buf
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/packet.rs
- function_names: []
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/mod.rs
- function_names:
  - VsockEpollHandler::signal_used_queue
  - VsockEpollHandler::process_rx
  - VsockEpollHandler::process_tx
  - VsockEpollHandler::run
  - VsockEpollHandler::handle_event
  - Vsock::new
  - Vsock::state
  - Vsock::wait_for_epoll_threads
  - Vsock::drop
  - Vsock::device_type
  - Vsock::queue_max_sizes
  - Vsock::features
  - Vsock::ack_features
  - Vsock::read_config
  - Vsock::activate
  - Vsock::reset
  - Vsock::shutdown
  - Vsock::set_access_platform
  - Vsock::pause
  - Vsock::resume
  - Vsock::id
  - Vsock::snapshot
  - unit_tests::test_virtio_device
  - unit_tests::test_irq
  - unit_tests::test_txq_event
  - unit_tests::test_rxq_event
  - unit_tests::test_evq_event
  - unit_tests::test_backend_event
  - unit_tests::test_unknown_event
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/device.rs
- function_names:
  - MuxerRxQ::new
  - MuxerRxQ::from_conn_map
  - MuxerRxQ::push
  - MuxerRxQ::peek
  - MuxerRxQ::pop
  - MuxerRxQ::is_synced
  - MuxerRxQ::len
  - MuxerRxQ::is_empty
  - MuxerRxQ::is_full
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_rxq.rs
- function_names:
  - VsockMuxer::recv_pkt
  - VsockMuxer::send_pkt
  - VsockMuxer::has_pending_rx
  - VsockMuxer::get_polled_fd
  - VsockMuxer::get_polled_evset
  - VsockMuxer::notify
  - VsockMuxer::new
  - VsockMuxer::handle_event
  - VsockMuxer::parse_port_from_read_command
  - VsockMuxer::read_local_stream_port
  - VsockMuxer::add_connection
  - VsockMuxer::remove_connection
  - VsockMuxer::kill_connection
  - VsockMuxer::add_listener
  - VsockMuxer::remove_listener
  - VsockMuxer::allocate_local_port
  - VsockMuxer::free_local_port
  - VsockMuxer::handle_peer_request_pkt
  - VsockMuxer::apply_conn_mutation
  - VsockMuxer::sweep_killq
  - VsockMuxer::enq_rst
  - unit_tests::test_muxer_epoll_listener
  - unit_tests::test_bad_peer_pkt
  - unit_tests::test_peer_connection
  - unit_tests::test_local_connection
  - unit_tests::test_local_close
  - unit_tests::test_peer_close
  - unit_tests::test_muxer_rxq
  - unit_tests::test_muxer_killq
  - unit_tests::test_regression_handshake
  - unit_tests::test_regression_rxq_pop
  - unit_tests::test_parse_command
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer.rs
- function_names: []
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/mod.rs
- function_names:
  - MuxerKillQ::new
  - MuxerKillQ::from_conn_map
  - MuxerKillQ::push
  - MuxerKillQ::pop
  - MuxerKillQ::is_synced
  - MuxerKillQ::is_empty
  - MuxerKillQ::is_full
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/unix/muxer_killq.rs
- function_names:
  - PendingRx::into_mask
  - PendingRxSet::insert
  - PendingRxSet::remove
  - PendingRxSet::contains
  - PendingRxSet::is_empty
  - PendingRxSet::from
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/mod.rs
- function_names:
  - TxBuf::new
  - TxBuf::len
  - TxBuf::push
  - TxBuf::flush_to
  - TxBuf::is_empty
  - unit_tests::test_push_nowrap
  - unit_tests::test_push_wrap
  - unit_tests::test_push_error
  - unit_tests::test_incomplete_flush
  - unit_tests::test_flush_error
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/txbuf.rs
- function_names:
  - VsockConnection::recv_pkt
  - VsockConnection::send_pkt
  - VsockConnection::has_pending_rx
  - VsockConnection::get_polled_fd
  - VsockConnection::get_polled_evset
  - VsockConnection::notify
  - VsockConnection::new_peer_init
  - VsockConnection::new_local_init
  - VsockConnection::will_expire
  - VsockConnection::has_expired
  - VsockConnection::expiry
  - VsockConnection::kill
  - VsockConnection::state
  - VsockConnection::send_bytes_raw
  - VsockConnection::send_bytes
  - VsockConnection::peer_needs_credit_update
  - VsockConnection::need_credit_update_from_peer
  - VsockConnection::peer_avail_credit
  - VsockConnection::init_pkt
  - unit_tests::init_pkt
  - unit_tests::test_peer_request
  - unit_tests::test_local_request
  - unit_tests::test_local_request_timeout
  - unit_tests::test_rx_data
  - unit_tests::test_local_close
  - unit_tests::test_peer_close
  - unit_tests::test_local_read_error
  - unit_tests::test_credit_request_to_peer
  - unit_tests::test_credit_request_from_peer
  - unit_tests::test_credit_update_to_peer
  - unit_tests::test_tx_buffering
  - unit_tests::test_stream_write_error
  - unit_tests::test_peer_credit_misbehavior
  source_file: /src/cloud-hypervisor/virtio-devices/src/vsock/csm/connection.rs
- function_names:
  - Net::new
  - Net::state
  - Net::drop
  - Net::device_type
  - Net::queue_max_sizes
  - Net::features
  - Net::ack_features
  - Net::read_config
  - Net::activate
  - Net::reset
  - Net::shutdown
  - Net::add_memory_region
  - Net::pause
  - Net::resume
  - Net::id
  - Net::snapshot
  - Net::start_dirty_log
  - Net::stop_dirty_log
  - Net::dirty_log
  - Net::start_migration
  - Net::complete_migration
  source_file: /src/cloud-hypervisor/virtio-devices/src/vhost_user/net.rs
- function_names:
  - Blk::new
  - Blk::state
  - Blk::drop
  - Blk::device_type
  - Blk::queue_max_sizes
  - Blk::features
  - Blk::ack_features
  - Blk::read_config
  - Blk::write_config
  - Blk::activate
  - Blk::reset
  - Blk::shutdown
  - Blk::add_memory_region
  - Blk::pause
  - Blk::resume
  - Blk::id
  - Blk::snapshot
  - Blk::start_dirty_log
  - Blk::stop_dirty_log
  - Blk::dirty_log
  - Blk::start_migration
  - Blk::complete_migration
  source_file: /src/cloud-hypervisor/virtio-devices/src/vhost_user/blk.rs
- function_names:
  - VhostUserEpollHandler::run
  - VhostUserEpollHandler::reconnect
  - VhostUserEpollHandler::handle_event
  - VhostUserCommon::activate
  - VhostUserCommon::restore_backend_connection
  - VhostUserCommon::shutdown
  - VhostUserCommon::add_memory_region
  - VhostUserCommon::pause
  - VhostUserCommon::resume
  - VhostUserCommon::snapshot
  - VhostUserCommon::start_dirty_log
  - VhostUserCommon::stop_dirty_log
  - VhostUserCommon::dirty_log
  - VhostUserCommon::start_migration
  - VhostUserCommon::complete_migration
  source_file: /src/cloud-hypervisor/virtio-devices/src/vhost_user/mod.rs
- function_names:
  - VhostUserHandle::update_mem_table
  - VhostUserHandle::add_memory_region
  - VhostUserHandle::negotiate_features_vhost_user
  - VhostUserHandle::setup_vhost_user
  - VhostUserHandle::enable_vhost_user_vrings
  - VhostUserHandle::reset_vhost_user
  - VhostUserHandle::set_protocol_features_vhost_user
  - VhostUserHandle::reinitialize_vhost_user
  - VhostUserHandle::connect_vhost_user
  - VhostUserHandle::socket_handle
  - VhostUserHandle::pause_vhost_user
  - VhostUserHandle::resume_vhost_user
  - VhostUserHandle::update_supports_migration
  - VhostUserHandle::update_log_base
  - VhostUserHandle::set_vring_logging
  - VhostUserHandle::start_dirty_log
  - VhostUserHandle::stop_dirty_log
  - VhostUserHandle::dirty_log
  - memfd_create
  source_file: /src/cloud-hypervisor/virtio-devices/src/vhost_user/vu_common_ctrl.rs
- function_names:
  - VirtioFsConfig::default
  - Fs::new
  - Fs::state
  - Fs::drop
  - Fs::device_type
  - Fs::queue_max_sizes
  - Fs::features
  - Fs::ack_features
  - Fs::read_config
  - Fs::activate
  - Fs::reset
  - Fs::shutdown
  - Fs::get_shm_regions
  - Fs::set_shm_regions
  - Fs::add_memory_region
  - Fs::userspace_mappings
  - Fs::pause
  - Fs::resume
  - Fs::id
  - Fs::snapshot
  - Fs::start_dirty_log
  - Fs::stop_dirty_log
  - Fs::dirty_log
  - Fs::start_migration
  - Fs::complete_migration
  source_file: /src/cloud-hypervisor/virtio-devices/src/vhost_user/fs.rs
