|
@@ -684,30 +684,33 @@ struct kvm_dirty_tlb {
|
|
|
|
|
|
/* Available with KVM_CAP_ONE_REG */
|
|
/* Available with KVM_CAP_ONE_REG */
|
|
|
|
|
|
-#define KVM_ONE_REG_GENERIC 0x0000000000000000ULL
|
|
|
|
|
|
+#define KVM_REG_ARCH_MASK 0xff00000000000000ULL
|
|
|
|
+#define KVM_REG_GENERIC 0x0000000000000000ULL
|
|
|
|
|
|
/*
|
|
/*
|
|
* Architecture specific registers are to be defined in arch headers and
|
|
* Architecture specific registers are to be defined in arch headers and
|
|
* ORed with the arch identifier.
|
|
* ORed with the arch identifier.
|
|
*/
|
|
*/
|
|
-#define KVM_ONE_REG_PPC 0x1000000000000000ULL
|
|
|
|
-#define KVM_ONE_REG_X86 0x2000000000000000ULL
|
|
|
|
-#define KVM_ONE_REG_IA64 0x3000000000000000ULL
|
|
|
|
-#define KVM_ONE_REG_ARM 0x4000000000000000ULL
|
|
|
|
-#define KVM_ONE_REG_S390 0x5000000000000000ULL
|
|
|
|
|
|
+#define KVM_REG_PPC 0x1000000000000000ULL
|
|
|
|
+#define KVM_REG_X86 0x2000000000000000ULL
|
|
|
|
+#define KVM_REG_IA64 0x3000000000000000ULL
|
|
|
|
+#define KVM_REG_ARM 0x4000000000000000ULL
|
|
|
|
+#define KVM_REG_S390 0x5000000000000000ULL
|
|
|
|
+
|
|
|
|
+#define KVM_REG_SIZE_SHIFT 52
|
|
|
|
+#define KVM_REG_SIZE_MASK 0x00f0000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U8 0x0000000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U16 0x0010000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U32 0x0020000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U64 0x0030000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U128 0x0040000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U256 0x0050000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U512 0x0060000000000000ULL
|
|
|
|
+#define KVM_REG_SIZE_U1024 0x0070000000000000ULL
|
|
|
|
|
|
struct kvm_one_reg {
|
|
struct kvm_one_reg {
|
|
__u64 id;
|
|
__u64 id;
|
|
- union {
|
|
|
|
- __u8 reg8;
|
|
|
|
- __u16 reg16;
|
|
|
|
- __u32 reg32;
|
|
|
|
- __u64 reg64;
|
|
|
|
- __u8 reg128[16];
|
|
|
|
- __u8 reg256[32];
|
|
|
|
- __u8 reg512[64];
|
|
|
|
- __u8 reg1024[128];
|
|
|
|
- } u;
|
|
|
|
|
|
+ __u64 addr;
|
|
};
|
|
};
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -850,7 +853,7 @@ struct kvm_s390_ucas_mapping {
|
|
/* Available with KVM_CAP_SW_TLB */
|
|
/* Available with KVM_CAP_SW_TLB */
|
|
#define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb)
|
|
#define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb)
|
|
/* Available with KVM_CAP_ONE_REG */
|
|
/* Available with KVM_CAP_ONE_REG */
|
|
-#define KVM_GET_ONE_REG _IOWR(KVMIO, 0xab, struct kvm_one_reg)
|
|
|
|
|
|
+#define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg)
|
|
#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg)
|
|
#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg)
|
|
|
|
|
|
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|
|
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|