KVM
|
#include <linux/irqchip/arm-gic-v3.h>
#include <asm/kvm_asm.h>
#include <asm/kvm_mmu.h>
#include <hyp/adjust_pc.h>
#include <nvhe/fixed_config.h>
#include "../../sys_regs.h"
Go to the source code of this file.
Macros | |
#define | AARCH32(REG) { SYS_DESC(REG), .access = pvm_access_id_aarch32 } |
#define | AARCH64(REG) { SYS_DESC(REG), .access = pvm_access_id_aarch64 } |
#define | ID_UNALLOCATED(crm, op2) |
#define | RAZ_WI(REG) { SYS_DESC(REG), .access = pvm_access_raz_wi } |
#define | HOST_HANDLED(REG) { SYS_DESC(REG), .access = NULL } |
Functions | |
static void | inject_undef64 (struct kvm_vcpu *vcpu) |
static u64 | get_restricted_features_unsigned (u64 sys_reg_val, u64 restrict_fields) |
static u64 | get_pvm_id_aa64pfr0 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64pfr1 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64zfr0 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64dfr0 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64dfr1 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64afr0 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64afr1 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64isar0 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64isar1 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64isar2 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64mmfr0 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64mmfr1 (const struct kvm_vcpu *vcpu) |
static u64 | get_pvm_id_aa64mmfr2 (const struct kvm_vcpu *vcpu) |
u64 | pvm_read_id_reg (const struct kvm_vcpu *vcpu, u32 id) |
static u64 | read_id_reg (const struct kvm_vcpu *vcpu, struct sys_reg_desc const *r) |
static bool | pvm_access_raz_wi (struct kvm_vcpu *vcpu, struct sys_reg_params *p, const struct sys_reg_desc *r) |
static bool | pvm_access_id_aarch32 (struct kvm_vcpu *vcpu, struct sys_reg_params *p, const struct sys_reg_desc *r) |
static bool | pvm_access_id_aarch64 (struct kvm_vcpu *vcpu, struct sys_reg_params *p, const struct sys_reg_desc *r) |
static bool | pvm_gic_read_sre (struct kvm_vcpu *vcpu, struct sys_reg_params *p, const struct sys_reg_desc *r) |
int | kvm_check_pvm_sysreg_table (void) |
bool | kvm_handle_pvm_sysreg (struct kvm_vcpu *vcpu, u64 *exit_code) |
bool | kvm_handle_pvm_restricted (struct kvm_vcpu *vcpu, u64 *exit_code) |
Variables | |
u64 | id_aa64pfr0_el1_sys_val |
u64 | id_aa64pfr1_el1_sys_val |
u64 | id_aa64isar0_el1_sys_val |
u64 | id_aa64isar1_el1_sys_val |
u64 | id_aa64isar2_el1_sys_val |
u64 | id_aa64mmfr0_el1_sys_val |
u64 | id_aa64mmfr1_el1_sys_val |
u64 | id_aa64mmfr2_el1_sys_val |
u64 | id_aa64smfr0_el1_sys_val |
static const struct sys_reg_desc | pvm_sys_reg_descs [] |
#define AARCH32 | ( | REG | ) | { SYS_DESC(REG), .access = pvm_access_id_aarch32 } |
Definition at line 316 of file sys_regs.c.
#define AARCH64 | ( | REG | ) | { SYS_DESC(REG), .access = pvm_access_id_aarch64 } |
Definition at line 319 of file sys_regs.c.
#define HOST_HANDLED | ( | REG | ) | { SYS_DESC(REG), .access = NULL } |
Definition at line 335 of file sys_regs.c.
#define ID_UNALLOCATED | ( | crm, | |
op2 | |||
) |
Definition at line 326 of file sys_regs.c.
#define RAZ_WI | ( | REG | ) | { SYS_DESC(REG), .access = pvm_access_raz_wi } |
Definition at line 332 of file sys_regs.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 187 of file sys_regs.c.
|
static |
|
static |
|
static |
Definition at line 86 of file sys_regs.c.
|
static |
|
static |
|
static |
|
static |
Definition at line 35 of file sys_regs.c.
int kvm_check_pvm_sysreg_table | ( | void | ) |
Definition at line 456 of file sys_regs.c.
bool kvm_handle_pvm_restricted | ( | struct kvm_vcpu * | vcpu, |
u64 * | exit_code | ||
) |
bool kvm_handle_pvm_sysreg | ( | struct kvm_vcpu * | vcpu, |
u64 * | exit_code | ||
) |
Definition at line 474 of file sys_regs.c.
|
static |
Definition at line 265 of file sys_regs.c.
|
static |
Definition at line 291 of file sys_regs.c.
|
static |
|
static |
Definition at line 304 of file sys_regs.c.
u64 pvm_read_id_reg | ( | const struct kvm_vcpu * | vcpu, |
u32 | id | ||
) |
Definition at line 208 of file sys_regs.c.
|
static |
Definition at line 243 of file sys_regs.c.
u64 id_aa64isar0_el1_sys_val |
Definition at line 23 of file sys_regs.c.
u64 id_aa64isar1_el1_sys_val |
Definition at line 24 of file sys_regs.c.
u64 id_aa64isar2_el1_sys_val |
Definition at line 25 of file sys_regs.c.
u64 id_aa64mmfr0_el1_sys_val |
Definition at line 26 of file sys_regs.c.
u64 id_aa64mmfr1_el1_sys_val |
Definition at line 27 of file sys_regs.c.
u64 id_aa64mmfr2_el1_sys_val |
Definition at line 28 of file sys_regs.c.
u64 id_aa64pfr0_el1_sys_val |
Definition at line 21 of file sys_regs.c.
u64 id_aa64pfr1_el1_sys_val |
Definition at line 22 of file sys_regs.c.
u64 id_aa64smfr0_el1_sys_val |
Definition at line 29 of file sys_regs.c.
|
static |
Definition at line 304 of file sys_regs.c.