Changeset 105732 in vbox for trunk/src/VBox
- Timestamp:
- Aug 19, 2024 5:01:37 PM (7 months ago)
- svn:sync-xref-src-repo-rev:
- 164437
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs-armv8.cpp
r101221 r105732 310 310 * Get the current exception level of the guest. 311 311 * 312 * @returns EL 313 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 314 */ 315 VMMDECL(uint32_t) CPUMGetGuestEL(PVMCPU pVCpu) 316 { 317 RT_NOREF(pVCpu); 318 AssertReleaseFailed(); 319 return 0; 312 * @returns Exception Level 0 - 3 313 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 314 */ 315 VMM_INT_DECL(uint8_t) CPUMGetGuestEL(PVMCPU pVCpu) 316 { 317 CPUM_INT_ASSERT_NOT_EXTRN(pVCpu, CPUMCTX_EXTRN_PSTATE); 318 return ARMV8_SPSR_EL2_AARCH64_GET_EL(pVCpu->cpum.s.Guest.fPState); 319 } 320 321 322 /** 323 * Returns whether the guest has the MMU enabled for address translation. 324 * 325 * @returns true if address translation is enabled, false if not. 326 */ 327 VMM_INT_DECL(bool) CPUMGetGuestMmuEnabled(PVMCPUCC pVCpu) 328 { 329 CPUM_INT_ASSERT_NOT_EXTRN(pVCpu, CPUMCTX_EXTRN_PSTATE | CPUMCTX_EXTRN_SCTLR_TCR_TTBR); 330 uint8_t bEl = ARMV8_SPSR_EL2_AARCH64_GET_EL(pVCpu->cpum.s.Guest.fPState); 331 if (bEl == ARMV8_AARCH64_EL_2) 332 { 333 CPUM_INT_ASSERT_NOT_EXTRN(pVCpu, CPUMCTX_EXTRN_SYSREG_EL2); 334 return RT_BOOL(pVCpu->cpum.s.Guest.SctlrEl2.u64 & ARMV8_SCTLR_EL2_M); 335 } 336 337 Assert(bEl == ARMV8_AARCH64_EL_0 || bEl == ARMV8_AARCH64_EL_1); 338 return RT_BOOL(pVCpu->cpum.s.Guest.Sctlr.u64 & ARMV8_SCTLR_EL2_M); 320 339 } 321 340
Note:
See TracChangeset
for help on using the changeset viewer.