From f2ea010b8180b4160d85c92e312971d0cd8a34d4 Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Tue, 17 Jan 2023 16:30:33 +0100 Subject: Fixup kvm-eviction and refactor kvm-step --- test/kvm.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 test/kvm.h (limited to 'test/kvm.h') diff --git a/test/kvm.h b/test/kvm.h new file mode 100644 index 0000000..6605364 --- /dev/null +++ b/test/kvm.h @@ -0,0 +1,50 @@ +#pragma once + +#include +#include + +enum { WITH, WITHOUT }; + +enum { + GSTATE_UNINIT, + GSTATE_LUPDATE, + GSTATE_LSECRET, + GSTATE_RUNNING, + GSTATE_SUPDATE, + GSTATE_RUPDATE, + GSTATE_SENT +}; + +struct kvm { + int fd, vmfd, vcpufd; + void *mem; + size_t memsize; + struct kvm_run *run; +}; + +const char *sev_fwerr_str(int code); +const char *sev_gstate_str(int code); + +int sev_ioctl(int vmfd, int cmd, void *data, int *error); +void sev_get_measure(int vmfd); +uint8_t sev_guest_state(int vmfd, uint32_t handle); +void sev_dbg_decrypt(int vmfd, void *src, void *dst, size_t size); +uint64_t sev_dbg_decrypt_rip(int vmfd); +void snp_dbg_decrypt(int vmfd, void *src, void *dst, size_t size); +uint64_t snp_dbg_decrypt_rip(int vmfd); + +void kvm_init(struct kvm *kvm, size_t ramsize, + void *code_start, void *code_stop); +void sev_kvm_init(struct kvm *kvm, size_t ramsize, + void *code_start, void *code_stop); +void sev_es_kvm_init(struct kvm *kvm, size_t ramsize, + void *code_start, void *code_stop); +void sev_snp_kvm_init(struct kvm *kvm, size_t ramsize, + void *code_start, void *code_stop); +void kvm_deinit(struct kvm *kvm); + +void kvm_setup_init(void); +void kvm_setup_deinit(void); + +extern int kvm_dev, sev_dev; + -- cgit v1.2.3-71-gd317