@@ -33,10 +33,10 @@ use crate::vmm_config::net::NetBuilder;
3333use devices:: legacy:: Cmos ;
3434#[ cfg( all( target_os = "linux" , target_arch = "riscv64" ) ) ]
3535use devices:: legacy:: KvmAia ;
36- #[ cfg( all( target_os = "linux" , target_arch = "loongarch64" ) ) ]
37- use devices:: legacy:: KvmLoongArchIrqChip ;
3836#[ cfg( target_arch = "x86_64" ) ]
3937use devices:: legacy:: KvmIoapic ;
38+ #[ cfg( all( target_os = "linux" , target_arch = "loongarch64" ) ) ]
39+ use devices:: legacy:: KvmLoongArchIrqChip ;
4040use devices:: legacy:: Serial ;
4141#[ cfg( target_os = "macos" ) ]
4242use devices:: legacy:: VcpuList ;
@@ -521,7 +521,11 @@ impl Display for StartMicrovmError {
521521pub enum Payload {
522522 #[ cfg( all( target_arch = "x86_64" , not( feature = "tee" ) ) ) ]
523523 KernelMmap ,
524- #[ cfg( any( target_arch = "aarch64" , target_arch = "riscv64" , target_arch = "loongarch64" ) ) ]
524+ #[ cfg( any(
525+ target_arch = "aarch64" ,
526+ target_arch = "riscv64" ,
527+ target_arch = "loongarch64"
528+ ) ) ]
525529 KernelCopy ,
526530 ExternalKernel ( ExternalKernel ) ,
527531 #[ cfg( test) ]
@@ -544,7 +548,11 @@ fn choose_payload(vm_resources: &VmResources) -> Result<Payload, StartMicrovmErr
544548 #[ cfg( all( target_os = "linux" , target_arch = "x86_64" , not( feature = "tee" ) ) ) ]
545549 return Ok ( Payload :: KernelMmap ) ;
546550
547- #[ cfg( any( target_arch = "aarch64" , target_arch = "riscv64" , target_arch = "loongarch64" ) ) ]
551+ #[ cfg( any(
552+ target_arch = "aarch64" ,
553+ target_arch = "riscv64" ,
554+ target_arch = "loongarch64"
555+ ) ) ]
548556 return Ok ( Payload :: KernelCopy ) ;
549557 } else if let Some ( external_kernel) = vm_resources. external_kernel ( ) {
550558 Ok ( Payload :: ExternalKernel ( external_kernel. clone ( ) ) )
@@ -1203,7 +1211,11 @@ fn load_external_kernel(
12031211 // Raw images are treated as bundled kernels on x86_64
12041212 #[ cfg( target_arch = "x86_64" ) ]
12051213 KernelFormat :: Raw => unreachable ! ( ) ,
1206- #[ cfg( any( target_arch = "aarch64" , target_arch = "riscv64" , target_arch = "loongarch64" ) ) ]
1214+ #[ cfg( any(
1215+ target_arch = "aarch64" ,
1216+ target_arch = "riscv64" ,
1217+ target_arch = "loongarch64"
1218+ ) ) ]
12071219 KernelFormat :: Raw => {
12081220 let data: Vec < u8 > = std:: fs:: read ( external_kernel. path . clone ( ) )
12091221 . map_err ( StartMicrovmError :: RawOpenKernel ) ?;
@@ -1235,15 +1247,13 @@ fn load_external_kernel(
12351247 let mut kernel_data: Vec < u8 > = Vec :: new ( ) ;
12361248 gz. read_to_end ( & mut kernel_data)
12371249 . map_err ( StartMicrovmError :: PeGzDecoder ) ?;
1238- guest_mem
1239- . write ( & kernel_data, kernel_load)
1240- . unwrap ( ) ;
1250+ guest_mem. write ( & kernel_data, kernel_load) . unwrap ( ) ;
12411251 kernel_load
12421252 } else {
12431253 return Err ( StartMicrovmError :: PeGzInvalid ) ;
12441254 }
12451255 }
1246-
1256+
12471257 #[ cfg( target_arch = "loongarch64" ) ]
12481258 KernelFormat :: PeGz => {
12491259 const LOONGARCH_IMAGE_HEADER_SIZE : usize = 64 ;
@@ -1303,8 +1313,8 @@ fn load_external_kernel(
13031313
13041314 let entry_addr = if kernel_entry >= LOONGARCH_VMLINUX_LOAD_ADDRESS {
13051315 let entry_offset = kernel_entry
1306- . checked_sub ( LOONGARCH_VMLINUX_LOAD_ADDRESS )
1307- . ok_or ( StartMicrovmError :: PeGzInvalid ) ?;
1316+ . checked_sub ( LOONGARCH_VMLINUX_LOAD_ADDRESS )
1317+ . ok_or ( StartMicrovmError :: PeGzInvalid ) ?;
13081318 GuestAddress (
13091319 image_load_addr
13101320 . raw_value ( )
@@ -1323,8 +1333,7 @@ fn load_external_kernel(
13231333
13241334 debug ! (
13251335 "loongarch pegz image_load_addr=0x{:x}, entry_addr=0x{:x}" ,
1326- image_load_addr. 0 ,
1327- entry_addr. 0
1336+ image_load_addr. 0 , entry_addr. 0
13281337 ) ;
13291338
13301339 guest_mem
@@ -1456,7 +1465,11 @@ fn load_payload(
14561465 StartMicrovmError ,
14571466> {
14581467 match payload {
1459- #[ cfg( any( target_arch = "aarch64" , target_arch = "riscv64" , target_arch = "loongarch64" ) ) ]
1468+ #[ cfg( any(
1469+ target_arch = "aarch64" ,
1470+ target_arch = "riscv64" ,
1471+ target_arch = "loongarch64"
1472+ ) ) ]
14601473 Payload :: KernelCopy => {
14611474 let ( kernel_entry_addr, kernel_host_addr, kernel_guest_addr, kernel_size) =
14621475 if let Some ( kernel_bundle) = & _vm_resources. kernel_bundle {
@@ -1643,7 +1656,11 @@ pub fn create_guest_memory(
16431656 Payload :: Empty => arch:: arch_memory_regions ( mem_size, None , 0 , 0 , None ) ,
16441657 Payload :: Firmware => arch:: arch_memory_regions ( mem_size, None , 0 , 0 , firmware_size) ,
16451658 } ;
1646- #[ cfg( any( target_arch = "aarch64" , target_arch = "riscv64" , target_arch = "loongarch64" ) ) ]
1659+ #[ cfg( any(
1660+ target_arch = "aarch64" ,
1661+ target_arch = "riscv64" ,
1662+ target_arch = "loongarch64"
1663+ ) ) ]
16471664 let ( arch_mem_info, mut arch_mem_regions) = match payload {
16481665 Payload :: ExternalKernel ( external_kernel) => {
16491666 arch:: arch_memory_regions ( mem_size, external_kernel. initramfs_size , None )
@@ -1823,7 +1840,11 @@ fn attach_legacy_devices(
18231840}
18241841
18251842#[ cfg( all(
1826- any( target_arch = "aarch64" , target_arch = "riscv64" , target_arch = "loongarch64" ) ,
1843+ any(
1844+ target_arch = "aarch64" ,
1845+ target_arch = "riscv64" ,
1846+ target_arch = "loongarch64"
1847+ ) ,
18271848 target_os = "linux"
18281849) ) ]
18291850fn attach_legacy_devices (
0 commit comments