162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2020, Red Hat, Inc. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci#include "kvm_util.h" 662306a36Sopenharmony_ci 762306a36Sopenharmony_cistruct guest_mode { 862306a36Sopenharmony_ci bool supported; 962306a36Sopenharmony_ci bool enabled; 1062306a36Sopenharmony_ci}; 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciextern struct guest_mode guest_modes[NUM_VM_MODES]; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define guest_mode_append(mode, supported, enabled) ({ \ 1562306a36Sopenharmony_ci guest_modes[mode] = (struct guest_mode){ supported, enabled }; \ 1662306a36Sopenharmony_ci}) 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_civoid guest_modes_append_default(void); 1962306a36Sopenharmony_civoid for_each_guest_mode(void (*func)(enum vm_guest_mode, void *), void *arg); 2062306a36Sopenharmony_civoid guest_modes_help(void); 2162306a36Sopenharmony_civoid guest_modes_cmdline(const char *arg); 22