aboutsummaryrefslogtreecommitdiffstats
path: root/executor/kvm.h
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2025-11-14 17:46:50 +0100
committerAlexander Potapenko <glider@google.com>2025-11-19 08:59:40 +0000
commit825f9f21aae8dd655126b50de70210bacbd330f9 (patch)
tree89714b46f8fe5f200ef0ba9422ace70aaa27bdd0 /executor/kvm.h
parent6157b0280f1054052c9a36acb4fbae22288dc966 (diff)
executor: x86: Configure L1 guest TSS for nested virtualization
Set up the L1 guest's 64-bit Task State Segment (TSS), a prerequisite for VMX/SVM.
Diffstat (limited to 'executor/kvm.h')
-rw-r--r--executor/kvm.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/executor/kvm.h b/executor/kvm.h
index 835d717ae..ec6fdccc3 100644
--- a/executor/kvm.h
+++ b/executor/kvm.h
@@ -48,6 +48,7 @@
// Pool of 32 pages for dynamic PT/PD allocations.
#define X86_SYZOS_ADDR_PT_POOL 0x5000
#define X86_SYZOS_ADDR_VAR_IDT 0x25000
+#define X86_SYZOS_ADDR_VAR_TSS 0x26000
#define X86_SYZOS_ADDR_SMRAM 0x30000
// Write to this page to trigger a page fault and stop KVM_RUN.
@@ -124,6 +125,7 @@
// SYZOS segment selectors
#define X86_SYZOS_SEL_CODE 0x8
#define X86_SYZOS_SEL_DATA 0x10
+#define X86_SYZOS_SEL_TSS64 0x18
#define X86_CR0_PE 1ULL
#define X86_CR0_MP (1ULL << 1)