Add IgvmNativeVpContextX64 struct holding the register state (see igvm spec), and the qigvm_x86_load_context() function to load the register state. Wire up using two new functions: qigvm_x86_set_vp_context() is called from igvm file handling code and stores the boot processor context. qigvm_x86_bsp_reset() is called from i386 target cpu reset code and loads the context into the cpu registers. Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Luigi Leonardi <leonardi@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-ID: <20251029105555.2492276-5-kraxel@redhat.com>
29 lines
771 B
C
29 lines
771 B
C
/*
|
|
* QEMU IGVM configuration backend for Confidential Guests
|
|
*
|
|
* Copyright (C) 2023-2024 SUSE
|
|
*
|
|
* Authors:
|
|
* Roy Hopkins <roy.hopkins@randomman.co.uk>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#ifndef BACKENDS_IGVM_H
|
|
#define BACKENDS_IGVM_H
|
|
|
|
#include "system/confidential-guest-support.h"
|
|
#include "system/igvm-cfg.h"
|
|
#include "qapi/error.h"
|
|
|
|
int qigvm_process_file(IgvmCfg *igvm, ConfidentialGuestSupport *cgs,
|
|
bool onlyVpContext, Error **errp);
|
|
|
|
/* x86 native */
|
|
int qigvm_x86_get_mem_map_entry(int index,
|
|
ConfidentialGuestMemoryMapEntry *entry,
|
|
Error **errp);
|
|
int qigvm_x86_set_vp_context(void *data, int index,
|
|
Error **errp);
|
|
|
|
#endif
|