diff options
Diffstat (limited to 'src/bits64/vmx.rs')
-rw-r--r-- | src/bits64/vmx.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/bits64/vmx.rs b/src/bits64/vmx.rs index 5330951..f64ece7 100644 --- a/src/bits64/vmx.rs +++ b/src/bits64/vmx.rs @@ -27,13 +27,13 @@ fn vmx_capture_status() -> Result<()> { /// `addr` specifies a 4KB-aligned physical address of VMXON region initialized /// in accordance with Intel SDM, Volume 3C, Section 24.11.5. pub unsafe fn vmxon(addr: u64) -> Result<()> { - asm!("vmxon $0" : /* no outputs */ : "m"(addr)); + llvm_asm!("vmxon $0" : /* no outputs */ : "m"(addr)); vmx_capture_status() } /// Disable VMX operation. pub unsafe fn vmxoff() -> Result<()> { - asm!("vmxoff"); + llvm_asm!("vmxoff"); vmx_capture_status() } @@ -42,7 +42,7 @@ pub unsafe fn vmxoff() -> Result<()> { /// Ensures that VMCS data maintained on the processor is copied to the VMCS region /// located at 4KB-aligned physical address `addr` and initializes some parts of it. pub unsafe fn vmclear(addr: u64) -> Result<()> { - asm!("vmclear $0" : /* no outputs */ : "m"(addr)); + llvm_asm!("vmclear $0" : /* no outputs */ : "m"(addr)); vmx_capture_status() } @@ -50,14 +50,14 @@ pub unsafe fn vmclear(addr: u64) -> Result<()> { /// /// Marks the current-VMCS pointer valid and loads it with the physical address `addr`. pub unsafe fn vmptrld(addr: u64) -> Result<()> { - asm!("vmptrld $0" : /* no outputs */ : "m"(addr)); + llvm_asm!("vmptrld $0" : /* no outputs */ : "m"(addr)); vmx_capture_status() } /// Return current VMCS pointer. pub unsafe fn vmptrst() -> Result<u64> { let value: u64 = 0; - asm!("vmptrst ($0)" : /* no outputs */ : "r"(&value) : "memory"); + llvm_asm!("vmptrst ($0)" : /* no outputs */ : "r"(&value) : "memory"); vmx_capture_status().and(Ok(value)) } @@ -65,27 +65,27 @@ pub unsafe fn vmptrst() -> Result<u64> { pub unsafe fn vmread(field: u32) -> Result<u64> { let field: u64 = field.into(); let value: u64; - asm!("vmread $1, $0" : "=r"(value) : "r"(field)); + llvm_asm!("vmread $1, $0" : "=r"(value) : "r"(field)); vmx_capture_status().and(Ok(value)) } /// Write to a specified field in a VMCS. pub unsafe fn vmwrite(field: u32, value: u64) -> Result<()> { let field: u64 = field.into(); - asm!("vmwrite $1, $0" : /* no outputs */ : "r"(field), "r"(value)); + llvm_asm!("vmwrite $1, $0" : /* no outputs */ : "r"(field), "r"(value)); vmx_capture_status() } /// Launch virtual machine. #[inline(always)] pub unsafe fn vmlaunch() -> Result<()> { - asm!("vmlaunch"); + llvm_asm!("vmlaunch"); vmx_capture_status() } /// Resume virtual machine. #[inline(always)] pub unsafe fn vmresume() -> Result<()> { - asm!("vmresume"); + llvm_asm!("vmresume"); vmx_capture_status() } |