KVM
Macros | Functions
arm_psci.h File Reference
#include <linux/kvm_host.h>
#include <uapi/linux/psci.h>
Include dependency graph for arm_psci.h:

Go to the source code of this file.

Macros

#define KVM_ARM_PSCI_0_1   PSCI_VERSION(0, 1)
 
#define KVM_ARM_PSCI_0_2   PSCI_VERSION(0, 2)
 
#define KVM_ARM_PSCI_1_0   PSCI_VERSION(1, 0)
 
#define KVM_ARM_PSCI_1_1   PSCI_VERSION(1, 1)
 
#define KVM_ARM_PSCI_LATEST   KVM_ARM_PSCI_1_1
 

Functions

static int kvm_psci_version (struct kvm_vcpu *vcpu)
 
int kvm_psci_call (struct kvm_vcpu *vcpu)
 

Macro Definition Documentation

◆ KVM_ARM_PSCI_0_1

#define KVM_ARM_PSCI_0_1   PSCI_VERSION(0, 1)

Definition at line 13 of file arm_psci.h.

◆ KVM_ARM_PSCI_0_2

#define KVM_ARM_PSCI_0_2   PSCI_VERSION(0, 2)

Definition at line 14 of file arm_psci.h.

◆ KVM_ARM_PSCI_1_0

#define KVM_ARM_PSCI_1_0   PSCI_VERSION(1, 0)

Definition at line 15 of file arm_psci.h.

◆ KVM_ARM_PSCI_1_1

#define KVM_ARM_PSCI_1_1   PSCI_VERSION(1, 1)

Definition at line 16 of file arm_psci.h.

◆ KVM_ARM_PSCI_LATEST

#define KVM_ARM_PSCI_LATEST   KVM_ARM_PSCI_1_1

Definition at line 18 of file arm_psci.h.

Function Documentation

◆ kvm_psci_call()

int kvm_psci_call ( struct kvm_vcpu *  vcpu)

◆ kvm_psci_version()

static int kvm_psci_version ( struct kvm_vcpu *  vcpu)
inlinestatic

Definition at line 20 of file arm_psci.h.

21 {
22  /*
23  * Our PSCI implementation stays the same across versions from
24  * v0.2 onward, only adding the few mandatory functions (such
25  * as FEATURES with 1.0) that are required by newer
26  * revisions. It is thus safe to return the latest, unless
27  * userspace has instructed us otherwise.
28  */
29  if (vcpu_has_feature(vcpu, KVM_ARM_VCPU_PSCI_0_2)) {
30  if (vcpu->kvm->arch.psci_version)
31  return vcpu->kvm->arch.psci_version;
32 
33  return KVM_ARM_PSCI_LATEST;
34  }
35 
36  return KVM_ARM_PSCI_0_1;
37 }
#define KVM_ARM_PSCI_0_1
Definition: arm_psci.h:13
#define KVM_ARM_PSCI_LATEST
Definition: arm_psci.h:18