@@ -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;
@@ -814,7 +813,7 @@ impl Vmm {
814
813
memory_model:: GuestMemoryError :: MemoryNotInitialized ,
815
814
) ) ?
816
815
<< 20 ;
817
- let arch_mem_regions = x86_64 :: arch_memory_regions ( mem_size) ;
816
+ let arch_mem_regions = arch :: arch_memory_regions ( mem_size) ;
818
817
self . guest_memory =
819
818
Some ( GuestMemory :: new ( & arch_mem_regions) . map_err ( StartMicrovmError :: GuestMemory ) ?) ;
820
819
Ok ( ( ) )
@@ -834,11 +833,11 @@ impl Vmm {
834
833
. ok_or ( StartMicrovmError :: GuestMemory (
835
834
memory_model:: GuestMemoryError :: MemoryNotInitialized ,
836
835
) ) ?;
836
+
837
837
// Instantiate the MMIO device manager.
838
- // 'mmio_base' address has to be an address which is protected by the kernel, in this case
839
- // the start of the x86 specific gap of memory (currently hardcoded at 768MiB).
838
+ // 'mmio_base' address has to be an address which is protected by the kernel.
840
839
let mut device_manager =
841
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
840
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
842
841
843
842
self . attach_block_devices ( & mut device_manager) ?;
844
843
self . attach_net_devices ( & mut device_manager) ?;
@@ -1093,7 +1092,7 @@ impl Vmm {
1093
1092
. vm_config
1094
1093
. vcpu_count
1095
1094
. ok_or ( StartMicrovmError :: VcpusNotConfigured ) ?;
1096
- x86_64 :: configure_system (
1095
+ arch :: configure_system (
1097
1096
vm_memory,
1098
1097
kernel_config. cmdline_addr ,
1099
1098
cmdline_cstring. to_bytes ( ) . len ( ) + 1 ,
@@ -1384,7 +1383,7 @@ impl Vmm {
1384
1383
let kernel_file = File :: open ( kernel_image_path) . map_err ( |_| {
1385
1384
VmmActionError :: BootSource ( ErrorKind :: User , BootSourceConfigError :: InvalidKernelPath )
1386
1385
} ) ?;
1387
- let mut cmdline = kernel_cmdline:: Cmdline :: new ( x86_64 :: CMDLINE_MAX_SIZE ) ;
1386
+ let mut cmdline = kernel_cmdline:: Cmdline :: new ( arch :: COMMAND_LINE_SIZE ) ;
1388
1387
cmdline
1389
1388
. insert_str ( kernel_cmdline. unwrap_or ( String :: from ( DEFAULT_KERNEL_CMDLINE ) ) )
1390
1389
. map_err ( |_| {
@@ -1397,7 +1396,7 @@ impl Vmm {
1397
1396
let kernel_config = KernelConfig {
1398
1397
kernel_file,
1399
1398
cmdline,
1400
- cmdline_addr : GuestAddress ( x86_64 :: CMDLINE_START ) ,
1399
+ cmdline_addr : GuestAddress ( arch :: CMDLINE_START ) ,
1401
1400
} ;
1402
1401
self . configure_kernel ( kernel_config) ;
1403
1402
@@ -1856,12 +1855,12 @@ mod tests {
1856
1855
let kernel_path = String :: from ( kernel_file_temp. path ( ) . to_path_buf ( ) . to_str ( ) . unwrap ( ) ) ;
1857
1856
let kernel_file = File :: open ( kernel_path) . unwrap ( ) ;
1858
1857
1859
- let mut cmdline = kernel_cmdline:: Cmdline :: new ( x86_64 :: CMDLINE_MAX_SIZE ) ;
1858
+ let mut cmdline = kernel_cmdline:: Cmdline :: new ( arch :: COMMAND_LINE_SIZE ) ;
1860
1859
assert ! ( cmdline. insert_str( DEFAULT_KERNEL_CMDLINE ) . is_ok( ) ) ;
1861
1860
let kernel_cfg = KernelConfig {
1862
1861
cmdline,
1863
1862
kernel_file,
1864
- cmdline_addr : GuestAddress ( x86_64 :: CMDLINE_START ) ,
1863
+ cmdline_addr : GuestAddress ( arch :: CMDLINE_START ) ,
1865
1864
} ;
1866
1865
self . configure_kernel ( kernel_cfg) ;
1867
1866
}
@@ -2423,7 +2422,7 @@ mod tests {
2423
2422
2424
2423
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2425
2424
let mut device_manager =
2426
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2425
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2427
2426
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2428
2427
assert ! ( vmm. get_kernel_cmdline_str( ) . contains( "root=/dev/vda" ) ) ;
2429
2428
@@ -2447,7 +2446,7 @@ mod tests {
2447
2446
2448
2447
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2449
2448
let mut device_manager =
2450
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2449
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2451
2450
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2452
2451
assert ! ( vmm
2453
2452
. get_kernel_cmdline_str( )
@@ -2475,7 +2474,7 @@ mod tests {
2475
2474
2476
2475
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2477
2476
let mut device_manager =
2478
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2477
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2479
2478
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2480
2479
// Test that kernel commandline does not contain either /dev/vda or PARTUUID.
2481
2480
assert ! ( !vmm. get_kernel_cmdline_str( ) . contains( "root=PARTUUID=" ) ) ;
@@ -2509,7 +2508,7 @@ mod tests {
2509
2508
2510
2509
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2511
2510
let mut device_manager =
2512
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2511
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2513
2512
2514
2513
// test create network interface
2515
2514
let network_interface = NetworkInterfaceConfig {
@@ -2551,7 +2550,7 @@ mod tests {
2551
2550
// Test valid kernel path and invalid cmdline.
2552
2551
let kernel_file = NamedTempFile :: new ( ) . expect ( "Failed to create temporary kernel file." ) ;
2553
2552
let kernel_path = String :: from ( kernel_file. path ( ) . to_path_buf ( ) . to_str ( ) . unwrap ( ) ) ;
2554
- let invalid_cmdline = String :: from_utf8 ( vec ! [ b'X' ; x86_64 :: CMDLINE_MAX_SIZE + 1 ] ) . unwrap ( ) ;
2553
+ let invalid_cmdline = String :: from_utf8 ( vec ! [ b'X' ; arch :: COMMAND_LINE_SIZE + 1 ] ) . unwrap ( ) ;
2555
2554
assert ! ( vmm
2556
2555
. configure_boot_source( kernel_path. clone( ) , Some ( invalid_cmdline) )
2557
2556
. is_err( ) ) ;
@@ -2605,14 +2604,14 @@ mod tests {
2605
2604
2606
2605
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2607
2606
let mut device_manager =
2608
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2607
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2609
2608
2610
2609
let dummy_box = Box :: new ( DummyDevice { dummy : 0 } ) ;
2611
2610
// Use a dummy command line as it is not used in this test.
2612
2611
let _addr = device_manager
2613
2612
. register_device (
2614
2613
dummy_box,
2615
- & mut kernel_cmdline:: Cmdline :: new ( x86_64 :: CMDLINE_MAX_SIZE ) ,
2614
+ & mut kernel_cmdline:: Cmdline :: new ( arch :: COMMAND_LINE_SIZE ) ,
2616
2615
Some ( scratch_id. clone ( ) ) ,
2617
2616
)
2618
2617
. unwrap ( ) ;
0 commit comments