|
enum | trap_behaviour { BEHAVE_HANDLE_LOCALLY = 0
, BEHAVE_FORWARD_READ = BIT(0)
, BEHAVE_FORWARD_WRITE = BIT(1)
, BEHAVE_FORWARD_ANY = BEHAVE_FORWARD_READ | BEHAVE_FORWARD_WRITE
} |
|
enum | cgt_group_id {
__RESERVED__
, CGT_HCR_TID1
, CGT_HCR_TID2
, CGT_HCR_TID3
,
CGT_HCR_IMO
, CGT_HCR_FMO
, CGT_HCR_TIDCP
, CGT_HCR_TACR
,
CGT_HCR_TSW
, CGT_HCR_TPC
, CGT_HCR_TPU
, CGT_HCR_TTLB
,
CGT_HCR_TVM
, CGT_HCR_TDZ
, CGT_HCR_TRVM
, CGT_HCR_TLOR
,
CGT_HCR_TERR
, CGT_HCR_APK
, CGT_HCR_NV
, CGT_HCR_NV_nNV2
,
CGT_HCR_NV1_nNV2
, CGT_HCR_AT
, CGT_HCR_nFIEN
, CGT_HCR_TID4
,
CGT_HCR_TICAB
, CGT_HCR_TOCU
, CGT_HCR_ENSCXT
, CGT_HCR_TTLBIS
,
CGT_HCR_TTLBOS
, CGT_MDCR_TPMCR
, CGT_MDCR_TPM
, CGT_MDCR_TDE
,
CGT_MDCR_TDA
, CGT_MDCR_TDOSA
, CGT_MDCR_TDRA
, CGT_MDCR_E2PB
,
CGT_MDCR_TPMS
, CGT_MDCR_TTRF
, CGT_MDCR_E2TB
, CGT_MDCR_TDCC
,
__MULTIPLE_CONTROL_BITS__
, CGT_HCR_IMO_FMO = __MULTIPLE_CONTROL_BITS__
, CGT_HCR_TID2_TID4
, CGT_HCR_TTLB_TTLBIS
,
CGT_HCR_TTLB_TTLBOS
, CGT_HCR_TVM_TRVM
, CGT_HCR_TPU_TICAB
, CGT_HCR_TPU_TOCU
,
CGT_HCR_NV1_nNV2_ENSCXT
, CGT_MDCR_TPM_TPMCR
, CGT_MDCR_TDE_TDA
, CGT_MDCR_TDE_TDOSA
,
CGT_MDCR_TDE_TDRA
, CGT_MDCR_TDCC_TDE_TDA
, __COMPLEX_CONDITIONS__
, CGT_CNTHCTL_EL1PCTEN = __COMPLEX_CONDITIONS__
,
CGT_CNTHCTL_EL1PTEN
, __NR_CGT_GROUP_IDS__
} |
|
enum | fgt_group_id {
__NO_FGT_GROUP__
, HFGxTR_GROUP
, HDFGRTR_GROUP
, HDFGWTR_GROUP
,
HFGITR_GROUP
, HAFGRTR_GROUP
, __NR_FGT_GROUP_IDS__
} |
|
enum | fg_filter_id { __NO_FGF__
, HCRX_FGTnXS
, __NR_FG_FILTER_IDS__
} |
|
|
static u64 | get_sanitized_cnthctl (struct kvm_vcpu *vcpu) |
|
static enum trap_behaviour | check_cnthctl_el1pcten (struct kvm_vcpu *vcpu) |
|
static enum trap_behaviour | check_cnthctl_el1pten (struct kvm_vcpu *vcpu) |
|
static | DEFINE_XARRAY (sr_forward_xa) |
|
static union trap_config | get_trap_config (u32 sysreg) |
|
static __init void | print_nv_trap_error (const struct encoding_to_trap_config *tc, const char *type, int err) |
|
int __init | populate_nv_trap_config (void) |
|
static enum trap_behaviour | get_behaviour (struct kvm_vcpu *vcpu, const struct trap_bits *tb) |
|
static enum trap_behaviour | __compute_trap_behaviour (struct kvm_vcpu *vcpu, const enum cgt_group_id id, enum trap_behaviour b) |
|
static enum trap_behaviour | compute_trap_behaviour (struct kvm_vcpu *vcpu, const union trap_config tc) |
|
static bool | check_fgt_bit (u64 val, const union trap_config tc) |
|
bool | __check_nv_sr_forward (struct kvm_vcpu *vcpu) |
|
static u64 | kvm_check_illegal_exception_return (struct kvm_vcpu *vcpu, u64 spsr) |
|
void | kvm_emulate_nested_eret (struct kvm_vcpu *vcpu) |
|
static void | kvm_inject_el2_exception (struct kvm_vcpu *vcpu, u64 esr_el2, enum exception_type type) |
|
static int | kvm_inject_nested (struct kvm_vcpu *vcpu, u64 esr_el2, enum exception_type type) |
|
int | kvm_inject_nested_sync (struct kvm_vcpu *vcpu, u64 esr_el2) |
|
int | kvm_inject_nested_irq (struct kvm_vcpu *vcpu) |
|