@@ -61,7 +61,6 @@ use std::time::Duration;
61
61
use libc:: { c_void, siginfo_t} ;
62
62
use timerfd:: { ClockId , SetTimeFlags , TimerFd , TimerState } ;
63
63
64
- use arch:: x86_64;
65
64
use device_manager:: legacy:: LegacyDeviceManager ;
66
65
use device_manager:: mmio:: MMIODeviceManager ;
67
66
use devices:: virtio;
@@ -822,7 +821,7 @@ impl Vmm {
822
821
memory_model:: GuestMemoryError :: MemoryNotInitialized ,
823
822
) ) ?
824
823
<< 20 ;
825
- let arch_mem_regions = x86_64 :: arch_memory_regions ( mem_size) ;
824
+ let arch_mem_regions = arch :: arch_memory_regions ( mem_size) ;
826
825
self . guest_memory =
827
826
Some ( GuestMemory :: new ( & arch_mem_regions) . map_err ( StartMicrovmError :: GuestMemory ) ?) ;
828
827
Ok ( ( ) )
@@ -842,11 +841,11 @@ impl Vmm {
842
841
. ok_or ( StartMicrovmError :: GuestMemory (
843
842
memory_model:: GuestMemoryError :: MemoryNotInitialized ,
844
843
) ) ?;
844
+
845
845
// Instantiate the MMIO device manager.
846
- // 'mmio_base' address has to be an address which is protected by the kernel, in this case
847
- // the start of the x86 specific gap of memory (currently hardcoded at 768MiB).
846
+ // 'mmio_base' address has to be an address which is protected by the kernel.
848
847
let mut device_manager =
849
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
848
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
850
849
851
850
self . attach_block_devices ( & mut device_manager) ?;
852
851
self . attach_net_devices ( & mut device_manager) ?;
@@ -1105,7 +1104,7 @@ impl Vmm {
1105
1104
. vm_config
1106
1105
. vcpu_count
1107
1106
. ok_or ( StartMicrovmError :: VcpusNotConfigured ) ?;
1108
- x86_64 :: configure_system (
1107
+ arch :: configure_system (
1109
1108
vm_memory,
1110
1109
kernel_config. cmdline_addr ,
1111
1110
cmdline_cstring. to_bytes ( ) . len ( ) + 1 ,
@@ -1406,7 +1405,7 @@ impl Vmm {
1406
1405
let kernel_file = File :: open ( kernel_image_path) . map_err ( |_| {
1407
1406
VmmActionError :: BootSource ( ErrorKind :: User , BootSourceConfigError :: InvalidKernelPath )
1408
1407
} ) ?;
1409
- let mut cmdline = kernel_cmdline:: Cmdline :: new ( x86_64 :: layout :: CMDLINE_MAX_SIZE ) ;
1408
+ let mut cmdline = kernel_cmdline:: Cmdline :: new ( arch :: CMDLINE_MAX_SIZE ) ;
1410
1409
cmdline
1411
1410
. insert_str ( kernel_cmdline. unwrap_or ( String :: from ( DEFAULT_KERNEL_CMDLINE ) ) )
1412
1411
. map_err ( |_| {
@@ -1419,7 +1418,7 @@ impl Vmm {
1419
1418
let kernel_config = KernelConfig {
1420
1419
kernel_file,
1421
1420
cmdline,
1422
- cmdline_addr : GuestAddress ( x86_64 :: layout :: CMDLINE_START ) ,
1421
+ cmdline_addr : GuestAddress ( arch :: CMDLINE_START ) ,
1423
1422
} ;
1424
1423
self . configure_kernel ( kernel_config) ;
1425
1424
@@ -1878,12 +1877,12 @@ mod tests {
1878
1877
let kernel_path = String :: from ( kernel_file_temp. path ( ) . to_path_buf ( ) . to_str ( ) . unwrap ( ) ) ;
1879
1878
let kernel_file = File :: open ( kernel_path) . unwrap ( ) ;
1880
1879
1881
- let mut cmdline = kernel_cmdline:: Cmdline :: new ( x86_64 :: layout :: CMDLINE_MAX_SIZE ) ;
1880
+ let mut cmdline = kernel_cmdline:: Cmdline :: new ( arch :: CMDLINE_MAX_SIZE ) ;
1882
1881
assert ! ( cmdline. insert_str( DEFAULT_KERNEL_CMDLINE ) . is_ok( ) ) ;
1883
1882
let kernel_cfg = KernelConfig {
1884
1883
cmdline,
1885
1884
kernel_file,
1886
- cmdline_addr : GuestAddress ( x86_64 :: layout :: CMDLINE_START ) ,
1885
+ cmdline_addr : GuestAddress ( arch :: CMDLINE_START ) ,
1887
1886
} ;
1888
1887
self . configure_kernel ( kernel_cfg) ;
1889
1888
}
@@ -2446,7 +2445,7 @@ mod tests {
2446
2445
2447
2446
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2448
2447
let mut device_manager =
2449
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2448
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2450
2449
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2451
2450
assert ! ( vmm. get_kernel_cmdline_str( ) . contains( "root=/dev/vda" ) ) ;
2452
2451
@@ -2470,7 +2469,7 @@ mod tests {
2470
2469
2471
2470
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2472
2471
let mut device_manager =
2473
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2472
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2474
2473
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2475
2474
assert ! ( vmm
2476
2475
. get_kernel_cmdline_str( )
@@ -2498,7 +2497,7 @@ mod tests {
2498
2497
2499
2498
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2500
2499
let mut device_manager =
2501
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2500
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2502
2501
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2503
2502
// Test that kernel commandline does not contain either /dev/vda or PARTUUID.
2504
2503
assert ! ( !vmm. get_kernel_cmdline_str( ) . contains( "root=PARTUUID=" ) ) ;
@@ -2532,7 +2531,7 @@ mod tests {
2532
2531
2533
2532
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2534
2533
let mut device_manager =
2535
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2534
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2536
2535
2537
2536
// test create network interface
2538
2537
let network_interface = NetworkInterfaceConfig {
@@ -2574,8 +2573,7 @@ mod tests {
2574
2573
// Test valid kernel path and invalid cmdline.
2575
2574
let kernel_file = NamedTempFile :: new ( ) . expect ( "Failed to create temporary kernel file." ) ;
2576
2575
let kernel_path = String :: from ( kernel_file. path ( ) . to_path_buf ( ) . to_str ( ) . unwrap ( ) ) ;
2577
- let invalid_cmdline =
2578
- String :: from_utf8 ( vec ! [ b'X' ; x86_64:: layout:: CMDLINE_MAX_SIZE + 1 ] ) . unwrap ( ) ;
2576
+ let invalid_cmdline = String :: from_utf8 ( vec ! [ b'X' ; arch:: CMDLINE_MAX_SIZE + 1 ] ) . unwrap ( ) ;
2579
2577
assert ! ( vmm
2580
2578
. configure_boot_source( kernel_path. clone( ) , Some ( invalid_cmdline) )
2581
2579
. is_err( ) ) ;
@@ -2629,14 +2627,14 @@ mod tests {
2629
2627
2630
2628
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2631
2629
let mut device_manager =
2632
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2630
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2633
2631
2634
2632
let dummy_box = Box :: new ( DummyDevice { dummy : 0 } ) ;
2635
2633
// Use a dummy command line as it is not used in this test.
2636
2634
let _addr = device_manager
2637
2635
. register_device (
2638
2636
dummy_box,
2639
- & mut kernel_cmdline:: Cmdline :: new ( x86_64 :: layout :: CMDLINE_MAX_SIZE ) ,
2637
+ & mut kernel_cmdline:: Cmdline :: new ( arch :: CMDLINE_MAX_SIZE ) ,
2640
2638
Some ( scratch_id. clone ( ) ) ,
2641
2639
)
2642
2640
. unwrap ( ) ;
0 commit comments