We are about to add 52 bit PA guest modes for 4K and 16K pages when the system supports LPA2. In preparation beef up the logic that parses mmfr0 to also tell us what the maximum supported PA size is for each page size. Max PA size = 0 implies the page size is not supported at all. Reviewed-by: Oliver Upton <oliver.upton@linux.dev> Signed-off-by: Ryan Roberts <ryan.roberts@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20231127111737.1897081-12-ryan.roberts@arm.com
22 lines
523 B
C
22 lines
523 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2020, Red Hat, Inc.
|
|
*/
|
|
#include "kvm_util.h"
|
|
|
|
struct guest_mode {
|
|
bool supported;
|
|
bool enabled;
|
|
};
|
|
|
|
extern struct guest_mode guest_modes[NUM_VM_MODES];
|
|
|
|
#define guest_mode_append(mode, enabled) ({ \
|
|
guest_modes[mode] = (struct guest_mode){ (enabled), (enabled) }; \
|
|
})
|
|
|
|
void guest_modes_append_default(void);
|
|
void for_each_guest_mode(void (*func)(enum vm_guest_mode, void *), void *arg);
|
|
void guest_modes_help(void);
|
|
void guest_modes_cmdline(const char *arg);
|