1e42ac777SAndrew Jones /* SPDX-License-Identifier: GPL-2.0 */ 2e42ac777SAndrew Jones /* 3e42ac777SAndrew Jones * Copyright (C) 2020, Red Hat, Inc. 4e42ac777SAndrew Jones */ 5e42ac777SAndrew Jones #include "kvm_util.h" 6e42ac777SAndrew Jones 7e42ac777SAndrew Jones struct guest_mode { 8e42ac777SAndrew Jones bool supported; 9e42ac777SAndrew Jones bool enabled; 10e42ac777SAndrew Jones }; 11e42ac777SAndrew Jones 12e42ac777SAndrew Jones extern struct guest_mode guest_modes[NUM_VM_MODES]; 13e42ac777SAndrew Jones 1472324ac5SRyan Roberts #define guest_mode_append(mode, enabled) ({ \ 1572324ac5SRyan Roberts guest_modes[mode] = (struct guest_mode){ (enabled), (enabled) }; \ 16e42ac777SAndrew Jones }) 17e42ac777SAndrew Jones 18e42ac777SAndrew Jones void guest_modes_append_default(void); 19e42ac777SAndrew Jones void for_each_guest_mode(void (*func)(enum vm_guest_mode, void *), void *arg); 20e42ac777SAndrew Jones void guest_modes_help(void); 21e42ac777SAndrew Jones void guest_modes_cmdline(const char *arg); 22