@@ -77,7 +77,6 @@ use super::{HyperlightExit, Hypervisor, InterruptHandle, LinuxInterruptHandle, V
7777use crate :: HyperlightError ;
7878use crate :: hypervisor:: get_memory_access_violation;
7979use crate :: mem:: memory_region:: { MemoryRegion , MemoryRegionFlags } ;
80- use crate :: mem:: ptr:: { GuestPtr , RawPtr } ;
8180use crate :: mem:: shared_mem:: HostSharedMemory ;
8281use crate :: sandbox:: SandboxConfiguration ;
8382#[ cfg( feature = "trace_guest" ) ]
@@ -313,7 +312,7 @@ pub(crate) struct HypervLinuxDriver {
313312 page_size : usize ,
314313 vm_fd : VmFd ,
315314 vcpu_fd : VcpuFd ,
316- orig_rsp : GuestPtr ,
315+ orig_rsp : u64 ,
317316 entrypoint : u64 ,
318317 interrupt_handle : Arc < LinuxInterruptHandle > ,
319318 mem_mgr : Option < MemMgrWrapper < HostSharedMemory > > ,
@@ -347,9 +346,9 @@ impl HypervLinuxDriver {
347346 #[ instrument( skip_all, parent = Span :: current( ) , level = "Trace" ) ]
348347 pub ( crate ) fn new (
349348 mem_regions : Vec < MemoryRegion > ,
350- entrypoint_ptr : GuestPtr ,
351- rsp_ptr : GuestPtr ,
352- pml4_ptr : GuestPtr ,
349+ entrypoint_ptr : u64 ,
350+ rsp_ptr : u64 ,
351+ pml4_ptr : u64 ,
353352 config : & SandboxConfiguration ,
354353 #[ cfg( gdb) ] gdb_conn : Option < DebugCommChannel < DebugResponse , DebugMsg > > ,
355354 #[ cfg( crashdump) ] rt_cfg : SandboxRuntimeConfig ,
@@ -380,7 +379,7 @@ impl HypervLinuxDriver {
380379 #[ cfg( gdb) ]
381380 let ( debug, gdb_conn) = if let Some ( gdb_conn) = gdb_conn {
382381 let mut debug = MshvDebug :: new ( ) ;
383- debug. add_hw_breakpoint ( & vcpu_fd, entrypoint_ptr. absolute ( ) ? ) ?;
382+ debug. add_hw_breakpoint ( & vcpu_fd, entrypoint_ptr) ?;
384383
385384 // The bellow intercepts make the vCPU exit with the Exception Intercept exit code
386385 // Check Table 6-1. Exceptions and Interrupts at Page 6-13 Vol. 1
@@ -419,7 +418,7 @@ impl HypervLinuxDriver {
419418 vm_fd. map_user_memory ( mshv_region)
420419 } ) ?;
421420
422- Self :: setup_initial_sregs ( & mut vcpu_fd, pml4_ptr. absolute ( ) ? ) ?;
421+ Self :: setup_initial_sregs ( & mut vcpu_fd, pml4_ptr) ?;
423422
424423 let interrupt_handle = Arc :: new ( LinuxInterruptHandle {
425424 running : AtomicU64 :: new ( 0 ) ,
@@ -453,7 +452,7 @@ impl HypervLinuxDriver {
453452 vcpu_fd,
454453 sandbox_regions : mem_regions,
455454 mmap_regions : Vec :: new ( ) ,
456- entrypoint : entrypoint_ptr. absolute ( ) ? ,
455+ entrypoint : entrypoint_ptr,
457456 orig_rsp : rsp_ptr,
458457 interrupt_handle : interrupt_handle. clone ( ) ,
459458 mem_mgr : None ,
@@ -585,7 +584,7 @@ impl Hypervisor for HypervLinuxDriver {
585584 #[ instrument( err( Debug ) , skip_all, parent = Span :: current( ) , level = "Trace" ) ]
586585 fn initialise (
587586 & mut self ,
588- peb_addr : RawPtr ,
587+ peb_addr : u64 ,
589588 seed : u64 ,
590589 page_size : u32 ,
591590 mem_mgr : MemMgrWrapper < HostSharedMemory > ,
@@ -604,11 +603,11 @@ impl Hypervisor for HypervLinuxDriver {
604603
605604 let regs = StandardRegisters {
606605 rip : self . entrypoint ,
607- rsp : self . orig_rsp . absolute ( ) ? ,
606+ rsp : self . orig_rsp ,
608607 rflags : 2 , //bit 1 of rlags is required to be set
609608
610609 // function args
611- rdi : peb_addr. into ( ) ,
610+ rdi : peb_addr,
612611 rsi : seed,
613612 rdx : page_size. into ( ) ,
614613 rcx : max_guest_log_level,
@@ -662,13 +661,13 @@ impl Hypervisor for HypervLinuxDriver {
662661 #[ instrument( err( Debug ) , skip_all, parent = Span :: current( ) , level = "Trace" ) ]
663662 fn dispatch_call_from_host (
664663 & mut self ,
665- dispatch_func_addr : RawPtr ,
664+ dispatch_func_addr : u64 ,
666665 #[ cfg( gdb) ] dbg_mem_access_fn : DbgMemAccessHandlerWrapper ,
667666 ) -> Result < ( ) > {
668667 // Reset general purpose registers, then set RIP and RSP
669668 let regs = StandardRegisters {
670- rip : dispatch_func_addr. into ( ) ,
671- rsp : self . orig_rsp . absolute ( ) ? ,
669+ rip : dispatch_func_addr,
670+ rsp : self . orig_rsp ,
672671 rflags : 2 , //bit 1 of rlags is required to be set
673672 ..Default :: default ( )
674673 } ;
@@ -1246,9 +1245,9 @@ mod tests {
12461245 }
12471246 const MEM_SIZE : usize = 0x3000 ;
12481247 let gm = shared_mem_with_code ( CODE . as_slice ( ) , MEM_SIZE , 0 ) . unwrap ( ) ;
1249- let rsp_ptr = GuestPtr :: try_from ( 0 ) . unwrap ( ) ;
1250- let pml4_ptr = GuestPtr :: try_from ( 0 ) . unwrap ( ) ;
1251- let entrypoint_ptr = GuestPtr :: try_from ( 0 ) . unwrap ( ) ;
1248+ let rsp_ptr = 0 ;
1249+ let pml4_ptr = 0 ;
1250+ let entrypoint_ptr = 0 ;
12521251 let mut regions = MemoryRegionVecBuilder :: new ( 0 , gm. base_addr ( ) ) ;
12531252 regions. push_page_aligned (
12541253 MEM_SIZE ,
0 commit comments