/* * QEMU IGVM interface * * Copyright (C) 2024 SUSE * * Authors: * Roy Hopkins * * SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef QEMU_IGVM_CFG_H #define QEMU_IGVM_CFG_H #include "qom/object.h" typedef struct IgvmCfg { ObjectClass parent_class; /* * filename: Filename that specifies a file that contains the configuration * of the guest in Independent Guest Virtual Machine (IGVM) * format. */ char *filename; } IgvmCfg; typedef struct IgvmCfgClass { ObjectClass parent_class; /* * If an IGVM filename has been specified then process the IGVM file. * Performs a no-op if no filename has been specified. * If onlyVpContext is true then only the IGVM_VHT_VP_CONTEXT entries * in the IGVM file will be processed, allowing information about the * CPU state to be determined before processing the entire file. * * Returns 0 for ok and -1 on error. */ int (*process)(IgvmCfg *cfg, ConfidentialGuestSupport *cgs, bool onlyVpContext, Error **errp); } IgvmCfgClass; #define TYPE_IGVM_CFG "igvm-cfg" OBJECT_DECLARE_TYPE(IgvmCfg, IgvmCfgClass, IGVM_CFG) #endif