Sync (copy) the following v4.12 kernel headers to the tooling headers: arch/x86/include/asm/disabled-features.h: arch/x86/include/uapi/asm/kvm.h: arch/powerpc/include/uapi/asm/kvm.h: arch/s390/include/uapi/asm/kvm.h: arch/arm/include/uapi/asm/kvm.h: arch/arm64/include/uapi/asm/kvm.h: - 'struct kvm_sync_regs' got changed in an ABI-incompatible way, fortunately none of the (in-kernel) tooling relied on it - new KVM_DEV calls added arch/x86/include/asm/required-features.h: - 5-level paging hardware ABI detail added arch/x86/include/asm/cpufeatures.h: - new CPU feature added arch/x86/include/uapi/asm/vmx.h: - new VMX exit conditions None of the changes requires fixes in the tooling source code. This addresses the following warnings: Warning: include/uapi/linux/stat.h differs from kernel Warning: arch/x86/include/asm/disabled-features.h differs from kernel Warning: arch/x86/include/asm/required-features.h differs from kernel Warning: arch/x86/include/asm/cpufeatures.h differs from kernel Warning: arch/x86/include/uapi/asm/kvm.h differs from kernel Warning: arch/x86/include/uapi/asm/vmx.h differs from kernel Warning: arch/powerpc/include/uapi/asm/kvm.h differs from kernel Warning: arch/s390/include/uapi/asm/kvm.h differs from kernel Warning: arch/arm/include/uapi/asm/kvm.h differs from kernel Warning: arch/arm64/include/uapi/asm/kvm.h differs from kernel
Unified · Split
| @@ -27,6 +27,8 @@ · 26 unmodified lines | |||
| 27 | #define __KVM_HAVE_IRQ_LINE | 27 | #define __KVM_HAVE_IRQ_LINE |
| 28 | #define __KVM_HAVE_READONLY_MEM | 28 | #define __KVM_HAVE_READONLY_MEM |
| 29 | 29 | ||
| 30 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 | ||
| 31 | |||
| 30 | #define KVM_REG_SIZE(id) \ | 32 | #define KVM_REG_SIZE(id) \ |
| 31 | (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) | 33 | (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) |
| 32 | 34 | ||
| @@ -114,6 +116,8 @@ struct kvm_debug_exit_arch { · 81 unmodified lines | |||
| 114 | }; | 116 | }; |
| 115 | 117 | ||
| 116 | struct kvm_sync_regs { | 118 | struct kvm_sync_regs { |
| 119 | /* Used with KVM_CAP_ARM_USER_IRQ */ | ||
| 120 | __u64 device_irq_level; | ||
| 117 | }; | 121 | }; |
| 118 | 122 | ||
| 119 | struct kvm_arch_memory_slot { | 123 | struct kvm_arch_memory_slot { |
| @@ -192,13 +196,17 @@ struct kvm_arch_memory_slot { · 72 unmodified lines | |||
| 192 | #define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5 | 196 | #define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5 |
| 193 | #define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6 | 197 | #define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6 |
| 194 | #define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7 | 198 | #define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7 |
| 199 | #define KVM_DEV_ARM_VGIC_GRP_ITS_REGS 8 | ||
| 195 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10 | 200 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10 |
| 196 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \ | 201 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \ |
| 197 | (0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT) | 202 | (0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT) |
| 198 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff | 203 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff |
| 199 | #define VGIC_LEVEL_INFO_LINE_LEVEL 0 | 204 | #define VGIC_LEVEL_INFO_LINE_LEVEL 0 |
| 200 | 205 | ||
| 201 | #define KVM_DEV_ARM_VGIC_CTRL_INIT 0 | 206 | #define KVM_DEV_ARM_VGIC_CTRL_INIT 0 |
| 207 | #define KVM_DEV_ARM_ITS_SAVE_TABLES 1 | ||
| 208 | #define KVM_DEV_ARM_ITS_RESTORE_TABLES 2 | ||
| 209 | #define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3 | ||
| 202 | 210 | ||
| 203 | /* KVM_IRQ_LINE irq field index values */ | 211 | /* KVM_IRQ_LINE irq field index values */ |
| 204 | #define KVM_ARM_IRQ_TYPE_SHIFT 24 | 212 | #define KVM_ARM_IRQ_TYPE_SHIFT 24 |
| @@ -39,6 +39,8 @@ · 38 unmodified lines | |||
| 39 | #define __KVM_HAVE_IRQ_LINE | 39 | #define __KVM_HAVE_IRQ_LINE |
| 40 | #define __KVM_HAVE_READONLY_MEM | 40 | #define __KVM_HAVE_READONLY_MEM |
| 41 | 41 | ||
| 42 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 | ||
| 43 | |||
| 42 | #define KVM_REG_SIZE(id) \ | 44 | #define KVM_REG_SIZE(id) \ |
| 43 | (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) | 45 | (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) |
| 44 | 46 | ||
| @@ -143,6 +145,8 @@ struct kvm_debug_exit_arch { · 98 unmodified lines | |||
| 143 | #define KVM_GUESTDBG_USE_HW (1 << 17) | 145 | #define KVM_GUESTDBG_USE_HW (1 << 17) |
| 144 | 146 | ||
| 145 | struct kvm_sync_regs { | 147 | struct kvm_sync_regs { |
| 148 | /* Used with KVM_CAP_ARM_USER_IRQ */ | ||
| 149 | __u64 device_irq_level; | ||
| 146 | }; | 150 | }; |
| 147 | 151 | ||
| 148 | struct kvm_arch_memory_slot { | 152 | struct kvm_arch_memory_slot { |
| @@ -212,13 +216,17 @@ struct kvm_arch_memory_slot { · 63 unmodified lines | |||
| 212 | #define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5 | 216 | #define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5 |
| 213 | #define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6 | 217 | #define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6 |
| 214 | #define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7 | 218 | #define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7 |
| 219 | #define KVM_DEV_ARM_VGIC_GRP_ITS_REGS 8 | ||
| 215 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10 | 220 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10 |
| 216 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \ | 221 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \ |
| 217 | (0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT) | 222 | (0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT) |
| 218 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff | 223 | #define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff |
| 219 | #define VGIC_LEVEL_INFO_LINE_LEVEL 0 | 224 | #define VGIC_LEVEL_INFO_LINE_LEVEL 0 |
| 220 | 225 | ||
| 221 | #define KVM_DEV_ARM_VGIC_CTRL_INIT 0 | 226 | #define KVM_DEV_ARM_VGIC_CTRL_INIT 0 |
| 227 | #define KVM_DEV_ARM_ITS_SAVE_TABLES 1 | ||
| 228 | #define KVM_DEV_ARM_ITS_RESTORE_TABLES 2 | ||
| 229 | #define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3 | ||
| 222 | 230 | ||
| 223 | /* Device Control API on vcpu fd */ | 231 | /* Device Control API on vcpu fd */ |
| 224 | #define KVM_ARM_VCPU_PMU_V3_CTRL 0 | 232 | #define KVM_ARM_VCPU_PMU_V3_CTRL 0 |
| @@ -29,6 +29,9 @@ · 28 unmodified lines | |||
| 29 | #define __KVM_HAVE_IRQ_LINE | 29 | #define __KVM_HAVE_IRQ_LINE |
| 30 | #define __KVM_HAVE_GUEST_DEBUG | 30 | #define __KVM_HAVE_GUEST_DEBUG |
| 31 | 31 | ||
| 32 | /* Not always available, but if it is, this is the correct offset. */ | ||
| 33 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 | ||
| 34 | |||
| 32 | struct kvm_regs { | 35 | struct kvm_regs { |
| 33 | __u64 pc; | 36 | __u64 pc; |
| 34 | __u64 cr; | 37 | __u64 cr; |
| @@ -26,6 +26,8 @@ · 25 unmodified lines | |||
| 26 | #define KVM_DEV_FLIC_ADAPTER_REGISTER 6 | 26 | #define KVM_DEV_FLIC_ADAPTER_REGISTER 6 |
| 27 | #define KVM_DEV_FLIC_ADAPTER_MODIFY 7 | 27 | #define KVM_DEV_FLIC_ADAPTER_MODIFY 7 |
| 28 | #define KVM_DEV_FLIC_CLEAR_IO_IRQ 8 | 28 | #define KVM_DEV_FLIC_CLEAR_IO_IRQ 8 |
| 29 | #define KVM_DEV_FLIC_AISM 9 | ||
| 30 | #define KVM_DEV_FLIC_AIRQ_INJECT 10 | ||
| 29 | /* | 31 | /* |
| 30 | * We can have up to 4*64k pending subchannels + 8 adapter interrupts, | 32 | * We can have up to 4*64k pending subchannels + 8 adapter interrupts, |
| 31 | * as well as up to ASYNC_PF_PER_VCPU*KVM_MAX_VCPUS pfault done interrupts. | 33 | * as well as up to ASYNC_PF_PER_VCPU*KVM_MAX_VCPUS pfault done interrupts. |
| @@ -41,7 +43,14 @@ struct kvm_s390_io_adapter { · 9 unmodified lines | |||
| 41 | __u8 isc; | 43 | __u8 isc; |
| 42 | __u8 maskable; | 44 | __u8 maskable; |
| 43 | __u8 swap; | 45 | __u8 swap; |
| 44 | __u8 pad; | 46 | __u8 flags; |
| 47 | }; | ||
| 48 | |||
| 49 | #define KVM_S390_ADAPTER_SUPPRESSIBLE 0x01 | ||
| 50 | |||
| 51 | struct kvm_s390_ais_req { | ||
| 52 | __u8 isc; | ||
| 53 | __u16 mode; | ||
| 45 | }; | 54 | }; |
| 46 | 55 | ||
| 47 | #define KVM_S390_IO_ADAPTER_MASK 1 | 56 | #define KVM_S390_IO_ADAPTER_MASK 1 |
| @@ -110,6 +119,7 @@ struct kvm_s390_vm_cpu_machine { · 62 unmodified lines | |||
| 110 | #define KVM_S390_VM_CPU_FEAT_CMMA 10 | 119 | #define KVM_S390_VM_CPU_FEAT_CMMA 10 |
| 111 | #define KVM_S390_VM_CPU_FEAT_PFMFI 11 | 120 | #define KVM_S390_VM_CPU_FEAT_PFMFI 11 |
| 112 | #define KVM_S390_VM_CPU_FEAT_SIGPIF 12 | 121 | #define KVM_S390_VM_CPU_FEAT_SIGPIF 12 |
| 122 | #define KVM_S390_VM_CPU_FEAT_KSS 13 | ||
| 113 | struct kvm_s390_vm_cpu_feat { | 123 | struct kvm_s390_vm_cpu_feat { |
| 114 | __u64 feat[16]; | 124 | __u64 feat[16]; |
| 115 | }; | 125 | }; |
| @@ -198,6 +208,10 @@ struct kvm_guest_debug_arch { · 82 unmodified lines | |||
| 198 | #define KVM_SYNC_VRS (1UL << 6) | 208 | #define KVM_SYNC_VRS (1UL << 6) |
| 199 | #define KVM_SYNC_RICCB (1UL << 7) | 209 | #define KVM_SYNC_RICCB (1UL << 7) |
| 200 | #define KVM_SYNC_FPRS (1UL << 8) | 210 | #define KVM_SYNC_FPRS (1UL << 8) |
| 211 | #define KVM_SYNC_GSCB (1UL << 9) | ||
| 212 | /* length and alignment of the sdnx as a power of two */ | ||
| 213 | #define SDNXC 8 | ||
| 214 | #define SDNXL (1UL << SDNXC) | ||
| 201 | /* definition of registers in kvm_run */ | 215 | /* definition of registers in kvm_run */ |
| 202 | struct kvm_sync_regs { | 216 | struct kvm_sync_regs { |
| 203 | __u64 prefix; /* prefix register */ | 217 | __u64 prefix; /* prefix register */ |
| @@ -218,8 +232,16 @@ struct kvm_sync_regs { · 14 unmodified lines | |||
| 218 | }; | 232 | }; |
| 219 | __u8 reserved[512]; /* for future vector expansion */ | 233 | __u8 reserved[512]; /* for future vector expansion */ |
| 220 | __u32 fpc; /* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */ | 234 | __u32 fpc; /* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */ |
| 221 | __u8 padding[52]; /* riccb needs to be 64byte aligned */ | 235 | __u8 padding1[52]; /* riccb needs to be 64byte aligned */ |
| 222 | __u8 riccb[64]; /* runtime instrumentation controls block */ | 236 | __u8 riccb[64]; /* runtime instrumentation controls block */ |
| 237 | __u8 padding2[192]; /* sdnx needs to be 256byte aligned */ | ||
| 238 | union { | ||
| 239 | __u8 sdnx[SDNXL]; /* state description annex */ | ||
| 240 | struct { | ||
| 241 | __u64 reserved1[2]; | ||
| 242 | __u64 gscb[4]; | ||
| 243 | }; | ||
| 244 | }; | ||
| 223 | }; | 245 | }; |
| 224 | 246 | ||
| 225 | #define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1) | 247 | #define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1) |
| @@ -202,6 +202,8 @@ · 201 unmodified lines | |||
| 202 | #define X86_FEATURE_AVX512_4VNNIW (7*32+16) /* AVX-512 Neural Network Instructions */ | 202 | #define X86_FEATURE_AVX512_4VNNIW (7*32+16) /* AVX-512 Neural Network Instructions */ |
| 203 | #define X86_FEATURE_AVX512_4FMAPS (7*32+17) /* AVX-512 Multiply Accumulation Single precision */ | 203 | #define X86_FEATURE_AVX512_4FMAPS (7*32+17) /* AVX-512 Multiply Accumulation Single precision */ |
| 204 | 204 | ||
| 205 | #define X86_FEATURE_MBA ( 7*32+18) /* Memory Bandwidth Allocation */ | ||
| 206 | |||
| 205 | /* Virtualization flags: Linux defined, word 8 */ | 207 | /* Virtualization flags: Linux defined, word 8 */ |
| 206 | #define X86_FEATURE_TPR_SHADOW ( 8*32+ 0) /* Intel TPR Shadow */ | 208 | #define X86_FEATURE_TPR_SHADOW ( 8*32+ 0) /* Intel TPR Shadow */ |
| 207 | #define X86_FEATURE_VNMI ( 8*32+ 1) /* Intel Virtual NMI */ | 209 | #define X86_FEATURE_VNMI ( 8*32+ 1) /* Intel Virtual NMI */ |
| @@ -36,6 +36,12 @@ · 35 unmodified lines | |||
| 36 | # define DISABLE_OSPKE (1<<(X86_FEATURE_OSPKE & 31)) | 36 | # define DISABLE_OSPKE (1<<(X86_FEATURE_OSPKE & 31)) |
| 37 | #endif /* CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS */ | 37 | #endif /* CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS */ |
| 38 | 38 | ||
| 39 | #ifdef CONFIG_X86_5LEVEL | ||
| 40 | # define DISABLE_LA57 0 | ||
| 41 | #else | ||
| 42 | # define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31)) | ||
| 43 | #endif | ||
| 44 | |||
| 39 | /* | 45 | /* |
| 40 | * Make sure to add features to the correct mask | 46 | * Make sure to add features to the correct mask |
| 41 | */ | 47 | */ |
| @@ -55,7 +61,7 @@ · 13 unmodified lines | |||
| 55 | #define DISABLED_MASK13 0 | 61 | #define DISABLED_MASK13 0 |
| 56 | #define DISABLED_MASK14 0 | 62 | #define DISABLED_MASK14 0 |
| 57 | #define DISABLED_MASK15 0 | 63 | #define DISABLED_MASK15 0 |
| 58 | #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE) | 64 | #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57) |
| 59 | #define DISABLED_MASK17 0 | 65 | #define DISABLED_MASK17 0 |
| 60 | #define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 18) | 66 | #define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 18) |
| 61 | 67 | ||
| @@ -53,6 +53,12 @@ · 52 unmodified lines | |||
| 53 | # define NEED_MOVBE 0 | 53 | # define NEED_MOVBE 0 |
| 54 | #endif | 54 | #endif |
| 55 | 55 | ||
| 56 | #ifdef CONFIG_X86_5LEVEL | ||
| 57 | # define NEED_LA57 (1<<(X86_FEATURE_LA57 & 31)) | ||
| 58 | #else | ||
| 59 | # define NEED_LA57 0 | ||
| 60 | #endif | ||
| 61 | |||
| 56 | #ifdef CONFIG_X86_64 | 62 | #ifdef CONFIG_X86_64 |
| 57 | #ifdef CONFIG_PARAVIRT | 63 | #ifdef CONFIG_PARAVIRT |
| 58 | /* Paravirtualized systems may not have PSE or PGE available */ | 64 | /* Paravirtualized systems may not have PSE or PGE available */ |
| @@ -98,7 +104,7 @@ · 39 unmodified lines | |||
| 98 | #define REQUIRED_MASK13 0 | 104 | #define REQUIRED_MASK13 0 |
| 99 | #define REQUIRED_MASK14 0 | 105 | #define REQUIRED_MASK14 0 |
| 100 | #define REQUIRED_MASK15 0 | 106 | #define REQUIRED_MASK15 0 |
| 101 | #define REQUIRED_MASK16 0 | 107 | #define REQUIRED_MASK16 (NEED_LA57) |
| 102 | #define REQUIRED_MASK17 0 | 108 | #define REQUIRED_MASK17 0 |
| 103 | #define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 18) | 109 | #define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 18) |
| 104 | 110 | ||
| @@ -9,6 +9,9 @@ · 8 unmodified lines | |||
| 9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
| 10 | #include <linux/ioctl.h> | 10 | #include <linux/ioctl.h> |
| 11 | 11 | ||
| 12 | #define KVM_PIO_PAGE_OFFSET 1 | ||
| 13 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 2 | ||
| 14 | |||
| 12 | #define DE_VECTOR 0 | 15 | #define DE_VECTOR 0 |
| 13 | #define DB_VECTOR 1 | 16 | #define DB_VECTOR 1 |
| 14 | #define BP_VECTOR 3 | 17 | #define BP_VECTOR 3 |
| @@ -76,7 +76,11 @@ · 75 unmodified lines | |||
| 76 | #define EXIT_REASON_WBINVD 54 | 76 | #define EXIT_REASON_WBINVD 54 |
| 77 | #define EXIT_REASON_XSETBV 55 | 77 | #define EXIT_REASON_XSETBV 55 |
| 78 | #define EXIT_REASON_APIC_WRITE 56 | 78 | #define EXIT_REASON_APIC_WRITE 56 |
| 79 | #define EXIT_REASON_RDRAND 57 | ||
| 79 | #define EXIT_REASON_INVPCID 58 | 80 | #define EXIT_REASON_INVPCID 58 |
| 81 | #define EXIT_REASON_VMFUNC 59 | ||
| 82 | #define EXIT_REASON_ENCLS 60 | ||
| 83 | #define EXIT_REASON_RDSEED 61 | ||
| 80 | #define EXIT_REASON_PML_FULL 62 | 84 | #define EXIT_REASON_PML_FULL 62 |
| 81 | #define EXIT_REASON_XSAVES 63 | 85 | #define EXIT_REASON_XSAVES 63 |
| 82 | #define EXIT_REASON_XRSTORS 64 | 86 | #define EXIT_REASON_XRSTORS 64 |
| @@ -90,6 +94,7 @@ · 7 unmodified lines | |||
| 90 | { EXIT_REASON_TASK_SWITCH, "TASK_SWITCH" }, \ | 94 | { EXIT_REASON_TASK_SWITCH, "TASK_SWITCH" }, \ |
| 91 | { EXIT_REASON_CPUID, "CPUID" }, \ | 95 | { EXIT_REASON_CPUID, "CPUID" }, \ |
| 92 | { EXIT_REASON_HLT, "HLT" }, \ | 96 | { EXIT_REASON_HLT, "HLT" }, \ |
| 97 | { EXIT_REASON_INVD, "INVD" }, \ | ||
| 93 | { EXIT_REASON_INVLPG, "INVLPG" }, \ | 98 | { EXIT_REASON_INVLPG, "INVLPG" }, \ |
| 94 | { EXIT_REASON_RDPMC, "RDPMC" }, \ | 99 | { EXIT_REASON_RDPMC, "RDPMC" }, \ |
| 95 | { EXIT_REASON_RDTSC, "RDTSC" }, \ | 100 | { EXIT_REASON_RDTSC, "RDTSC" }, \ |
| @@ -108,6 +113,8 @@ · 12 unmodified lines | |||
| 108 | { EXIT_REASON_IO_INSTRUCTION, "IO_INSTRUCTION" }, \ | 113 | { EXIT_REASON_IO_INSTRUCTION, "IO_INSTRUCTION" }, \ |
| 109 | { EXIT_REASON_MSR_READ, "MSR_READ" }, \ | 114 | { EXIT_REASON_MSR_READ, "MSR_READ" }, \ |
| 110 | { EXIT_REASON_MSR_WRITE, "MSR_WRITE" }, \ | 115 | { EXIT_REASON_MSR_WRITE, "MSR_WRITE" }, \ |
| 116 | { EXIT_REASON_INVALID_STATE, "INVALID_STATE" }, \ | ||
| 117 | { EXIT_REASON_MSR_LOAD_FAIL, "MSR_LOAD_FAIL" }, \ | ||
| 111 | { EXIT_REASON_MWAIT_INSTRUCTION, "MWAIT_INSTRUCTION" }, \ | 118 | { EXIT_REASON_MWAIT_INSTRUCTION, "MWAIT_INSTRUCTION" }, \ |
| 112 | { EXIT_REASON_MONITOR_TRAP_FLAG, "MONITOR_TRAP_FLAG" }, \ | 119 | { EXIT_REASON_MONITOR_TRAP_FLAG, "MONITOR_TRAP_FLAG" }, \ |
| 113 | { EXIT_REASON_MONITOR_INSTRUCTION, "MONITOR_INSTRUCTION" }, \ | 120 | { EXIT_REASON_MONITOR_INSTRUCTION, "MONITOR_INSTRUCTION" }, \ |
| @@ -115,20 +122,24 @@ · 1 unmodified line | |||
| 115 | { EXIT_REASON_MCE_DURING_VMENTRY, "MCE_DURING_VMENTRY" }, \ | 122 | { EXIT_REASON_MCE_DURING_VMENTRY, "MCE_DURING_VMENTRY" }, \ |
| 116 | { EXIT_REASON_TPR_BELOW_THRESHOLD, "TPR_BELOW_THRESHOLD" }, \ | 123 | { EXIT_REASON_TPR_BELOW_THRESHOLD, "TPR_BELOW_THRESHOLD" }, \ |
| 117 | { EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, \ | 124 | { EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, \ |
| 118 | { EXIT_REASON_GDTR_IDTR, "GDTR_IDTR" }, \ | 125 | { EXIT_REASON_EOI_INDUCED, "EOI_INDUCED" }, \ |
| 119 | { EXIT_REASON_LDTR_TR, "LDTR_TR" }, \ | 126 | { EXIT_REASON_GDTR_IDTR, "GDTR_IDTR" }, \ |
| 127 | { EXIT_REASON_LDTR_TR, "LDTR_TR" }, \ | ||
| 120 | { EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, \ | 128 | { EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, \ |
| 121 | { EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, \ | 129 | { EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, \ |
| 122 | { EXIT_REASON_INVEPT, "INVEPT" }, \ | 130 | { EXIT_REASON_INVEPT, "INVEPT" }, \ |
| 131 | { EXIT_REASON_RDTSCP, "RDTSCP" }, \ | ||
| 123 | { EXIT_REASON_PREEMPTION_TIMER, "PREEMPTION_TIMER" }, \ | 132 | { EXIT_REASON_PREEMPTION_TIMER, "PREEMPTION_TIMER" }, \ |
| 133 | { EXIT_REASON_INVVPID, "INVVPID" }, \ | ||
| 124 | { EXIT_REASON_WBINVD, "WBINVD" }, \ | 134 | { EXIT_REASON_WBINVD, "WBINVD" }, \ |
| 135 | { EXIT_REASON_XSETBV, "XSETBV" }, \ | ||
| 125 | { EXIT_REASON_APIC_WRITE, "APIC_WRITE" }, \ | 136 | { EXIT_REASON_APIC_WRITE, "APIC_WRITE" }, \ |
| 126 | { EXIT_REASON_EOI_INDUCED, "EOI_INDUCED" }, \ | 137 | { EXIT_REASON_RDRAND, "RDRAND" }, \ |
| 127 | { EXIT_REASON_INVALID_STATE, "INVALID_STATE" }, \ | ||
| 128 | { EXIT_REASON_MSR_LOAD_FAIL, "MSR_LOAD_FAIL" }, \ | ||
| 129 | { EXIT_REASON_INVD, "INVD" }, \ | ||
| 130 | { EXIT_REASON_INVVPID, "INVVPID" }, \ | ||
| 131 | { EXIT_REASON_INVPCID, "INVPCID" }, \ | 138 | { EXIT_REASON_INVPCID, "INVPCID" }, \ |
| 139 | { EXIT_REASON_VMFUNC, "VMFUNC" }, \ | ||
| 140 | { EXIT_REASON_ENCLS, "ENCLS" }, \ | ||
| 141 | { EXIT_REASON_RDSEED, "RDSEED" }, \ | ||
| 142 | { EXIT_REASON_PML_FULL, "PML_FULL" }, \ | ||
| 132 | { EXIT_REASON_XSAVES, "XSAVES" }, \ | 143 | { EXIT_REASON_XSAVES, "XSAVES" }, \ |
| 133 | { EXIT_REASON_XRSTORS, "XRSTORS" } | 144 | { EXIT_REASON_XRSTORS, "XRSTORS" } |
| 134 | 145 | ||
| @@ -48,17 +48,13 @@ · 47 unmodified lines | |||
| 48 | * tv_sec holds the number of seconds before (negative) or after (positive) | 48 | * tv_sec holds the number of seconds before (negative) or after (positive) |
| 49 | * 00:00:00 1st January 1970 UTC. | 49 | * 00:00:00 1st January 1970 UTC. |
| 50 | * | 50 | * |
| 51 | * tv_nsec holds a number of nanoseconds before (0..-999,999,999 if tv_sec is | 51 | * tv_nsec holds a number of nanoseconds (0..999,999,999) after the tv_sec time. |
| 52 | * negative) or after (0..999,999,999 if tv_sec is positive) the tv_sec time. | ||
| 53 | * | ||
| 54 | * Note that if both tv_sec and tv_nsec are non-zero, then the two values must | ||
| 55 | * either be both positive or both negative. | ||
| 56 | * | 52 | * |
| 57 | * __reserved is held in case we need a yet finer resolution. | 53 | * __reserved is held in case we need a yet finer resolution. |
| 58 | */ | 54 | */ |
| 59 | struct statx_timestamp { | 55 | struct statx_timestamp { |
| 60 | __s64 tv_sec; | 56 | __s64 tv_sec; |
| 61 | __s32 tv_nsec; | 57 | __u32 tv_nsec; |
| 62 | __s32 __reserved; | 58 | __s32 __reserved; |
| 63 | }; | 59 | }; |
| 64 | 60 | ||