diff --git a/docs/re.md b/docs/re.md index 43ce60e30a99dffe54f24e744c95dcecd2394f25..fd12257426ff8b794a0c0a36864087b424bf8c35 100644 --- a/docs/re.md +++ b/docs/re.md @@ -177,6 +177,8 @@ to either be set or cleared (still quite vague for now) so that a call to > IA32_VMX_CR4_FIXED0 and IA32_VMX_CR4_FIXED1 (see Appendix A.8)._ +Useful reference[^6] + ```c // Function to check if VMXON can be executed without a protection exception int check_vmxon_conditions() { @@ -237,6 +239,8 @@ int check_vmxon_conditions() { #### Pseudo-code for successfully executing VMXON +p.4233 + ``` IF (register operand) or (CR0.PE = 0) or (CR4.VMXE = 0) or (RFLAGS.VM = 1) or (IA32_EFER.LMA = 1 and CS.L = 0) THEN #UD; @@ -285,3 +289,4 @@ FI; [^3]: [0xax](https://0xax.gitbooks.io/linux-insides/content/Theory/linux-theory-3.html) [^4]: [Intel SDM 2024 Vol. 3](https://cdrdv2.intel.com/v1/dl/getContent/671447) [^5]: [CPU Registers x86](https://wiki.osdev.org/CPU_Registers_x86) +[⁶]: [The basics of Intel VT-x extensions](https://research.meekolab.com/the-basics-of-intel-vt-x-extensions#heading-vmxon-execution)