diff options
| author | Alexander Potapenko <glider@google.com> | 2025-07-17 19:13:03 +0200 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2025-07-18 11:16:37 +0000 |
| commit | 10052f15e7d552bfa19d461d93b490e3e96b7010 (patch) | |
| tree | 8894837e08436b45381e4fd2987c0e8c7e8abd59 /sys/linux | |
| parent | 61ca954c06b4688cfa57cdd896d9b6b9260b739d (diff) | |
sys/linux/dev_kvm_amd64.txt: define KVM_GET_SREGS2 and KVM_SET_SREGS2
See https://docs.kernel.org/virt/kvm/api.html#kvm-get-sregs2
Diffstat (limited to 'sys/linux')
| -rw-r--r-- | sys/linux/dev_kvm_amd64.txt | 30 | ||||
| -rw-r--r-- | sys/linux/dev_kvm_amd64.txt.const | 3 |
2 files changed, 33 insertions, 0 deletions
diff --git a/sys/linux/dev_kvm_amd64.txt b/sys/linux/dev_kvm_amd64.txt index b97409a91..4939bc941 100644 --- a/sys/linux/dev_kvm_amd64.txt +++ b/sys/linux/dev_kvm_amd64.txt @@ -464,6 +464,11 @@ ioctl$KVM_CAP_SYNC_REGS(fd fd_kvmcpu, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm ioctl$KVM_SET_MEMORY_ATTRIBUTES(fd fd_kvmvm, cmd const[KVM_SET_MEMORY_ATTRIBUTES], arg ptr[in, kvm_memory_attributes]) ioctl$KVM_GET_XSAVE2(fd fd_kvmcpu, cmd const[KVM_GET_XSAVE2], arg vma) +# KVM_GET_SREGS2/KVM_SET_SREGS2 are only supported on x86 - unlike KVM_GET_SREGS/KVM_SET_SREGS. +# https://docs.kernel.org/virt/kvm/api.html#kvm-get-sregs2 +ioctl$KVM_GET_SREGS2(fd fd_kvmcpu, cmd const[KVM_GET_SREGS2], arg ptr[out, kvm_sregs2]) +ioctl$KVM_SET_SREGS2(fd fd_kvmcpu, cmd const[KVM_SET_SREGS2], arg ptr[in, kvm_sregs2]) + kvm_nested_state { flags flags[kvm_nested_state_flags, int16] format const[0, int16] @@ -767,3 +772,28 @@ kvm_memory_attributes { attributes flags[kvm_memory_attribute_flags, int64] flags const[0, int64] } + +kvm_sregs2_flags = KVM_SREGS2_FLAGS_PDPTRS_VALID + +kvm_sregs2 { + cs kvm_segment + ds kvm_segment + es kvm_segment + fs kvm_segment + gs kvm_segment + ss kvm_segment + tr kvm_segment + ldt kvm_segment + gdt kvm_dtable + idt kvm_dtable + cr0 flags[kvm_x86_cr0, int64] + cr2 const[0, int64] +# TODO: this should point to page table + cr3 flags[kvm_guest_addrs, int64] + cr4 flags[kvm_x86_cr4, int64] + cr8 int64[0:15] + efer flags[kvm_x86_efer, int64] + apic flags[kvm_guest_addrs, int64] + flags flags[kvm_sregs2_flags, int64] + pdptrs array[int64, 4] +} diff --git a/sys/linux/dev_kvm_amd64.txt.const b/sys/linux/dev_kvm_amd64.txt.const index 708be34bf..4739db1f8 100644 --- a/sys/linux/dev_kvm_amd64.txt.const +++ b/sys/linux/dev_kvm_amd64.txt.const @@ -62,6 +62,7 @@ KVM_GET_NESTED_STATE = 3229658814 KVM_GET_NR_MMU_PAGES = 44613 KVM_GET_PIT = 3225988709 KVM_GET_PIT2 = 2154868383 +KVM_GET_SREGS2 = 2168499916 KVM_GET_SUPPORTED_CPUID = 3221794309 KVM_GET_SUPPORTED_HV_CPUID = 3221794497 KVM_GET_TSC_KHZ = 44707 @@ -110,6 +111,7 @@ KVM_SET_NESTED_STATE = 1082175167 KVM_SET_NR_MMU_PAGES = 44612 KVM_SET_PIT = 2152246886 KVM_SET_PIT2 = 1081126560 +KVM_SET_SREGS2 = 1094758093 KVM_SET_TSC_KHZ = 44706 KVM_SET_TSS_ADDR = 44615 KVM_SET_VAPIC_ADDR = 1074310803 @@ -148,6 +150,7 @@ KVM_SEV_SNP_PAGE_TYPE_SECRETS = 5 KVM_SEV_SNP_PAGE_TYPE_UNMEASURED = 4 KVM_SEV_SNP_PAGE_TYPE_ZERO = 3 KVM_SMI = 44727 +KVM_SREGS2_FLAGS_PDPTRS_VALID = 1 KVM_STATE_NESTED_GUEST_MODE = 1 KVM_STATE_NESTED_RUN_PENDING = 2 KVM_STATE_NESTED_SMM_GUEST_MODE = 1 |
