xref: /linux/tools/testing/selftests/kvm/include/guest_modes.h (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
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