From 6a0c7ec2b397e010def9726b4c2e4e5f2c90a433 Mon Sep 17 00:00:00 2001 From: Jesus Aguilera Date: Tue, 2 Jun 2026 18:19:16 -0400 Subject: [PATCH] feature: Add WBNOINVD feature detection Added leaf 0x80000008 (Address Sizes and Extended Features) to config, exposing the WBNOINVD flag in EBX bit 9 --- src/config.yaml | 9 +++++++++ src/layout.rs | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/config.yaml b/src/config.yaml index 8067c81..9d2d7a7 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -155,6 +155,15 @@ cpuids: name: "Brand String 3" data_type: type: String + 0x80000008: + name: "Address Sizes and Extended Features" + data_type: + type: BitField + eax: [] + ebx: + - {type: Flag, name: "WBNOINVD", bit: 9} + ecx: [] + edx: [] msrs: - name: "Core_Capabilities" address: 0xCF diff --git a/src/layout.rs b/src/layout.rs index e6c0fb2..23f768c 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -293,7 +293,7 @@ impl LeafDesc { &self.data_type } - pub fn bind_leaf(&self, leaf: u32, cpuid: &CPUIDFunc) -> Option { + pub fn bind_leaf(&self, leaf: u32, cpuid: &CPUIDFunc) -> Option> { let sub_leaves = self.scan_sub_leaves(leaf, cpuid); if !sub_leaves.is_empty() { Some(BoundLeaf {