|
|
@@ -443,6 +443,31 @@ struct kvm_ppc_rmmu_info {
|
|
|
__u32 ap_encodings[8];
|
|
|
};
|
|
|
|
|
|
+/* For KVM_PPC_GET_CPU_CHAR */
|
|
|
+struct kvm_ppc_cpu_char {
|
|
|
+ __u64 character; /* characteristics of the CPU */
|
|
|
+ __u64 behaviour; /* recommended software behaviour */
|
|
|
+ __u64 character_mask; /* valid bits in character */
|
|
|
+ __u64 behaviour_mask; /* valid bits in behaviour */
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * Values for character and character_mask.
|
|
|
+ * These are identical to the values used by H_GET_CPU_CHARACTERISTICS.
|
|
|
+ */
|
|
|
+#define KVM_PPC_CPU_CHAR_SPEC_BAR_ORI31 (1ULL << 63)
|
|
|
+#define KVM_PPC_CPU_CHAR_BCCTRL_SERIALISED (1ULL << 62)
|
|
|
+#define KVM_PPC_CPU_CHAR_L1D_FLUSH_ORI30 (1ULL << 61)
|
|
|
+#define KVM_PPC_CPU_CHAR_L1D_FLUSH_TRIG2 (1ULL << 60)
|
|
|
+#define KVM_PPC_CPU_CHAR_L1D_THREAD_PRIV (1ULL << 59)
|
|
|
+#define KVM_PPC_CPU_CHAR_BR_HINT_HONOURED (1ULL << 58)
|
|
|
+#define KVM_PPC_CPU_CHAR_MTTRIG_THR_RECONF (1ULL << 57)
|
|
|
+#define KVM_PPC_CPU_CHAR_COUNT_CACHE_DIS (1ULL << 56)
|
|
|
+
|
|
|
+#define KVM_PPC_CPU_BEHAV_FAVOUR_SECURITY (1ULL << 63)
|
|
|
+#define KVM_PPC_CPU_BEHAV_L1D_FLUSH_PR (1ULL << 62)
|
|
|
+#define KVM_PPC_CPU_BEHAV_BNDS_CHK_SPEC_BAR (1ULL << 61)
|
|
|
+
|
|
|
/* Per-vcpu XICS interrupt controller state */
|
|
|
#define KVM_REG_PPC_ICP_STATE (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x8c)
|
|
|
|