diff --git a/src/config.json b/src/config.json index 2894198..7f2b9e1 100644 --- a/src/config.json +++ b/src/config.json @@ -1,13 +1,13 @@ { "cpuids": { "0": { - "name": "Start", + "name": "max-leaf-vendor", "data_type": { "type": "Start" } }, "1": { - "name": "Model", + "name": "version-features", "data_type": { "type": "BitField", "eax": [ @@ -30,1176 +30,4329 @@ "start": 8, "end": 11 } - } - ], - "ebx": [], - "ecx": [ - { - "type": "Flag", - "name": "SSE3", - "bit": 0 - }, - { - "type": "Flag", - "name": "VMX", - "bit": 5 - }, - { - "type": "Flag", - "name": "x2APIC", - "bit": 21 - }, - { - "type": "Flag", - "name": "AESNI", - "bit": 25 - } - ], - "edx": [ - { - "type": "Flag", - "name": "fpu", - "bit": 0 - }, - { - "type": "Flag", - "name": "vme", - "bit": 0 - } - ] - } - }, - "7": { - "name": "Structured Extened Flags", - "data_type": { - "type": "SubLeafBitField", - "leaves": [ - { - "eax": [ - { - "type": "Int", - "name": "Sub-Leaf Count", - "bounds": { - "start": 0, - "end": 31 - } - } - ], - "ebx": [ - { - "type": "Flag", - "name": "HLE", - "bit": 4 - }, - { - "type": "Flag", - "name": "RTM", - "bit": 11 - }, - { - "type": "Flag", - "name": "MPX", - "bit": 14 - }, - { - "type": "Flag", - "name": "PT", - "bit": 25 - } - ], - "ecx": [], - "edx": [ - { - "type": "Flag", - "name": "AVX512 VP2Intersect", - "bit": 8 - }, - { - "type": "Flag", - "name": "RTM Always Abort", - "bit": 11 - }, - { - "type": "Flag", - "name": "RTM Force Abort", - "bit": 13 - }, - { - "type": "Flag", - "name": "Arch_Capabilities", - "bit": 29 - }, - { - "type": "Flag", - "name": "Core_Capabilities", - "bit": 30 - } - ] - }, - { - "eax": [ - { - "type": "Flag", - "name": "AVX VNNI", - "bit": 14 - } - ], - "ebx": [], - "ecx": [], - "edx": [] - }, - { - "eax": [], - "ebx": [], - "ecx": [], - "edx": [ - { - "type": "Flag", - "name": "PSFD", - "bit": 0 - } - ] - } - ] - } - }, - "0xd": { - "name": "Processor Extended State Enumeration", - "data_type": { - "type": "SubLeafBitField", - "leaves": [ - { - "eax": [ - { - "type": "Flag", - "name": "X87 State", - "bit": 0 - }, - { - "type": "Flag", - "name": "SSE State", - "bit": 1 - }, - { - "type": "Flag", - "name": "AVX State", - "bit": 2 - }, - { - "type": "Flag", - "name": "BNDREGS State", - "bit": 3 - }, - { - "type": "Flag", - "name": "BNDCSR State", - "bit": 4 - }, - { - "type": "Flag", - "name": "OPMASK State", - "bit": 5 - }, - { - "type": "Flag", - "name": "ZMM_Hi256 State", - "bit": 6 - }, - { - "type": "Flag", - "name": "Hi16_ZMM State", - "bit": 7 - }, - { - "type": "Flag", - "name": "IA32_XSS State", - "bit": 8 - }, - { - "type": "Flag", - "name": "PKRU State", - "bit": 9 - } - ], - "ebx": [], - "ecx": [], - "edx": [] }, - { - "eax": [ - { - "type": "Flag", - "name": "XSAVEOPT", - "bit": 0 - }, - { - "type": "Flag", - "name": "XSAVEC", - "bit": 1 - }, - { - "type": "Flag", - "name": "XGETBV with ECX=1", - "bit": 2 - }, - { - "type": "Flag", - "name": "XSAVES", - "bit": 3 - }, - { - "type": "Flag", - "name": "Extended Feature Disable(XFD)", - "bit": 4 - } - ], - "ebx": [], - "ecx": [], - "edx": [] - } - ] - } - }, - "0x40000000": { - "name": "Hypervisor ID", - "data_type": { - "type": "Start" - } - }, - "0x40000001": { - "name": "Hypervisor Vendor-Neutral ID", - "data_type": { - "type": "String" - } - }, - "0x40000002": { - "name": "Hypervisor System ID", - "data_type": { - "type": "BitField", - "eax": [ { "type": "Int", - "name": "Build Number", + "name": "processor-type", "bounds": { - "start": 0, - "end": 31 + "start": 12, + "end": 14 } } ], "ebx": [ { "type": "Int", - "name": "Major", + "name": "brand-index", "bounds": { - "start": 16, - "end": 31 + "start": 0, + "end": 8 } }, { "type": "Int", - "name": "Minor", + "name": "clflush-line-size", "bounds": { - "start": 0, - "end": 15 + "start": 8, + "end": 16 } - } - ], - "ecx": [], - "edx": [] - } - }, - "0x40000003": { - "name": "Hypervisor Feature ID", - "data_type": { - "type": "BitField", - "eax": [ + }, { "type": "Int", - "name": "Privilege Mask Low", + "name": "apic-id-space", "bounds": { - "start": 0, - "end": 31 + "start": 16, + "end": 24 } - } - ], - "ebx": [ + }, { "type": "Int", - "name": "Privilege Mask High", + "name": "initial-apic-id", "bounds": { - "start": 0, - "end": 31 + "start": 24, + "end": 32 } } ], "ecx": [ { "type": "Flag", - "name": "Mperf", - "bit": 5 - }, - { - "type": "Flag", - "name": "Shadow Stack", - "bit": 6 - }, - { - "type": "Flag", - "name": "PMU", - "bit": 7 - }, - { - "type": "Flag", - "name": "Trap Intercept", - "bit": 8 - } - ], - "edx": [ - { - "type": "Flag", - "name": "MWAIT(Depricated)", + "name": "pni", "bit": 0 }, { "type": "Flag", - "name": "Debug", + "name": "pclmulqdq", "bit": 1 }, { "type": "Flag", - "name": "PerfMon", + "name": "dtes64", "bit": 2 }, { "type": "Flag", - "name": "Physical partition events", + "name": "monitor", "bit": 3 }, { "type": "Flag", - "name": "Hypercall XMM", + "name": "ds-cpl", "bit": 4 }, { "type": "Flag", - "name": "Guest Idle", + "name": "vmx", "bit": 5 }, { "type": "Flag", - "name": "Hypervisor sleep", + "name": "smx", "bit": 6 }, { "type": "Flag", - "name": "NUMA", + "name": "est", "bit": 7 }, { "type": "Flag", - "name": "Timer Freq.", + "name": "tm2", "bit": 8 }, { "type": "Flag", - "name": "MCEInject", + "name": "ssse3", "bit": 9 }, { "type": "Flag", - "name": "Crash MSR", + "name": "cid", "bit": 10 }, { "type": "Flag", - "name": "Debug MSR", + "name": "debug-interface", "bit": 11 }, { "type": "Flag", - "name": "NPIEP", + "name": "fma", "bit": 12 }, { "type": "Flag", - "name": "DisableHypervisorAvailable", + "name": "cx16", "bit": 13 }, { "type": "Flag", - "name": "ExtendedGvaRangesForFlushVirtualAddressListAvailable", + "name": "xtpr", "bit": 14 }, { "type": "Flag", - "name": "Hypercall XMM Return", + "name": "pdcm", "bit": 15 }, { "type": "Flag", - "name": "SintPollingModeAvailable", + "name": "pcid", "bit": 17 }, { "type": "Flag", - "name": "HypercallMsrLockAvailable", + "name": "dca", "bit": 18 }, { "type": "Flag", - "name": "Direct Synthetic Timers", + "name": "sse4-1", "bit": 19 }, { "type": "Flag", - "name": "PAT VSM", + "name": "sse4-2", "bit": 20 }, { "type": "Flag", - "name": "bindcfgs VSM", + "name": "x2apic", "bit": 21 }, { "type": "Flag", - "name": "Unhalted Timer", - "bit": 23 + "name": "movbe", + "bit": 22 }, { "type": "Flag", - "name": "LBR", + "name": "popcnt", + "bit": 23 + }, + { + "type": "Flag", + "name": "tsc-deadline", + "bit": 24 + }, + { + "type": "Flag", + "name": "aes", + "bit": 25 + }, + { + "type": "Flag", + "name": "xsave", + "bit": 26 + }, + { + "type": "Flag", + "name": "osxsave", + "bit": 27 + }, + { + "type": "Flag", + "name": "avx", + "bit": 28 + }, + { + "type": "Flag", + "name": "f16c", + "bit": 29 + }, + { + "type": "Flag", + "name": "rdrand", + "bit": 30 + }, + { + "type": "Flag", + "name": "hypervisor", + "bit": 31 + } + ], + "edx": [ + { + "type": "Flag", + "name": "fpu", + "bit": 0 + }, + { + "type": "Flag", + "name": "vme", + "bit": 1 + }, + { + "type": "Flag", + "name": "de", + "bit": 2 + }, + { + "type": "Flag", + "name": "pse", + "bit": 3 + }, + { + "type": "Flag", + "name": "tsc", + "bit": 4 + }, + { + "type": "Flag", + "name": "msr", + "bit": 5 + }, + { + "type": "Flag", + "name": "pae", + "bit": 6 + }, + { + "type": "Flag", + "name": "mce", + "bit": 7 + }, + { + "type": "Flag", + "name": "cx8", + "bit": 8 + }, + { + "type": "Flag", + "name": "apic", + "bit": 9 + }, + { + "type": "Flag", + "name": "sep", + "bit": 11 + }, + { + "type": "Flag", + "name": "mtrr", + "bit": 12 + }, + { + "type": "Flag", + "name": "pge", + "bit": 13 + }, + { + "type": "Flag", + "name": "mca", + "bit": 14 + }, + { + "type": "Flag", + "name": "cmov", + "bit": 15 + }, + { + "type": "Flag", + "name": "pat", + "bit": 16 + }, + { + "type": "Flag", + "name": "pse36", + "bit": 17 + }, + { + "type": "Flag", + "name": "pn", + "bit": 18 + }, + { + "type": "Flag", + "name": "clflush", + "bit": 19 + }, + { + "type": "Flag", + "name": "ds", + "bit": 21 + }, + { + "type": "Flag", + "name": "acpi", + "bit": 22 + }, + { + "type": "Flag", + "name": "mmx", + "bit": 23 + }, + { + "type": "Flag", + "name": "fxsr", + "bit": 24 + }, + { + "type": "Flag", + "name": "sse", + "bit": 25 + }, + { + "type": "Flag", + "name": "sse2", "bit": 26 + }, + { + "type": "Flag", + "name": "ss", + "bit": 27 + }, + { + "type": "Flag", + "name": "ht", + "bit": 28 + }, + { + "type": "Flag", + "name": "tm", + "bit": 29 + }, + { + "type": "Flag", + "name": "pbe", + "bit": 31 } ] } }, - "0x40000005": { - "name": "Hypervisor Feature ID", + "6": { + "name": "thermal-power-management", "data_type": { "type": "BitField", "eax": [ + { + "type": "Flag", + "name": "digital-temp-sensor", + "bit": 0 + }, + { + "type": "Flag", + "name": "turbo-boost", + "bit": 1 + }, + { + "type": "Flag", + "name": "arat", + "bit": 2 + }, + { + "type": "Flag", + "name": "power-limit-notify", + "bit": 4 + }, + { + "type": "Flag", + "name": "ext-clock-mod", + "bit": 5 + }, + { + "type": "Flag", + "name": "pkg-therm-mgmt", + "bit": 6 + }, + { + "type": "Flag", + "name": "hwp", + "bit": 7 + }, + { + "type": "Flag", + "name": "hwp-interrupt", + "bit": 8 + }, + { + "type": "Flag", + "name": "hwp-activity-window", + "bit": 9 + }, + { + "type": "Flag", + "name": "hwp-epp", + "bit": 10 + }, + { + "type": "Flag", + "name": "hwp-request-pkg", + "bit": 11 + }, + { + "type": "Flag", + "name": "hdc", + "bit": 13 + }, + { + "type": "Flag", + "name": "turbo-boost-max", + "bit": 14 + }, + { + "type": "Flag", + "name": "hwp-cap", + "bit": 15 + }, + { + "type": "Flag", + "name": "hwp-peci-override", + "bit": 16 + }, + { + "type": "Flag", + "name": "flexible-hwp", + "bit": 17 + }, + { + "type": "Flag", + "name": "hwp-request-fast-access", + "bit": 18 + }, + { + "type": "Flag", + "name": "hw-feedback", + "bit": 19 + }, + { + "type": "Flag", + "name": "hwp-request-ignore-idle", + "bit": 20 + }, + { + "type": "Flag", + "name": "hwp-ctl", + "bit": 22 + }, + { + "type": "Flag", + "name": "thread-director", + "bit": 23 + } + ], + "ebx": [ { "type": "Int", - "name": "Max Virtual Porcessors", + "name": "dts-num-int-thresholds", "bounds": { "start": 0, - "end": 31 + "end": 4 } } ], - "ebx": [ + "ecx": [ + { + "type": "Flag", + "name": "hw-feedback-cap", + "bit": 0 + }, + { + "type": "Flag", + "name": "energy-perf-bias", + "bit": 3 + }, { "type": "Int", - "name": "Max Logical Porcessors", + "name": "hw-feedback-num-classes", "bounds": { - "start": 0, - "end": 31 + "start": 8, + "end": 16 } } ], - "ecx": [ + "edx": [ { "type": "Int", - "name": "Max Pysical Interrupt Vectors", + "name": "hw-feedback-caps", "bounds": { "start": 0, - "end": 31 + "end": 8 + } + }, + { + "type": "Int", + "name": "hw-feedback-table-size", + "bounds": { + "start": 8, + "end": 12 + } + }, + { + "type": "Int", + "name": "hw-feedback-table-index", + "bounds": { + "start": 16, + "end": 32 } } - ], - "edx": [] + ] + } + }, + "7": { + "name": "structured-extended-features", + "data_type": { + "type": "SubLeafBitField", + "leaves": [ + { + "eax": [ + { + "type": "Int", + "name": "max-subleaf", + "bounds": { + "start": 0, + "end": 31 + } + } + ], + "ebx": [ + { + "type": "Flag", + "name": "fsgsbase", + "bit": 0 + }, + { + "type": "Flag", + "name": "tsc-adjust", + "bit": 1 + }, + { + "type": "Flag", + "name": "sgx", + "bit": 2 + }, + { + "type": "Flag", + "name": "bmi1", + "bit": 3 + }, + { + "type": "Flag", + "name": "hle", + "bit": 4 + }, + { + "type": "Flag", + "name": "avx2", + "bit": 5 + }, + { + "type": "Flag", + "name": "fdp-excptn-only", + "bit": 6 + }, + { + "type": "Flag", + "name": "smep", + "bit": 7 + }, + { + "type": "Flag", + "name": "bmi2", + "bit": 8 + }, + { + "type": "Flag", + "name": "erms", + "bit": 9 + }, + { + "type": "Flag", + "name": "invpcid", + "bit": 10 + }, + { + "type": "Flag", + "name": "rtm", + "bit": 11 + }, + { + "type": "Flag", + "name": "rdt-m", + "bit": 12 + }, + { + "type": "Flag", + "name": "zero-fcs-fds", + "bit": 13 + }, + { + "type": "Flag", + "name": "mpx", + "bit": 14 + }, + { + "type": "Flag", + "name": "rdt-a", + "bit": 15 + }, + { + "type": "Flag", + "name": "avx512f", + "bit": 16 + }, + { + "type": "Flag", + "name": "avx512dq", + "bit": 17 + }, + { + "type": "Flag", + "name": "rdseed", + "bit": 18 + }, + { + "type": "Flag", + "name": "adx", + "bit": 19 + }, + { + "type": "Flag", + "name": "smap", + "bit": 20 + }, + { + "type": "Flag", + "name": "avx512ifma", + "bit": 21 + }, + { + "type": "Flag", + "name": "clflushopt", + "bit": 23 + }, + { + "type": "Flag", + "name": "clwb", + "bit": 24 + }, + { + "type": "Flag", + "name": "intel-pt", + "bit": 25 + }, + { + "type": "Flag", + "name": "avx512pf", + "bit": 26 + }, + { + "type": "Flag", + "name": "avx512er", + "bit": 27 + }, + { + "type": "Flag", + "name": "avx512cd", + "bit": 28 + }, + { + "type": "Flag", + "name": "sha-ni", + "bit": 29 + }, + { + "type": "Flag", + "name": "avx512bw", + "bit": 30 + }, + { + "type": "Flag", + "name": "avx512vl", + "bit": 31 + } + ], + "ecx": [ + { + "type": "Flag", + "name": "prefetchwt1", + "bit": 0 + }, + { + "type": "Flag", + "name": "avx512vbmi", + "bit": 1 + }, + { + "type": "Flag", + "name": "umip", + "bit": 2 + }, + { + "type": "Flag", + "name": "pku", + "bit": 3 + }, + { + "type": "Flag", + "name": "ospke", + "bit": 4 + }, + { + "type": "Flag", + "name": "waitpkg", + "bit": 5 + }, + { + "type": "Flag", + "name": "avx512vbmi2", + "bit": 6 + }, + { + "type": "Flag", + "name": "cet-ss", + "bit": 7 + }, + { + "type": "Flag", + "name": "gfni", + "bit": 8 + }, + { + "type": "Flag", + "name": "vaes", + "bit": 9 + }, + { + "type": "Flag", + "name": "vpclmulqdq", + "bit": 10 + }, + { + "type": "Flag", + "name": "avx512vnni", + "bit": 11 + }, + { + "type": "Flag", + "name": "avx512bitalg", + "bit": 12 + }, + { + "type": "Flag", + "name": "tme-en", + "bit": 13 + }, + { + "type": "Flag", + "name": "avx512-vpopcntdq", + "bit": 14 + }, + { + "type": "Flag", + "name": "la57", + "bit": 16 + }, + { + "type": "Int", + "name": "mpx-mawau", + "bounds": { + "start": 17, + "end": 22 + } + }, + { + "type": "Flag", + "name": "rdpid", + "bit": 22 + }, + { + "type": "Flag", + "name": "key-locker", + "bit": 23 + }, + { + "type": "Flag", + "name": "bus-lock-detect", + "bit": 24 + }, + { + "type": "Flag", + "name": "cldemote", + "bit": 25 + }, + { + "type": "Flag", + "name": "movdiri", + "bit": 27 + }, + { + "type": "Flag", + "name": "movdir64b", + "bit": 28 + }, + { + "type": "Flag", + "name": "enqcmd", + "bit": 29 + }, + { + "type": "Flag", + "name": "sgxlc", + "bit": 30 + }, + { + "type": "Flag", + "name": "pks", + "bit": 31 + } + ], + "edx": [ + { + "type": "Flag", + "name": "sgx-keys", + "bit": 1 + }, + { + "type": "Flag", + "name": "avx512-4vnniw", + "bit": 2 + }, + { + "type": "Flag", + "name": "avx512-4fmaps", + "bit": 3 + }, + { + "type": "Flag", + "name": "fsrm", + "bit": 4 + }, + { + "type": "Flag", + "name": "uintr", + "bit": 5 + }, + { + "type": "Flag", + "name": "avx512-vp2intersect", + "bit": 8 + }, + { + "type": "Flag", + "name": "mcu-opt-ctrl", + "bit": 9 + }, + { + "type": "Flag", + "name": "md-clear", + "bit": 10 + }, + { + "type": "Flag", + "name": "rtm-always-abort", + "bit": 11 + }, + { + "type": "Flag", + "name": "rtm-force-abort", + "bit": 13 + }, + { + "type": "Flag", + "name": "serialize", + "bit": 14 + }, + { + "type": "Flag", + "name": "hybrid", + "bit": 15 + }, + { + "type": "Flag", + "name": "tsx-ldtrk", + "bit": 16 + }, + { + "type": "Flag", + "name": "pconfig", + "bit": 18 + }, + { + "type": "Flag", + "name": "arch-lbr", + "bit": 19 + }, + { + "type": "Flag", + "name": "cet-ibt", + "bit": 20 + }, + { + "type": "Flag", + "name": "amx-bf16", + "bit": 22 + }, + { + "type": "Flag", + "name": "avx512-fp16", + "bit": 23 + }, + { + "type": "Flag", + "name": "amx-tile", + "bit": 24 + }, + { + "type": "Flag", + "name": "amx-int8", + "bit": 25 + }, + { + "type": "Flag", + "name": "spec-ctrl", + "bit": 26 + }, + { + "type": "Flag", + "name": "stibp", + "bit": 27 + }, + { + "type": "Flag", + "name": "flush-l1d", + "bit": 28 + }, + { + "type": "Flag", + "name": "arch-capabilities", + "bit": 29 + }, + { + "type": "Flag", + "name": "core-capability", + "bit": 30 + }, + { + "type": "Flag", + "name": "ssbd", + "bit": 31 + } + ] + }, + { + "eax": [ + { + "type": "Flag", + "name": "sha512", + "bit": 0 + }, + { + "type": "Flag", + "name": "sm3", + "bit": 1 + }, + { + "type": "Flag", + "name": "sm4", + "bit": 2 + }, + { + "type": "Flag", + "name": "avx-vnni", + "bit": 4 + }, + { + "type": "Flag", + "name": "avx512-bf16", + "bit": 5 + }, + { + "type": "Flag", + "name": "lass", + "bit": 6 + }, + { + "type": "Flag", + "name": "cmpccxadd", + "bit": 7 + }, + { + "type": "Flag", + "name": "arch-perfmon-ext", + "bit": 8 + }, + { + "type": "Flag", + "name": "fzrm", + "bit": 10 + }, + { + "type": "Flag", + "name": "fsrs", + "bit": 11 + }, + { + "type": "Flag", + "name": "fsrc", + "bit": 12 + }, + { + "type": "Flag", + "name": "fred", + "bit": 17 + }, + { + "type": "Flag", + "name": "lkgs", + "bit": 18 + }, + { + "type": "Flag", + "name": "wrmsrns", + "bit": 19 + }, + { + "type": "Flag", + "name": "nmi-src", + "bit": 20 + }, + { + "type": "Flag", + "name": "amx-fp16", + "bit": 21 + }, + { + "type": "Flag", + "name": "hreset", + "bit": 22 + }, + { + "type": "Flag", + "name": "avx-ifma", + "bit": 23 + }, + { + "type": "Flag", + "name": "lam", + "bit": 26 + }, + { + "type": "Flag", + "name": "msrlist", + "bit": 27 + }, + { + "type": "Flag", + "name": "invd-disable-post-bios-done", + "bit": 30 + } + ], + "ebx": [ + { + "type": "Flag", + "name": "ppin", + "bit": 0 + }, + { + "type": "Flag", + "name": "pbndkb", + "bit": 1 + }, + { + "type": "Flag", + "name": "cpuidmaxval-lim-rmv", + "bit": 3 + } + ], + "ecx": [ + { + "type": "Flag", + "name": "rdt-m-asym", + "bit": 0 + }, + { + "type": "Flag", + "name": "rdt-a-asym", + "bit": 1 + }, + { + "type": "Flag", + "name": "msr-imm", + "bit": 5 + } + ], + "edx": [ + { + "type": "Flag", + "name": "avx-vnni-int8", + "bit": 4 + }, + { + "type": "Flag", + "name": "avx-ne-convert", + "bit": 5 + }, + { + "type": "Flag", + "name": "amx-complex", + "bit": 8 + }, + { + "type": "Flag", + "name": "avx-vnni-int16", + "bit": 10 + }, + { + "type": "Flag", + "name": "prefetchiti", + "bit": 14 + }, + { + "type": "Flag", + "name": "user-msr", + "bit": 15 + }, + { + "type": "Flag", + "name": "uiret-uif", + "bit": 17 + }, + { + "type": "Flag", + "name": "cet-sss", + "bit": 18 + }, + { + "type": "Flag", + "name": "avx10", + "bit": 19 + }, + { + "type": "Flag", + "name": "sec-tee-attestation", + "bit": 22 + }, + { + "type": "Flag", + "name": "mwait", + "bit": 23 + }, + { + "type": "Flag", + "name": "slsm", + "bit": 24 + } + ] + }, + { + "eax": [], + "ebx": [], + "ecx": [], + "edx": [ + { + "type": "Flag", + "name": "intel-psfd", + "bit": 0 + }, + { + "type": "Flag", + "name": "ipred-ctrl", + "bit": 1 + }, + { + "type": "Flag", + "name": "rrsba-ctrl", + "bit": 2 + }, + { + "type": "Flag", + "name": "ddpd-u", + "bit": 3 + }, + { + "type": "Flag", + "name": "bhi-ctrl", + "bit": 4 + }, + { + "type": "Flag", + "name": "mcdt-no", + "bit": 5 + }, + { + "type": "Flag", + "name": "uc-lock-disable", + "bit": 6 + }, + { + "type": "Flag", + "name": "monitor-mitg-no", + "bit": 7 + } + ] + } + ] + } + }, + "0xd": { + "name": "extended-state", + "data_type": { + "type": "SubLeafBitField", + "leaves": [ + { + "eax": [ + { + "type": "Flag", + "name": "x87-state", + "bit": 0 + }, + { + "type": "Flag", + "name": "sse-state", + "bit": 1 + }, + { + "type": "Flag", + "name": "avx-state", + "bit": 2 + }, + { + "type": "Flag", + "name": "bndregs-state", + "bit": 3 + }, + { + "type": "Flag", + "name": "bndcsr-state", + "bit": 4 + }, + { + "type": "Flag", + "name": "opmask-state", + "bit": 5 + }, + { + "type": "Flag", + "name": "zmm-hi256-state", + "bit": 6 + }, + { + "type": "Flag", + "name": "hi16-zmm-state", + "bit": 7 + }, + { + "type": "Flag", + "name": "ia32-xss-state", + "bit": 8 + }, + { + "type": "Flag", + "name": "pkru-state", + "bit": 9 + } + ], + "ebx": [], + "ecx": [], + "edx": [] + }, + { + "eax": [ + { + "type": "Flag", + "name": "xsaveopt", + "bit": 0 + }, + { + "type": "Flag", + "name": "xsavec", + "bit": 1 + }, + { + "type": "Flag", + "name": "xgetbv1", + "bit": 2 + }, + { + "type": "Flag", + "name": "xsaves", + "bit": 3 + }, + { + "type": "Flag", + "name": "xfd", + "bit": 4 + } + ], + "ebx": [], + "ecx": [], + "edx": [] + } + ] + } + }, + "0x12": { + "name": "sgx-capability", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Flag", + "name": "sgx1", + "bit": 0 + }, + { + "type": "Flag", + "name": "sgx2", + "bit": 1 + }, + { + "type": "Flag", + "name": "everifyreport2", + "bit": 7 + }, + { + "type": "Flag", + "name": "eupdatesvn", + "bit": 10 + }, + { + "type": "Flag", + "name": "sgx-edeccssa", + "bit": 11 + } + ], + "ebx": [ + { + "type": "Flag", + "name": "sgx-exinfo", + "bit": 0 + } + ], + "ecx": [], + "edx": [ + { + "type": "Int", + "name": "max-enclave-size-not64", + "bounds": { + "start": 0, + "end": 8 + } + }, + { + "type": "Int", + "name": "max-enclave-size-64", + "bounds": { + "start": 8, + "end": 16 + } + } + ] + } + }, + "0x14": { + "name": "processor-trace", + "data_type": { + "type": "SubLeafBitField", + "leaves": [ + { + "eax": [ + { + "type": "Int", + "name": "max-subleaf", + "bounds": { + "start": 0, + "end": 32 + } + } + ], + "ebx": [ + { + "type": "Flag", + "name": "cr3-filter", + "bit": 0 + }, + { + "type": "Flag", + "name": "cyc-acc", + "bit": 1 + }, + { + "type": "Flag", + "name": "ip-filter", + "bit": 2 + }, + { + "type": "Flag", + "name": "mtc", + "bit": 3 + }, + { + "type": "Flag", + "name": "ptwrite", + "bit": 4 + }, + { + "type": "Flag", + "name": "pwr-evt-trace", + "bit": 5 + }, + { + "type": "Flag", + "name": "pmi-preserve", + "bit": 6 + }, + { + "type": "Flag", + "name": "event-trace", + "bit": 7 + }, + { + "type": "Flag", + "name": "tnt-dis", + "bit": 8 + }, + { + "type": "Flag", + "name": "pttt", + "bit": 9 + } + ], + "ecx": [ + { + "type": "Flag", + "name": "topaout", + "bit": 0 + }, + { + "type": "Flag", + "name": "mentry", + "bit": 1 + }, + { + "type": "Flag", + "name": "sngl-rng-out", + "bit": 2 + }, + { + "type": "Flag", + "name": "trace-transport-subsystem", + "bit": 3 + }, + { + "type": "Flag", + "name": "intel-pt-lip", + "bit": 31 + } + ], + "edx": [] + }, + { + "eax": [ + { + "type": "Int", + "name": "rangecnt", + "bounds": { + "start": 0, + "end": 3 + } + }, + { + "type": "Int", + "name": "trigger-cfg-cnt", + "bounds": { + "start": 8, + "end": 11 + } + }, + { + "type": "Int", + "name": "mtc-rate", + "bounds": { + "start": 16, + "end": 32 + } + } + ], + "ebx": [ + { + "type": "Int", + "name": "cyc-thresholds", + "bounds": { + "start": 0, + "end": 16 + } + }, + { + "type": "Int", + "name": "psb-rate", + "bounds": { + "start": 16, + "end": 32 + } + } + ], + "ecx": [ + { + "type": "Flag", + "name": "icnt", + "bit": 0 + }, + { + "type": "Flag", + "name": "trigger-pause", + "bit": 1 + }, + { + "type": "Flag", + "name": "trigger-dr-match", + "bit": 15 + } + ], + "edx": [] + } + ] + } + }, + "0x1e": { + "name": "tmul-information", + "data_type": { + "type": "BitField", + "eax": [], + "ebx": [ + { + "type": "Int", + "name": "tmul-maxk", + "bounds": { + "start": 0, + "end": 8 + } + }, + { + "type": "Int", + "name": "tmul-maxn", + "bounds": { + "start": 8, + "end": 24 + } + } + ], + "ecx": [], + "edx": [] + } + }, + "0x24": { + "name": "converged-vector-isa", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Int", + "name": "max-subleaf", + "bounds": { + "start": 0, + "end": 32 + } + } + ], + "ebx": [ + { + "type": "Int", + "name": "avx10-version", + "bounds": { + "start": 0, + "end": 8 + } + }, + { + "type": "Flag", + "name": "avx10-128", + "bit": 16 + }, + { + "type": "Flag", + "name": "avx10-256", + "bit": 17 + }, + { + "type": "Flag", + "name": "avx10-512", + "bit": 18 + } + ], + "ecx": [], + "edx": [] + } + }, + "0x40000000": { + "name": "hypervisor-max-leaf-vendor", + "data_type": { + "type": "Start" + } + }, + "0x40000001": { + "name": "hypervisor-interface", + "data_type": { + "type": "String" + } + }, + "0x40000002": { + "name": "hypervisor-version", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Int", + "name": "build-number", + "bounds": { + "start": 0, + "end": 31 + } + } + ], + "ebx": [ + { + "type": "Int", + "name": "major", + "bounds": { + "start": 16, + "end": 31 + } + }, + { + "type": "Int", + "name": "minor", + "bounds": { + "start": 0, + "end": 15 + } + } + ], + "ecx": [], + "edx": [] + } + }, + "0x40000003": { + "name": "hypervisor-features", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Int", + "name": "privilege-mask-low", + "bounds": { + "start": 0, + "end": 31 + } + } + ], + "ebx": [ + { + "type": "Int", + "name": "privilege-mask-high", + "bounds": { + "start": 0, + "end": 31 + } + } + ], + "ecx": [ + { + "type": "Flag", + "name": "mperf", + "bit": 5 + }, + { + "type": "Flag", + "name": "shadow-stack", + "bit": 6 + }, + { + "type": "Flag", + "name": "pmu", + "bit": 7 + }, + { + "type": "Flag", + "name": "trap-intercept", + "bit": 8 + } + ], + "edx": [ + { + "type": "Flag", + "name": "mwait-deprecated", + "bit": 0 + }, + { + "type": "Flag", + "name": "debug", + "bit": 1 + }, + { + "type": "Flag", + "name": "perfmon", + "bit": 2 + }, + { + "type": "Flag", + "name": "physical-partition-events", + "bit": 3 + }, + { + "type": "Flag", + "name": "hypercall-xmm", + "bit": 4 + }, + { + "type": "Flag", + "name": "guest-idle", + "bit": 5 + }, + { + "type": "Flag", + "name": "hypervisor-sleep", + "bit": 6 + }, + { + "type": "Flag", + "name": "numa", + "bit": 7 + }, + { + "type": "Flag", + "name": "timer-freq", + "bit": 8 + }, + { + "type": "Flag", + "name": "mce-inject", + "bit": 9 + }, + { + "type": "Flag", + "name": "crash-msr", + "bit": 10 + }, + { + "type": "Flag", + "name": "debug-msr", + "bit": 11 + }, + { + "type": "Flag", + "name": "npiep", + "bit": 12 + }, + { + "type": "Flag", + "name": "disable-hypervisor-available", + "bit": 13 + }, + { + "type": "Flag", + "name": "extended-gva-ranges-for-flush-virtual-address-list-available", + "bit": 14 + }, + { + "type": "Flag", + "name": "hypercall-xmm-return", + "bit": 15 + }, + { + "type": "Flag", + "name": "sint-polling-mode-available", + "bit": 17 + }, + { + "type": "Flag", + "name": "hypercall-msr-lock-available", + "bit": 18 + }, + { + "type": "Flag", + "name": "direct-synthetic-timers", + "bit": 19 + }, + { + "type": "Flag", + "name": "pat-vsm", + "bit": 20 + }, + { + "type": "Flag", + "name": "bindcfgs-vsm", + "bit": 21 + }, + { + "type": "Flag", + "name": "unhalted-timer", + "bit": 23 + }, + { + "type": "Flag", + "name": "lbr", + "bit": 26 + } + ] + } + }, + "0x40000005": { + "name": "hypervisor-limits", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Int", + "name": "max-virtual-processors", + "bounds": { + "start": 0, + "end": 31 + } + } + ], + "ebx": [ + { + "type": "Int", + "name": "max-logical-processors", + "bounds": { + "start": 0, + "end": 31 + } + } + ], + "ecx": [ + { + "type": "Int", + "name": "max-physical-interrupt-vectors", + "bounds": { + "start": 0, + "end": 31 + } + } + ], + "edx": [] + } + }, + "0x80000001": { + "name": "extended-features", + "data_type": { + "type": "BitField", + "eax": [], + "ebx": [ + { + "type": "Int", + "name": "brand-id", + "bounds": { + "start": 0, + "end": 16 + } + }, + { + "type": "Int", + "name": "pkg-type", + "bounds": { + "start": 28, + "end": 32 + } + } + ], + "ecx": [ + { + "type": "Flag", + "name": "lahf-lm", + "bit": 0 + }, + { + "type": "Flag", + "name": "cmp-legacy", + "bit": 1 + }, + { + "type": "Flag", + "name": "svm", + "bit": 2 + }, + { + "type": "Flag", + "name": "extapic", + "bit": 3 + }, + { + "type": "Flag", + "name": "cr8legacy", + "bit": 4 + }, + { + "type": "Flag", + "name": "abm", + "bit": 5 + }, + { + "type": "Flag", + "name": "sse4a", + "bit": 6 + }, + { + "type": "Flag", + "name": "misalignsse", + "bit": 7 + }, + { + "type": "Flag", + "name": "3dnowprefetch", + "bit": 8 + }, + { + "type": "Flag", + "name": "osvw", + "bit": 9 + }, + { + "type": "Flag", + "name": "ibs", + "bit": 10 + }, + { + "type": "Flag", + "name": "xop", + "bit": 11 + }, + { + "type": "Flag", + "name": "skinit", + "bit": 12 + }, + { + "type": "Flag", + "name": "wdt", + "bit": 13 + }, + { + "type": "Flag", + "name": "lwp", + "bit": 15 + }, + { + "type": "Flag", + "name": "fma4", + "bit": 16 + }, + { + "type": "Flag", + "name": "tce", + "bit": 17 + }, + { + "type": "Flag", + "name": "tbm", + "bit": 21 + }, + { + "type": "Flag", + "name": "topoext", + "bit": 22 + }, + { + "type": "Flag", + "name": "perfctr-core", + "bit": 23 + }, + { + "type": "Flag", + "name": "perfctr-nb", + "bit": 24 + }, + { + "type": "Flag", + "name": "data-bkpt-ext", + "bit": 26 + }, + { + "type": "Flag", + "name": "perf-tsc", + "bit": 27 + }, + { + "type": "Flag", + "name": "perfctr-llc", + "bit": 28 + }, + { + "type": "Flag", + "name": "monitorx", + "bit": 29 + }, + { + "type": "Flag", + "name": "addr-mask-ext", + "bit": 30 + } + ], + "edx": [ + { + "type": "Flag", + "name": "fpu", + "bit": 0 + }, + { + "type": "Flag", + "name": "vme", + "bit": 1 + }, + { + "type": "Flag", + "name": "de", + "bit": 2 + }, + { + "type": "Flag", + "name": "pse", + "bit": 3 + }, + { + "type": "Flag", + "name": "tsc", + "bit": 4 + }, + { + "type": "Flag", + "name": "msr", + "bit": 5 + }, + { + "type": "Flag", + "name": "pae", + "bit": 6 + }, + { + "type": "Flag", + "name": "mce", + "bit": 7 + }, + { + "type": "Flag", + "name": "cx8", + "bit": 8 + }, + { + "type": "Flag", + "name": "apic", + "bit": 9 + }, + { + "type": "Flag", + "name": "syscall", + "bit": 11 + }, + { + "type": "Flag", + "name": "mtrr", + "bit": 12 + }, + { + "type": "Flag", + "name": "pge", + "bit": 13 + }, + { + "type": "Flag", + "name": "mca", + "bit": 14 + }, + { + "type": "Flag", + "name": "cmov", + "bit": 15 + }, + { + "type": "Flag", + "name": "pat", + "bit": 16 + }, + { + "type": "Flag", + "name": "pse36", + "bit": 17 + }, + { + "type": "Flag", + "name": "nx", + "bit": 20 + }, + { + "type": "Flag", + "name": "mmxext", + "bit": 22 + }, + { + "type": "Flag", + "name": "mmx", + "bit": 23 + }, + { + "type": "Flag", + "name": "fxsr", + "bit": 24 + }, + { + "type": "Flag", + "name": "fxsr-opt", + "bit": 25 + }, + { + "type": "Flag", + "name": "pdpe1gb", + "bit": 26 + }, + { + "type": "Flag", + "name": "rdtscp", + "bit": 27 + }, + { + "type": "Flag", + "name": "lm", + "bit": 29 + }, + { + "type": "Flag", + "name": "3dnowext", + "bit": 30 + }, + { + "type": "Flag", + "name": "3dnow", + "bit": 31 + } + ] + } + }, + "0x80000002": { + "name": "brand-string-1", + "data_type": { + "type": "String" + } + }, + "0x80000003": { + "name": "brand-string-2", + "data_type": { + "type": "String" + } + }, + "0x80000004": { + "name": "brand-string-3", + "data_type": { + "type": "String" + } + }, + "0x80000007": { + "name": "power-management-ras", + "data_type": { + "type": "BitField", + "eax": [], + "ebx": [ + { + "type": "Flag", + "name": "overflow-recov", + "bit": 0 + }, + { + "type": "Flag", + "name": "succor", + "bit": 1 + }, + { + "type": "Flag", + "name": "hwa", + "bit": 2 + }, + { + "type": "Flag", + "name": "scalable-mca", + "bit": 3 + }, + { + "type": "Flag", + "name": "mca-query-msr", + "bit": 15 + } + ], + "ecx": [ + { + "type": "Int", + "name": "cpu-pwr-sample-time-ratio", + "bounds": { + "start": 0, + "end": 32 + } + } + ], + "edx": [ + { + "type": "Flag", + "name": "ts", + "bit": 0 + }, + { + "type": "Flag", + "name": "fid", + "bit": 1 + }, + { + "type": "Flag", + "name": "vid", + "bit": 2 + }, + { + "type": "Flag", + "name": "ttp", + "bit": 3 + }, + { + "type": "Flag", + "name": "tm", + "bit": 4 + }, + { + "type": "Flag", + "name": "100mhz-steps", + "bit": 6 + }, + { + "type": "Flag", + "name": "hw-pstate", + "bit": 7 + }, + { + "type": "Flag", + "name": "invtsc", + "bit": 8 + }, + { + "type": "Flag", + "name": "cpb", + "bit": 9 + }, + { + "type": "Flag", + "name": "eff-freq-ro", + "bit": 10 + }, + { + "type": "Flag", + "name": "proc-feedback-interface", + "bit": 11 + }, + { + "type": "Flag", + "name": "proc-power-reporting", + "bit": 12 + }, + { + "type": "Flag", + "name": "cppc-perf-priority", + "bit": 16 + } + ] + } + }, + "0x80000008": { + "name": "address-sizes-features", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Int", + "name": "phys-addr-size", + "bounds": { + "start": 0, + "end": 8 + } + }, + { + "type": "Int", + "name": "lin-addr-size", + "bounds": { + "start": 8, + "end": 16 + } + }, + { + "type": "Int", + "name": "guest-phys-addr-size", + "bounds": { + "start": 16, + "end": 24 + } + } + ], + "ebx": [ + { + "type": "Flag", + "name": "clzero", + "bit": 0 + }, + { + "type": "Flag", + "name": "inst-ret-cnt-msr", + "bit": 1 + }, + { + "type": "Flag", + "name": "xsaveerptr", + "bit": 2 + }, + { + "type": "Flag", + "name": "invlpgb", + "bit": 3 + }, + { + "type": "Flag", + "name": "rdpru", + "bit": 4 + }, + { + "type": "Flag", + "name": "be", + "bit": 6 + }, + { + "type": "Flag", + "name": "mcommit", + "bit": 8 + }, + { + "type": "Flag", + "name": "wbnoinvd", + "bit": 9 + }, + { + "type": "Flag", + "name": "ibpb", + "bit": 12 + }, + { + "type": "Flag", + "name": "int-wbinvd", + "bit": 13 + }, + { + "type": "Flag", + "name": "ibrs", + "bit": 14 + }, + { + "type": "Flag", + "name": "amd-stibp", + "bit": 15 + }, + { + "type": "Flag", + "name": "ibrs-always-on", + "bit": 16 + }, + { + "type": "Flag", + "name": "stibp-always-on", + "bit": 17 + }, + { + "type": "Flag", + "name": "ibrs-preferred", + "bit": 18 + }, + { + "type": "Flag", + "name": "ibrs-same-mode", + "bit": 19 + }, + { + "type": "Flag", + "name": "efer-lmsle-unsupported", + "bit": 20 + }, + { + "type": "Flag", + "name": "invlpgb-nested-pages", + "bit": 21 + }, + { + "type": "Flag", + "name": "amd-ssbd", + "bit": 24 + }, + { + "type": "Flag", + "name": "virt-ssbd", + "bit": 25 + }, + { + "type": "Flag", + "name": "amd-no-ssb", + "bit": 26 + }, + { + "type": "Flag", + "name": "cppc", + "bit": 27 + }, + { + "type": "Flag", + "name": "amd-psfd", + "bit": 28 + }, + { + "type": "Flag", + "name": "btc-no", + "bit": 29 + }, + { + "type": "Flag", + "name": "ibpb-ret", + "bit": 30 + } + ], + "ecx": [ + { + "type": "Int", + "name": "nc", + "bounds": { + "start": 0, + "end": 8 + } + }, + { + "type": "Int", + "name": "apic-id-size", + "bounds": { + "start": 12, + "end": 16 + } + }, + { + "type": "Int", + "name": "perf-tsc-size", + "bounds": { + "start": 16, + "end": 18 + } + } + ], + "edx": [ + { + "type": "Int", + "name": "invlpgb-count-max", + "bounds": { + "start": 0, + "end": 16 + } + }, + { + "type": "Int", + "name": "max-rdpru-id", + "bounds": { + "start": 16, + "end": 32 + } + } + ] + } + }, + "0x8000000a": { + "name": "svm-features", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Int", + "name": "svm-rev", + "bounds": { + "start": 0, + "end": 8 + } + } + ], + "ebx": [ + { + "type": "Int", + "name": "nasid", + "bounds": { + "start": 0, + "end": 32 + } + } + ], + "ecx": [ + { + "type": "Flag", + "name": "pml", + "bit": 4 + }, + { + "type": "Flag", + "name": "enhanced-tlbi", + "bit": 5 + }, + { + "type": "Flag", + "name": "x2avic-ext", + "bit": 6 + } + ], + "edx": [ + { + "type": "Flag", + "name": "npt", + "bit": 0 + }, + { + "type": "Flag", + "name": "lbrv", + "bit": 1 + }, + { + "type": "Flag", + "name": "svm-lock", + "bit": 2 + }, + { + "type": "Flag", + "name": "nrip-save", + "bit": 3 + }, + { + "type": "Flag", + "name": "tsc-scale", + "bit": 4 + }, + { + "type": "Flag", + "name": "vmcb-clean", + "bit": 5 + }, + { + "type": "Flag", + "name": "flushbyasid", + "bit": 6 + }, + { + "type": "Flag", + "name": "decodeassists", + "bit": 7 + }, + { + "type": "Flag", + "name": "pmc-virt", + "bit": 8 + }, + { + "type": "Flag", + "name": "pause-filter", + "bit": 10 + }, + { + "type": "Flag", + "name": "pfthreshold", + "bit": 12 + }, + { + "type": "Flag", + "name": "avic", + "bit": 13 + }, + { + "type": "Flag", + "name": "v-vmsave-vmload", + "bit": 15 + }, + { + "type": "Flag", + "name": "vgif", + "bit": 16 + }, + { + "type": "Flag", + "name": "gmet", + "bit": 17 + }, + { + "type": "Flag", + "name": "x2avic", + "bit": 18 + }, + { + "type": "Flag", + "name": "sss-check", + "bit": 19 + }, + { + "type": "Flag", + "name": "spec-ctrl", + "bit": 20 + }, + { + "type": "Flag", + "name": "rogpt", + "bit": 21 + }, + { + "type": "Flag", + "name": "host-mce-override", + "bit": 23 + }, + { + "type": "Flag", + "name": "tlbi-ctl", + "bit": 24 + }, + { + "type": "Flag", + "name": "vnmi", + "bit": 25 + }, + { + "type": "Flag", + "name": "ibs-virt", + "bit": 26 + }, + { + "type": "Flag", + "name": "ext-lvt-avic-access-chg", + "bit": 27 + }, + { + "type": "Flag", + "name": "svme-addr-chk", + "bit": 28 + }, + { + "type": "Flag", + "name": "bus-lock-threshold", + "bit": 29 + }, + { + "type": "Flag", + "name": "idle-hlt-intercept", + "bit": 30 + } + ] + } + }, + "0x80000021": { + "name": "extended-features-2", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Flag", + "name": "no-nested-data-bp", + "bit": 0 + }, + { + "type": "Flag", + "name": "fs-gs-base-ns", + "bit": 1 + }, + { + "type": "Flag", + "name": "lfence-always-serializing", + "bit": 2 + }, + { + "type": "Flag", + "name": "smm-pg-cfg-lock", + "bit": 3 + }, + { + "type": "Flag", + "name": "verw-clear", + "bit": 5 + }, + { + "type": "Flag", + "name": "null-sel-clr-base", + "bit": 6 + }, + { + "type": "Flag", + "name": "upper-address-ignore", + "bit": 7 + }, + { + "type": "Flag", + "name": "auto-ibrs", + "bit": 8 + }, + { + "type": "Flag", + "name": "no-smm-ctl-msr", + "bit": 9 + }, + { + "type": "Flag", + "name": "fast-short-rep-stosb", + "bit": 10 + }, + { + "type": "Flag", + "name": "fast-short-repe-cmpsb", + "bit": 11 + }, + { + "type": "Flag", + "name": "precise-retire-pmc2", + "bit": 12 + }, + { + "type": "Flag", + "name": "prefetch-ctl-msr", + "bit": 13 + }, + { + "type": "Flag", + "name": "l2-tlb-size-x32", + "bit": 14 + }, + { + "type": "Flag", + "name": "amd-ermsb", + "bit": 15 + }, + { + "type": "Flag", + "name": "opcode-0f017-reclaim", + "bit": 16 + }, + { + "type": "Flag", + "name": "cpuid-user-dis", + "bit": 17 + }, + { + "type": "Flag", + "name": "epsf", + "bit": 18 + }, + { + "type": "Flag", + "name": "fast-rep-scasb", + "bit": 19 + }, + { + "type": "Flag", + "name": "prefetchi", + "bit": 20 + }, + { + "type": "Flag", + "name": "fp512-downgrade", + "bit": 21 + }, + { + "type": "Flag", + "name": "avx512-bmm", + "bit": 23 + }, + { + "type": "Flag", + "name": "eraps", + "bit": 24 + }, + { + "type": "Flag", + "name": "sbpb", + "bit": 27 + }, + { + "type": "Flag", + "name": "ibpb-brtype", + "bit": 28 + }, + { + "type": "Flag", + "name": "srso-no", + "bit": 29 + }, + { + "type": "Flag", + "name": "srso-user-kernel-no", + "bit": 30 + }, + { + "type": "Flag", + "name": "srso-msr-fix", + "bit": 31 + } + ], + "ebx": [ + { + "type": "Int", + "name": "microcode-patch-size", + "bounds": { + "start": 0, + "end": 16 + } + }, + { + "type": "Int", + "name": "rap-size", + "bounds": { + "start": 16, + "end": 24 + } + } + ], + "ecx": [ + { + "type": "Flag", + "name": "tsa-sq-no", + "bit": 1 + }, + { + "type": "Flag", + "name": "tsa-l1-no", + "bit": 2 + }, + { + "type": "Flag", + "name": "verw-clear", + "bit": 5 + }, + { + "type": "Flag", + "name": "btb-ctx-isolation", + "bit": 8 + } + ], + "edx": [] + } + }, + "0x80000022": { + "name": "extended-perfmon-debug", + "data_type": { + "type": "BitField", + "eax": [ + { + "type": "Flag", + "name": "perfmon-v2", + "bit": 0 + }, + { + "type": "Flag", + "name": "lbr-stack", + "bit": 1 + }, + { + "type": "Flag", + "name": "lbr-and-pmc-freeze", + "bit": 2 + } + ], + "ebx": [ + { + "type": "Int", + "name": "num-perf-ctr-core", + "bounds": { + "start": 0, + "end": 4 + } + }, + { + "type": "Int", + "name": "lbr-stack-size", + "bounds": { + "start": 4, + "end": 10 + } + }, + { + "type": "Int", + "name": "num-perf-ctr-nb", + "bounds": { + "start": 10, + "end": 16 + } + } + ], + "ecx": [], + "edx": [] } + } + }, + "msrs": [ + { + "name": "Platform ID", + "address": "0x17", + "fields": [ + { + "type": "Int", + "name": "platform-id", + "bounds": { + "start": 50, + "end": 52 + } + } + ] + }, + { + "name": "Core_Capabilities", + "address": "0xcf", + "fields": [ + { + "type": "Flag", + "name": "split-lock-detect", + "bit": 5 + } + ] + }, + { + "name": "Arch Capabilities", + "address": "0x10a", + "fields": [ + { + "type": "Flag", + "name": "rdctl-no", + "bit": 0 + }, + { + "type": "Flag", + "name": "ibrs-all", + "bit": 1 + }, + { + "type": "Flag", + "name": "rsba", + "bit": 2 + }, + { + "type": "Flag", + "name": "skip-l1dfl-vmentry", + "bit": 3 + }, + { + "type": "Flag", + "name": "ssb-no", + "bit": 4 + }, + { + "type": "Flag", + "name": "mds-no", + "bit": 5 + }, + { + "type": "Flag", + "name": "pschange-mc-no", + "bit": 6 + }, + { + "type": "Flag", + "name": "tsx-ctrl", + "bit": 7 + }, + { + "type": "Flag", + "name": "taa-no", + "bit": 8 + }, + { + "type": "Flag", + "name": "mcu-control", + "bit": 9 + }, + { + "type": "Flag", + "name": "misc-package-ctls", + "bit": 10 + }, + { + "type": "Flag", + "name": "energy-filtering-ctl", + "bit": 11 + }, + { + "type": "Flag", + "name": "doitm", + "bit": 12 + }, + { + "type": "Flag", + "name": "sbdr-ssdp-no", + "bit": 13 + }, + { + "type": "Flag", + "name": "fbsdp-no", + "bit": 14 + }, + { + "type": "Flag", + "name": "psdp-no", + "bit": 15 + }, + { + "type": "Flag", + "name": "mcu-enumeration", + "bit": 16 + }, + { + "type": "Flag", + "name": "fb-clear", + "bit": 17 + }, + { + "type": "Flag", + "name": "fb-clear-ctrl", + "bit": 18 + }, + { + "type": "Flag", + "name": "rrsba", + "bit": 19 + }, + { + "type": "Flag", + "name": "bhi-no", + "bit": 20 + }, + { + "type": "Flag", + "name": "xapic-disable-status", + "bit": 21 + }, + { + "type": "Flag", + "name": "mcu-extended-service", + "bit": 22 + }, + { + "type": "Flag", + "name": "overclocking-status", + "bit": 23 + }, + { + "type": "Flag", + "name": "pbrsb-no", + "bit": 24 + }, + { + "type": "Flag", + "name": "gds-ctrl", + "bit": 25 + }, + { + "type": "Flag", + "name": "gds-no", + "bit": 26 + }, + { + "type": "Flag", + "name": "rfds-no", + "bit": 27 + }, + { + "type": "Flag", + "name": "rfds-clear", + "bit": 28 + }, + { + "type": "Flag", + "name": "ign-umonitor-support", + "bit": 29 + }, + { + "type": "Flag", + "name": "mon-umon-mitg-support", + "bit": 30 + }, + { + "type": "Flag", + "name": "pbopt-support", + "bit": 32 + }, + { + "type": "Flag", + "name": "its-no", + "bit": 62 + } + ] + }, + { + "name": "Microcode Update Option Control", + "address": "0x123", + "fields": [ + { + "type": "Flag", + "name": "rngds-mitg-dis", + "bit": 0 + }, + { + "type": "Flag", + "name": "rtm-allow", + "bit": 1 + }, + { + "type": "Flag", + "name": "rtm-locked", + "bit": 2 + }, + { + "type": "Flag", + "name": "fb-clear-dis", + "bit": 3 + }, + { + "type": "Flag", + "name": "gds-mitg-dis", + "bit": 4 + }, + { + "type": "Flag", + "name": "gds-mitg-lock", + "bit": 5 + }, + { + "type": "Flag", + "name": "ign-umonitor", + "bit": 6 + }, + { + "type": "Flag", + "name": "mon-umon-mitg", + "bit": 7 + } + ] + }, + { + "name": "Perf_Capabilities", + "address": "0x345", + "fields": [ + { + "type": "Int", + "name": "lbr-fmt", + "bounds": { + "start": 0, + "end": 5 + } + }, + { + "type": "Flag", + "name": "pebs-trap", + "bit": 6 + }, + { + "type": "Flag", + "name": "pebs-arch-regs", + "bit": 7 + }, + { + "type": "Int", + "name": "pebs-fmt", + "bounds": { + "start": 8, + "end": 11 + } + }, + { + "type": "Flag", + "name": "smm-freeze", + "bit": 12 + }, + { + "type": "Flag", + "name": "full-width-write", + "bit": 13 + }, + { + "type": "Flag", + "name": "pebs-baseline", + "bit": 14 + }, + { + "type": "Flag", + "name": "metrics-avail", + "bit": 15 + }, + { + "type": "Flag", + "name": "pebs-pt-avail", + "bit": 16 + } + ] }, - "0x80000002": { - "name": "Brand String 1", - "data_type": { - "type": "String" - } + { + "name": "Basic VMX", + "address": "0x480", + "fields": [ + { + "type": "Int", + "name": "vmcs-revision", + "bounds": { + "start": 0, + "end": 30 + } + }, + { + "type": "Int", + "name": "vmxon-size", + "bounds": { + "start": 32, + "end": 44 + } + }, + { + "type": "Flag", + "name": "vmx-32bit-phys-addr", + "bit": 48 + }, + { + "type": "Flag", + "name": "vmx-dual-monitor", + "bit": 49 + }, + { + "type": "Int", + "name": "vmcs-memory-type", + "bounds": { + "start": 50, + "end": 54 + } + }, + { + "type": "Flag", + "name": "vmx-ins-outs", + "bit": 54 + }, + { + "type": "Flag", + "name": "vmx-true-ctls", + "bit": 55 + }, + { + "type": "Flag", + "name": "vmx-any-errcode", + "bit": 56 + }, + { + "type": "Flag", + "name": "vmx-nested-exception", + "bit": 58 + } + ] }, - "0x80000003": { - "name": "Brand String 2", - "data_type": { - "type": "String" - } + { + "name": "VMX: Pin-based Ctls", + "address": "0x481", + "fields": [ + { + "type": "Flag", + "name": "vmx-intr-exit", + "bit": 32 + }, + { + "type": "Flag", + "name": "vmx-nmi-exit", + "bit": 35 + }, + { + "type": "Flag", + "name": "vmx-vnmi", + "bit": 37 + }, + { + "type": "Flag", + "name": "vmx-preemption-timer", + "bit": 38 + }, + { + "type": "Flag", + "name": "vmx-posted-intr", + "bit": 39 + } + ] }, - "0x80000004": { - "name": "Brand String 3", - "data_type": { - "type": "String" - } + { + "name": "VMX: True Pin-based Ctls", + "address": "0x48d", + "fields": [ + { + "type": "Flag", + "name": "vmx-intr-exit", + "bit": 32 + }, + { + "type": "Flag", + "name": "vmx-nmi-exit", + "bit": 35 + }, + { + "type": "Flag", + "name": "vmx-vnmi", + "bit": 37 + }, + { + "type": "Flag", + "name": "vmx-preemption-timer", + "bit": 38 + }, + { + "type": "Flag", + "name": "vmx-posted-intr", + "bit": 39 + } + ] }, - "0x80000008": { - "name": "Address Sizes and Extended Features", - "data_type": { - "type": "BitField", - "eax": [], - "ebx": [ - { - "type": "Flag", - "name": "WBNOINVD", - "bit": 9 - } - ], - "ecx": [], - "edx": [] - } - } - }, - "msrs": [ { - "name": "Platform ID", - "address": "0x17", + "name": "VMX: Proccessor Based Ctls - Most", + "address": "0x482", + "fields": [ + { + "type": "Flag", + "name": "vmx-vintr-pending", + "bit": 34 + }, + { + "type": "Flag", + "name": "vmx-tsc-offset", + "bit": 35 + }, + { + "type": "Flag", + "name": "vmx-hlt-exit", + "bit": 39 + }, + { + "type": "Flag", + "name": "vmx-invlpg-exit", + "bit": 41 + }, + { + "type": "Flag", + "name": "vmx-mwait-exit", + "bit": 42 + }, + { + "type": "Flag", + "name": "vmx-rdpmc-exit", + "bit": 43 + }, + { + "type": "Flag", + "name": "vmx-rdtsc-exit", + "bit": 44 + }, + { + "type": "Flag", + "name": "vmx-cr3-load-exit", + "bit": 47 + }, + { + "type": "Flag", + "name": "vmx-cr3-store-exit", + "bit": 48 + }, + { + "type": "Flag", + "name": "vmx-tertiary-ctls", + "bit": 49 + }, + { + "type": "Flag", + "name": "vmx-cr8-load-exit", + "bit": 51 + }, + { + "type": "Flag", + "name": "vmx-cr8-store-exit", + "bit": 52 + }, + { + "type": "Flag", + "name": "vmx-flexpriority", + "bit": 53 + }, + { + "type": "Flag", + "name": "vmx-vnmi-pending", + "bit": 54 + }, + { + "type": "Flag", + "name": "vmx-movdr-exit", + "bit": 55 + }, + { + "type": "Flag", + "name": "vmx-io-exit", + "bit": 56 + }, + { + "type": "Flag", + "name": "vmx-io-bitmap", + "bit": 57 + }, + { + "type": "Flag", + "name": "vmx-mtf", + "bit": 59 + }, + { + "type": "Flag", + "name": "vmx-msr-bitmap", + "bit": 60 + }, + { + "type": "Flag", + "name": "vmx-monitor-exit", + "bit": 61 + }, + { + "type": "Flag", + "name": "vmx-pause-exit", + "bit": 62 + }, + { + "type": "Flag", + "name": "vmx-secondary-ctls", + "bit": 63 + } + ] + }, + { + "name": "VMX: Proccessor Based Ctls - All", + "address": "0x48e", "fields": [ { - "type": "Int", - "name": "Platform_ID\"", - "bounds": { - "start": 50, - "end": 52 - } + "type": "Flag", + "name": "vmx-vintr-pending", + "bit": 34 + }, + { + "type": "Flag", + "name": "vmx-tsc-offset", + "bit": 35 + }, + { + "type": "Flag", + "name": "vmx-hlt-exit", + "bit": 39 + }, + { + "type": "Flag", + "name": "vmx-invlpg-exit", + "bit": 41 + }, + { + "type": "Flag", + "name": "vmx-mwait-exit", + "bit": 42 + }, + { + "type": "Flag", + "name": "vmx-rdpmc-exit", + "bit": 43 + }, + { + "type": "Flag", + "name": "vmx-rdtsc-exit", + "bit": 44 + }, + { + "type": "Flag", + "name": "vmx-cr3-load-exit", + "bit": 47 + }, + { + "type": "Flag", + "name": "vmx-cr3-store-exit", + "bit": 48 + }, + { + "type": "Flag", + "name": "vmx-tertiary-ctls", + "bit": 49 + }, + { + "type": "Flag", + "name": "vmx-cr8-load-exit", + "bit": 51 + }, + { + "type": "Flag", + "name": "vmx-cr8-store-exit", + "bit": 52 + }, + { + "type": "Flag", + "name": "vmx-flexpriority", + "bit": 53 + }, + { + "type": "Flag", + "name": "vmx-vnmi-pending", + "bit": 54 + }, + { + "type": "Flag", + "name": "vmx-movdr-exit", + "bit": 55 + }, + { + "type": "Flag", + "name": "vmx-io-exit", + "bit": 56 + }, + { + "type": "Flag", + "name": "vmx-io-bitmap", + "bit": 57 + }, + { + "type": "Flag", + "name": "vmx-mtf", + "bit": 59 + }, + { + "type": "Flag", + "name": "vmx-msr-bitmap", + "bit": 60 + }, + { + "type": "Flag", + "name": "vmx-monitor-exit", + "bit": 61 + }, + { + "type": "Flag", + "name": "vmx-pause-exit", + "bit": 62 + }, + { + "type": "Flag", + "name": "vmx-secondary-ctls", + "bit": 63 } ] }, { - "name": "Core_Capabilities", - "address": "0xcf", + "name": "VMX: Proccessor Based Ctls 2", + "address": "0x48b", "fields": [ { "type": "Flag", - "name": "SPLIT_LOCK_DISABLE_SUPPORTED", - "bit": 5 + "name": "vmx-apicv-xapic", + "bit": 32 + }, + { + "type": "Flag", + "name": "vmx-ept", + "bit": 33 + }, + { + "type": "Flag", + "name": "vmx-desc-exit", + "bit": 34 + }, + { + "type": "Flag", + "name": "vmx-rdtscp-exit", + "bit": 35 + }, + { + "type": "Flag", + "name": "vmx-apicv-x2apic", + "bit": 36 + }, + { + "type": "Flag", + "name": "vmx-vpid", + "bit": 37 + }, + { + "type": "Flag", + "name": "vmx-wbinvd-exit", + "bit": 38 + }, + { + "type": "Flag", + "name": "vmx-unrestricted-guest", + "bit": 39 + }, + { + "type": "Flag", + "name": "vmx-apicv-register", + "bit": 40 + }, + { + "type": "Flag", + "name": "vmx-apicv-vid", + "bit": 41 + }, + { + "type": "Flag", + "name": "vmx-ple", + "bit": 42 + }, + { + "type": "Flag", + "name": "vmx-rdrand-exit", + "bit": 43 + }, + { + "type": "Flag", + "name": "vmx-invpcid-exit", + "bit": 44 + }, + { + "type": "Flag", + "name": "vmx-vmfunc", + "bit": 45 + }, + { + "type": "Flag", + "name": "vmx-shadow-vmcs", + "bit": 46 + }, + { + "type": "Flag", + "name": "vmx-encls-exit", + "bit": 47 + }, + { + "type": "Flag", + "name": "vmx-rdseed-exit", + "bit": 48 + }, + { + "type": "Flag", + "name": "vmx-pml", + "bit": 49 + }, + { + "type": "Flag", + "name": "vmx-ept-violation-ve", + "bit": 50 + }, + { + "type": "Flag", + "name": "vmx-pt-conceal", + "bit": 51 + }, + { + "type": "Flag", + "name": "vmx-xsaves", + "bit": 52 + }, + { + "type": "Flag", + "name": "vmx-mbec", + "bit": 54 + }, + { + "type": "Flag", + "name": "vmx-spp", + "bit": 55 + }, + { + "type": "Flag", + "name": "vmx-pt-guest-pa", + "bit": 56 + }, + { + "type": "Flag", + "name": "vmx-tsc-scaling", + "bit": 57 + }, + { + "type": "Flag", + "name": "vmx-enable-user-wait-pause", + "bit": 58 + }, + { + "type": "Flag", + "name": "vmx-pconfig", + "bit": 59 + }, + { + "type": "Flag", + "name": "vmx-enclv-exit", + "bit": 60 } ] }, { - "name": "Arch Capabilities", - "address": "0x10a", + "name": "VMX: Proccessor Based Ctls 3", + "address": "0x492", "fields": [ { "type": "Flag", - "name": "RDCL_NO", + "name": "vmx-loadiwkey-exit", "bit": 0 }, { "type": "Flag", - "name": "IBRS_ALL", + "name": "vmx-hlat", "bit": 1 }, { "type": "Flag", - "name": "RSBA", + "name": "vmx-ept-paging-write", "bit": 2 }, { "type": "Flag", - "name": "SKIP_L1DF_VMENTRY", + "name": "vmx-guest-paging-verify", "bit": 3 + } + ] + }, + { + "name": "VMX: Exit Ctls", + "address": "0x483", + "fields": [ + { + "type": "Flag", + "name": "vmx-exit-save-debugctl", + "bit": 34 }, { "type": "Flag", - "name": "SSB_NO", - "bit": 4 + "name": "vmx-exit-host-addr-space-size", + "bit": 41 }, { "type": "Flag", - "name": "MDS_NO", - "bit": 5 + "name": "vmx-exit-load-perf-global-ctrl", + "bit": 44 }, { "type": "Flag", - "name": "IF_PSCHANGE_MC_NO", - "bit": 6 + "name": "vmx-exit-ack-intr", + "bit": 47 }, { "type": "Flag", - "name": "TSX_CTRL", - "bit": 7 + "name": "vmx-exit-save-pat", + "bit": 50 }, { "type": "Flag", - "name": "TAA_NO", - "bit": 8 + "name": "vmx-exit-load-pat", + "bit": 51 }, { "type": "Flag", - "name": "GDS_CTRL", - "bit": 25 + "name": "vmx-exit-save-efer", + "bit": 52 }, { "type": "Flag", - "name": "GDS_NO", - "bit": 26 - } - ] - }, - { - "name": "Microcode Update Option Control", - "address": "0x123", - "fields": [ + "name": "vmx-exit-load-efer", + "bit": 53 + }, { "type": "Flag", - "name": "GDS_MITG_DIS", - "bit": 4 + "name": "vmx-exit-save-preemption-timer", + "bit": 54 }, { "type": "Flag", - "name": "GDS_MITG_LOCK", - "bit": 5 + "name": "vmx-exit-clear-bndcfgs", + "bit": 55 + }, + { + "type": "Flag", + "name": "vmx-exit-pt-conceal", + "bit": 56 + }, + { + "type": "Flag", + "name": "vmx-exit-clear-rtit-ctl", + "bit": 57 + }, + { + "type": "Flag", + "name": "vmx-exit-clear-lbr-ctl", + "bit": 58 + }, + { + "type": "Flag", + "name": "vmx-exit-clear-uinv", + "bit": 59 + }, + { + "type": "Flag", + "name": "vmx-exit-save-cet", + "bit": 60 + }, + { + "type": "Flag", + "name": "vmx-exit-load-pkrs", + "bit": 61 + }, + { + "type": "Flag", + "name": "vmx-exit-save-perf-global-ctl", + "bit": 62 + }, + { + "type": "Flag", + "name": "vmx-exit-secondary-ctls", + "bit": 63 } ] }, { - "name": "Perf_Capabilities", - "address": "0x345", + "name": "VMX: True Exit Ctls", + "address": "0x48f", "fields": [ { - "type": "Int", - "name": "LBR_FMT", - "bounds": { - "start": 0, - "end": 5 - } + "type": "Flag", + "name": "vmx-exit-save-debugctl", + "bit": 34 }, { "type": "Flag", - "name": "PEBSTrap", - "bit": 6 + "name": "vmx-exit-host-addr-space-size", + "bit": 41 }, { "type": "Flag", - "name": "PEBSArchRegs", - "bit": 7 + "name": "vmx-exit-load-perf-global-ctrl", + "bit": 44 }, { - "type": "Int", - "name": "PEBS_FMT", - "bounds": { - "start": 8, - "end": 11 - } + "type": "Flag", + "name": "vmx-exit-ack-intr", + "bit": 47 }, { "type": "Flag", - "name": "SMM_FREEZE", - "bit": 12 + "name": "vmx-exit-save-pat", + "bit": 50 }, { "type": "Flag", - "name": "FULL_WRITE", - "bit": 13 + "name": "vmx-exit-load-pat", + "bit": 51 }, { "type": "Flag", - "name": "PEBS_BASELINE", - "bit": 14 + "name": "vmx-exit-save-efer", + "bit": 52 }, { "type": "Flag", - "name": "METRICS_AVAIL", - "bit": 15 + "name": "vmx-exit-load-efer", + "bit": 53 }, { "type": "Flag", - "name": "PEBS_PT_AVAIL", - "bit": 16 - } - ] - }, - { - "name": "Basic VMX", - "address": "0x480", - "fields": [ + "name": "vmx-exit-save-preemption-timer", + "bit": 54 + }, { - "type": "Int", - "name": "Revision", - "bounds": { - "start": 0, - "end": 30 - } + "type": "Flag", + "name": "vmx-exit-clear-bndcfgs", + "bit": 55 }, { - "type": "Int", - "name": "VMXON size", - "bounds": { - "start": 32, - "end": 44 - } + "type": "Flag", + "name": "vmx-exit-pt-conceal", + "bit": 56 }, { "type": "Flag", - "name": "VMX controls", - "bit": 55 + "name": "vmx-exit-clear-rtit-ctl", + "bit": 57 }, { "type": "Flag", - "name": "Soft exceptions", - "bit": 56 - } - ] - }, - { - "name": "VMX: Pin-based Ctls", - "address": "0x481", - "fields": [ + "name": "vmx-exit-clear-lbr-ctl", + "bit": 58 + }, { "type": "Flag", - "name": "Ext Int Exit", - "bit": 32 + "name": "vmx-exit-clear-uinv", + "bit": 59 }, { "type": "Flag", - "name": "NMI Exits", - "bit": 35 + "name": "vmx-exit-save-cet", + "bit": 60 }, { "type": "Flag", - "name": "Virt NMI", - "bit": 37 + "name": "vmx-exit-load-pkrs", + "bit": 61 }, { "type": "Flag", - "name": "VMX Timer", - "bit": 38 + "name": "vmx-exit-save-perf-global-ctl", + "bit": 62 }, { "type": "Flag", - "name": "posted Int", - "bit": 39 + "name": "vmx-exit-secondary-ctls", + "bit": 63 } ] }, { - "name": "VMX: True Pin-based Ctls", - "address": "0x48d", + "name": "VMX: Exit Ctls 2", + "address": "0x493", "fields": [ { "type": "Flag", - "name": "Ext Int Exit", - "bit": 32 - }, - { - "type": "Flag", - "name": "NMI Exits", - "bit": 35 + "name": "vmx-exit-save-fred", + "bit": 0 }, { "type": "Flag", - "name": "Virt NMI", - "bit": 37 + "name": "vmx-exit-load-fred", + "bit": 1 }, { "type": "Flag", - "name": "VMX Timer", - "bit": 38 + "name": "vmx-exit-load-spec-ctrl", + "bit": 2 }, { "type": "Flag", - "name": "posted Int", - "bit": 39 + "name": "vmx-exit-prematurely-busy-shadow-stack", + "bit": 3 } ] }, { - "name": "VMX: Proccessor Based Ctls - Most", - "address": "0x482", + "name": "VMX: Entry Ctls", + "address": "0x484", "fields": [ { "type": "Flag", - "name": "Int Window Exit", + "name": "vmx-entry-load-debugctl", "bit": 34 }, { "type": "Flag", - "name": "TSC Offsetting", - "bit": 35 - }, - { - "type": "Flag", - "name": "HLT exit", - "bit": 39 - }, - { - "type": "Flag", - "name": "INVLPG exit", + "name": "vmx-entry-ia32e-mode", "bit": 41 }, { "type": "Flag", - "name": "MWAIT exit", + "name": "vmx-entry-smm", "bit": 42 }, { "type": "Flag", - "name": "RDPMC exit", + "name": "vmx-entry-deactivate-dual-monitor", "bit": 43 }, { "type": "Flag", - "name": "RDTSC exit", - "bit": 44 + "name": "vmx-entry-load-perf-global-ctrl", + "bit": 45 + }, + { + "type": "Flag", + "name": "vmx-entry-load-pat", + "bit": 46 }, { "type": "Flag", - "name": "CR3-load exit", + "name": "vmx-entry-load-efer", "bit": 47 }, { "type": "Flag", - "name": "CR3-store exit", + "name": "vmx-entry-load-bndcfgs", "bit": 48 }, { "type": "Flag", - "name": "Ctls 3", + "name": "vmx-entry-pt-conceal", "bit": 49 }, { "type": "Flag", - "name": "CR8-load exit", + "name": "vmx-entry-load-rtit-ctl", + "bit": 50 + }, + { + "type": "Flag", + "name": "vmx-entry-load-uinv", "bit": 51 }, { "type": "Flag", - "name": "CR8-store exit", + "name": "vmx-entry-load-cet", "bit": 52 }, { "type": "Flag", - "name": "TPR Shadow", + "name": "vmx-entry-load-lbr-ctl", "bit": 53 }, { "type": "Flag", - "name": "NMI exit", + "name": "vmx-entry-load-pkrs", "bit": 54 }, { "type": "Flag", - "name": "MOV-DR exit", + "name": "vmx-entry-load-fred", "bit": 55 }, { "type": "Flag", - "name": "IO exit-all", + "name": "vmx-entry-load-spec-ctrl", "bit": 56 }, { "type": "Flag", - "name": "IO bitmap", + "name": "vmx-entry-allow-seam-guest-telemetry", "bit": 57 - }, - { - "type": "Flag", - "name": "Monitor Trap", - "bit": 59 - }, - { - "type": "Flag", - "name": "MSR bitmap", - "bit": 60 - }, - { - "type": "Flag", - "name": "MONITOR exit", - "bit": 61 - }, - { - "type": "Flag", - "name": "PAUSE exit", - "bit": 62 - }, - { - "type": "Flag", - "name": "Ctls 2", - "bit": 63 } ] }, { - "name": "VMX: Proccessor Based Ctls - All", - "address": "0x48e", + "name": "VMX: True Entry Ctls", + "address": "0x490", "fields": [ { "type": "Flag", - "name": "Int Window Exit", + "name": "vmx-entry-load-debugctl", "bit": 34 }, { "type": "Flag", - "name": "TSC Offsetting", - "bit": 35 - }, - { - "type": "Flag", - "name": "HLT exit", - "bit": 39 - }, - { - "type": "Flag", - "name": "INVLPG exit", + "name": "vmx-entry-ia32e-mode", "bit": 41 }, { "type": "Flag", - "name": "MWAIT exit", + "name": "vmx-entry-smm", "bit": 42 }, { "type": "Flag", - "name": "RDPMC exit", + "name": "vmx-entry-deactivate-dual-monitor", "bit": 43 }, { "type": "Flag", - "name": "RDTSC exit", - "bit": 44 + "name": "vmx-entry-load-perf-global-ctrl", + "bit": 45 + }, + { + "type": "Flag", + "name": "vmx-entry-load-pat", + "bit": 46 }, { "type": "Flag", - "name": "CR3-load exit", + "name": "vmx-entry-load-efer", "bit": 47 }, { "type": "Flag", - "name": "CR3-store exit", + "name": "vmx-entry-load-bndcfgs", "bit": 48 }, { "type": "Flag", - "name": "Ctls 3", + "name": "vmx-entry-pt-conceal", "bit": 49 }, { "type": "Flag", - "name": "CR8-load exit", + "name": "vmx-entry-load-rtit-ctl", + "bit": 50 + }, + { + "type": "Flag", + "name": "vmx-entry-load-uinv", "bit": 51 }, { "type": "Flag", - "name": "CR8-store exit", + "name": "vmx-entry-load-cet", "bit": 52 }, { "type": "Flag", - "name": "TPR Shadow", + "name": "vmx-entry-load-lbr-ctl", "bit": 53 }, { "type": "Flag", - "name": "NMI exit", + "name": "vmx-entry-load-pkrs", "bit": 54 }, { "type": "Flag", - "name": "MOV-DR exit", + "name": "vmx-entry-load-fred", "bit": 55 }, { "type": "Flag", - "name": "IO exit-all", + "name": "vmx-entry-load-spec-ctrl", "bit": 56 }, { "type": "Flag", - "name": "IO bitmap", + "name": "vmx-entry-allow-seam-guest-telemetry", "bit": 57 - }, + } + ] + }, + { + "name": "VMX: Misc", + "address": "0x485", + "fields": [ { - "type": "Flag", - "name": "Monitor Trap", - "bit": 59 + "type": "Int", + "name": "preemption-timer-rate", + "bounds": { + "start": 0, + "end": 5 + } }, { "type": "Flag", - "name": "MSR bitmap", - "bit": 60 + "name": "vmx-store-lma", + "bit": 5 }, { "type": "Flag", - "name": "MONITOR exit", - "bit": 61 + "name": "vmx-activity-hlt", + "bit": 6 }, { "type": "Flag", - "name": "PAUSE exit", - "bit": 62 + "name": "vmx-activity-shutdown", + "bit": 7 }, { "type": "Flag", - "name": "Ctls 2", - "bit": 63 - } - ] - }, - { - "name": "VMX: Proccessor Based Ctls 2", - "address": "0x48b", - "fields": [ - { - "type": "Flag", - "name": "Virt APIC", - "bit": 32 + "name": "vmx-activity-wait-sipi", + "bit": 8 }, { "type": "Flag", - "name": "Enable EPT", - "bit": 33 + "name": "vmx-pt-in-vmx", + "bit": 14 }, { "type": "Flag", - "name": "Descriptor Table exit", - "bit": 34 + "name": "vmx-smm-read-smbase", + "bit": 15 }, { - "type": "Flag", - "name": "Enable RDTSCP", - "bit": 35 + "type": "Int", + "name": "cr3-target-count", + "bounds": { + "start": 16, + "end": 25 + } }, { - "type": "Flag", - "name": "Virt x2APIC", - "bit": 36 + "type": "Int", + "name": "max-msr-list-size", + "bounds": { + "start": 25, + "end": 28 + } }, { "type": "Flag", - "name": "Enable VPID", - "bit": 37 + "name": "vmx-smm-monitor-ctl-b2", + "bit": 28 }, { "type": "Flag", - "name": "WBINVD exit", - "bit": 38 + "name": "vmx-vmwrite-vmexit-fields", + "bit": 29 }, { "type": "Flag", - "name": "unrestricted", - "bit": 39 + "name": "vmx-zero-len-inject", + "bit": 30 }, { - "type": "Flag", - "name": "Virt Apic", - "bit": 40 - }, + "type": "Int", + "name": "mseg-revision", + "bounds": { + "start": 32, + "end": 64 + } + } + ] + }, + { + "name": "VMX: EPT and VPID Caps", + "address": "0x48c", + "fields": [ { "type": "Flag", - "name": "Virt Interrupts", - "bit": 41 + "name": "vmx-ept-execonly", + "bit": 0 }, { "type": "Flag", - "name": "PAUSE loop exit", - "bit": 42 + "name": "vmx-page-walk-4", + "bit": 6 }, { "type": "Flag", - "name": "RDRAND exit", - "bit": 43 + "name": "vmx-page-walk-5", + "bit": 7 }, { "type": "Flag", - "name": "Enable INVPCID", - "bit": 44 + "name": "vmx-ept-uc", + "bit": 8 }, { "type": "Flag", - "name": "Enable VMFUNC", - "bit": 45 + "name": "vmx-ept-wb", + "bit": 14 }, { "type": "Flag", - "name": "VMCS shadow", - "bit": 46 + "name": "vmx-ept-2mb", + "bit": 16 }, { "type": "Flag", - "name": "ENCLS exit", - "bit": 47 + "name": "vmx-ept-1gb", + "bit": 17 }, { "type": "Flag", - "name": "RDSEED exit", - "bit": 48 + "name": "vmx-invept", + "bit": 20 }, { "type": "Flag", - "name": "Enable PML", - "bit": 49 + "name": "vmx-eptad", + "bit": 21 }, { "type": "Flag", - "name": "EPT exceptions", - "bit": 50 + "name": "vmx-ept-advanced-exitinfo", + "bit": 22 }, { "type": "Flag", - "name": "VMX-PT conceal", - "bit": 51 + "name": "vmx-ept-supervisor-shadow-stack", + "bit": 23 }, { "type": "Flag", - "name": "Enable XSAVE", - "bit": 52 + "name": "vmx-invept-single-context", + "bit": 25 }, { "type": "Flag", - "name": "Mode EPT Ctrl", - "bit": 54 + "name": "vmx-invept-all-context", + "bit": 26 }, { "type": "Flag", - "name": "EPT Write Perm size", - "bit": 55 + "name": "vmx-invvpid", + "bit": 32 }, { "type": "Flag", - "name": "PT - Guest Addr", - "bit": 56 + "name": "vmx-invvpid-single-addr", + "bit": 40 }, { "type": "Flag", - "name": "TSC scaling", - "bit": 57 + "name": "vmx-invvpid-single-context", + "bit": 41 }, { "type": "Flag", - "name": "User Wait", - "bit": 58 + "name": "vmx-invvpid-all-context", + "bit": 42 }, { "type": "Flag", - "name": "Enable Pconfig", - "bit": 59 + "name": "vmx-invept-single-context-noglobals", + "bit": 43 }, { - "type": "Flag", - "name": "ENCLV Exit", - "bit": 60 + "type": "Int", + "name": "hlat-prefix-size", + "bounds": { + "start": 48, + "end": 54 + } } ] }, { - "name": "VMX: Proccessor Based Ctls 3", - "address": "0x492", + "name": "VMX: VM Functions", + "address": "0x491", "fields": [ { "type": "Flag", - "name": "LOADIWKEY", + "name": "vmx-eptp-switching", "bit": 0 - }, - { - "type": "Flag", - "name": "Enable HLAT", - "bit": 1 - }, - { - "type": "Flag", - "name": "EPT Write Ctrl", - "bit": 2 - }, - { - "type": "Flag", - "name": "Guest Page Verify", - "bit": 3 } ] }