[PATCH 4/6] include: Add KSHARED_USER_DATA QpcData details and flags.

Rémi Bernon rbernon at codeweavers.com
Wed Mar 10 05:22:34 CST 2021


Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 include/ddk/wdm.h | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index c0b97e243aa..3b9af7d52b2 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1292,12 +1292,26 @@ typedef struct _KUSER_SHARED_DATA {
     volatile ULONGLONG QpcBias;                            /* 0x3b8 */
     ULONG ActiveProcessorCount;                            /* 0x3c0 */
     volatile UCHAR ActiveGroupCount;                       /* 0x3c4 */
-    USHORT QpcData;                                        /* 0x3c6 */
+    union {
+        USHORT QpcData;                                    /* 0x3c6 */
+        struct {
+            UCHAR volatile QpcBypassEnabled;
+            UCHAR QpcShift;
+        } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME3;
     LARGE_INTEGER TimeZoneBiasEffectiveStart;              /* 0x3c8 */
     LARGE_INTEGER TimeZoneBiasEffectiveEnd;                /* 0x3d0 */
     XSTATE_CONFIGURATION XState;                           /* 0x3d8 */
 } KSHARED_USER_DATA, *PKSHARED_USER_DATA;
 
+#define SHARED_GLOBAL_FLAGS_QPC_BYPASS_ENABLED 0x01
+#define SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_HV_PAGE 0x02
+#define SHARED_GLOBAL_FLAGS_QPC_BYPASS_DISABLE_32BIT 0x04
+#define SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_MFENCE 0x10
+#define SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_LFENCE 0x20
+#define SHARED_GLOBAL_FLAGS_QPC_BYPASS_A73_ERRATA 0x40
+#define SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_RDTSCP 0x80
+
 typedef enum _MEMORY_CACHING_TYPE {
     MmNonCached = 0,
     MmCached = 1,
-- 
2.30.0




More information about the wine-devel mailing list