@@ -59,7 +59,6 @@ use std::time::Duration;
59
59
use libc:: { c_void, siginfo_t} ;
60
60
use timerfd:: { ClockId , SetTimeFlags , TimerFd , TimerState } ;
61
61
62
- use arch:: x86_64;
63
62
use device_manager:: legacy:: LegacyDeviceManager ;
64
63
use device_manager:: mmio:: MMIODeviceManager ;
65
64
use devices:: virtio;
@@ -776,7 +775,7 @@ impl Vmm {
776
775
memory_model:: GuestMemoryError :: MemoryNotInitialized ,
777
776
) ) ?
778
777
<< 20 ;
779
- let arch_mem_regions = x86_64 :: arch_memory_regions ( mem_size) ;
778
+ let arch_mem_regions = arch :: arch_memory_regions ( mem_size) ;
780
779
self . guest_memory =
781
780
Some ( GuestMemory :: new ( & arch_mem_regions) . map_err ( StartMicrovmError :: GuestMemory ) ?) ;
782
781
Ok ( ( ) )
@@ -796,11 +795,11 @@ impl Vmm {
796
795
. ok_or ( StartMicrovmError :: GuestMemory (
797
796
memory_model:: GuestMemoryError :: MemoryNotInitialized ,
798
797
) ) ?;
798
+
799
799
// Instantiate the MMIO device manager.
800
- // 'mmio_base' address has to be an address which is protected by the kernel, in this case
801
- // the start of the x86 specific gap of memory (currently hardcoded at 768MiB).
800
+ // 'mmio_base' address has to be an address which is protected by the kernel.
802
801
let mut device_manager =
803
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
802
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
804
803
805
804
self . attach_block_devices ( & mut device_manager) ?;
806
805
self . attach_net_devices ( & mut device_manager) ?;
@@ -1052,7 +1051,7 @@ impl Vmm {
1052
1051
. vm_config
1053
1052
. vcpu_count
1054
1053
. ok_or ( StartMicrovmError :: VcpusNotConfigured ) ?;
1055
- x86_64 :: configure_system (
1054
+ arch :: configure_system (
1056
1055
vm_memory,
1057
1056
kernel_config. cmdline_addr ,
1058
1057
cmdline_cstring. to_bytes ( ) . len ( ) + 1 ,
@@ -1318,7 +1317,7 @@ impl Vmm {
1318
1317
let kernel_file = File :: open ( kernel_image_path) . map_err ( |_| {
1319
1318
VmmActionError :: BootSource ( ErrorKind :: User , BootSourceConfigError :: InvalidKernelPath )
1320
1319
} ) ?;
1321
- let mut cmdline = kernel_cmdline:: Cmdline :: new ( x86_64 :: CMDLINE_MAX_SIZE ) ;
1320
+ let mut cmdline = kernel_cmdline:: Cmdline :: new ( arch :: COMMAND_LINE_SIZE ) ;
1322
1321
cmdline
1323
1322
. insert_str ( kernel_cmdline. unwrap_or ( String :: from ( DEFAULT_KERNEL_CMDLINE ) ) )
1324
1323
. map_err ( |_| {
@@ -1331,7 +1330,7 @@ impl Vmm {
1331
1330
let kernel_config = KernelConfig {
1332
1331
kernel_file,
1333
1332
cmdline,
1334
- cmdline_addr : GuestAddress ( x86_64 :: CMDLINE_START ) ,
1333
+ cmdline_addr : GuestAddress ( arch :: CMDLINE_START ) ,
1335
1334
} ;
1336
1335
self . configure_kernel ( kernel_config) ;
1337
1336
@@ -1783,12 +1782,12 @@ mod tests {
1783
1782
let kernel_path = String :: from ( kernel_file_temp. path ( ) . to_path_buf ( ) . to_str ( ) . unwrap ( ) ) ;
1784
1783
let kernel_file = File :: open ( kernel_path) . unwrap ( ) ;
1785
1784
1786
- let mut cmdline = kernel_cmdline:: Cmdline :: new ( x86_64 :: CMDLINE_MAX_SIZE ) ;
1785
+ let mut cmdline = kernel_cmdline:: Cmdline :: new ( arch :: COMMAND_LINE_SIZE ) ;
1787
1786
assert ! ( cmdline. insert_str( DEFAULT_KERNEL_CMDLINE ) . is_ok( ) ) ;
1788
1787
let kernel_cfg = KernelConfig {
1789
1788
cmdline,
1790
1789
kernel_file,
1791
- cmdline_addr : GuestAddress ( x86_64 :: CMDLINE_START ) ,
1790
+ cmdline_addr : GuestAddress ( arch :: CMDLINE_START ) ,
1792
1791
} ;
1793
1792
self . configure_kernel ( kernel_cfg) ;
1794
1793
}
@@ -2356,7 +2355,7 @@ mod tests {
2356
2355
2357
2356
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2358
2357
let mut device_manager =
2359
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2358
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2360
2359
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2361
2360
assert ! ( vmm. get_kernel_cmdline_str( ) . contains( "root=/dev/vda" ) ) ;
2362
2361
@@ -2380,7 +2379,7 @@ mod tests {
2380
2379
2381
2380
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2382
2381
let mut device_manager =
2383
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2382
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2384
2383
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2385
2384
assert ! (
2386
2385
vmm. get_kernel_cmdline_str( )
@@ -2410,7 +2409,7 @@ mod tests {
2410
2409
2411
2410
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2412
2411
let mut device_manager =
2413
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2412
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2414
2413
assert ! ( vmm. attach_block_devices( & mut device_manager) . is_ok( ) ) ;
2415
2414
// Test that kernel commandline does not contain either /dev/vda or PARTUUID.
2416
2415
assert ! ( !vmm. get_kernel_cmdline_str( ) . contains( "root=PARTUUID=" ) ) ;
@@ -2448,7 +2447,7 @@ mod tests {
2448
2447
2449
2448
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2450
2449
let mut device_manager =
2451
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2450
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2452
2451
2453
2452
// test create network interface
2454
2453
let network_interface = NetworkInterfaceConfig {
@@ -2491,7 +2490,7 @@ mod tests {
2491
2490
// Test valid kernel path and invalid cmdline.
2492
2491
let kernel_file = NamedTempFile :: new ( ) . expect ( "Failed to create temporary kernel file." ) ;
2493
2492
let kernel_path = String :: from ( kernel_file. path ( ) . to_path_buf ( ) . to_str ( ) . unwrap ( ) ) ;
2494
- let invalid_cmdline = String :: from_utf8 ( vec ! [ b'X' ; x86_64 :: CMDLINE_MAX_SIZE + 1 ] ) . unwrap ( ) ;
2493
+ let invalid_cmdline = String :: from_utf8 ( vec ! [ b'X' ; arch :: COMMAND_LINE_SIZE + 1 ] ) . unwrap ( ) ;
2495
2494
assert ! (
2496
2495
vmm. configure_boot_source( kernel_path. clone( ) , Some ( invalid_cmdline) )
2497
2496
. is_err( )
@@ -2549,14 +2548,14 @@ mod tests {
2549
2548
2550
2549
let guest_mem = vmm. guest_memory . clone ( ) . unwrap ( ) ;
2551
2550
let mut device_manager =
2552
- MMIODeviceManager :: new ( guest_mem. clone ( ) , x86_64 :: get_32bit_gap_start ( ) as u64 ) ;
2551
+ MMIODeviceManager :: new ( guest_mem. clone ( ) , arch :: get_reserved_mem_addr ( ) as u64 ) ;
2553
2552
2554
2553
let dummy_box = Box :: new ( DummyDevice { dummy : 0 } ) ;
2555
2554
// Use a dummy command line as it is not used in this test.
2556
2555
let _addr = device_manager
2557
2556
. register_device (
2558
2557
dummy_box,
2559
- & mut kernel_cmdline:: Cmdline :: new ( x86_64 :: CMDLINE_MAX_SIZE ) ,
2558
+ & mut kernel_cmdline:: Cmdline :: new ( arch :: COMMAND_LINE_SIZE ) ,
2560
2559
Some ( scratch_id. clone ( ) ) ,
2561
2560
) . unwrap ( ) ;
2562
2561
0 commit comments