From 0d73575ea78626a921a512e833db8bb329009ba6 Mon Sep 17 00:00:00 2001 From: IChooseYou Date: Thu, 26 Feb 2026 12:07:55 -0700 Subject: [PATCH] fix: C++ generator bitfields, sizeof placement, Ctrl+F search, view sync - Generator emits proper bitfield members instead of padding stubs - Named bitfield structs (MitigationFlagsValues etc) now converted by parser - sizeof comment moved from top to closing brace (}; // sizeof 0x80) - C/C++ view syncs with workspace double-click and controller navigation - Ctrl+F incremental search in C++ code view (Enter=next, Escape=close) - Workspace dock resizable via 1px drag handle separator - Regenerated Vergilius_25H2.rcx with all fixes (61 named bitfield containers) --- src/examples/Vergilius_25H2.rcx | 4507 +++++++++++++------------------ src/generator.cpp | 33 +- src/main.cpp | 99 +- src/mainwindow.h | 2 + tests/test_generator.cpp | 4 +- tools/vergilius_to_rcx.py | 4 +- 6 files changed, 2067 insertions(+), 2582 deletions(-) diff --git a/src/examples/Vergilius_25H2.rcx b/src/examples/Vergilius_25H2.rcx index faeb1ad..6a5beda 100644 --- a/src/examples/Vergilius_25H2.rcx +++ b/src/examples/Vergilius_25H2.rcx @@ -3778,25 +3778,22 @@ "id": "556", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 2, "parentId": "553", - "refId": "0", - "collapsed": false - }, - { - "id": "557", - "kind": "Hex32", - "name": "Enabled:1", - "offset": 0, - "parentId": "556" - }, - { - "id": "558", - "kind": "Hex32", - "name": "Reserved:31", - "offset": 0, - "parentId": "556" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Enabled", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 1, + "bitWidth": 31 + } + ] }, { "id": "559", @@ -3876,46 +3873,37 @@ "id": "568", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 26, "parentId": "562", - "refId": "0", - "collapsed": false - }, - { - "id": "569", - "kind": "Hex32", - "name": "Enabled:1", - "offset": 0, - "parentId": "568" - }, - { - "id": "570", - "kind": "Hex32", - "name": "HotPlug:1", - "offset": 0, - "parentId": "568" - }, - { - "id": "571", - "kind": "Hex32", - "name": "NonVolatile:1", - "offset": 0, - "parentId": "568" - }, - { - "id": "572", - "kind": "Hex32", - "name": "SpecificPurpose:1", - "offset": 0, - "parentId": "568" - }, - { - "id": "573", - "kind": "Hex32", - "name": "Reserved:28", - "offset": 0, - "parentId": "568" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Enabled", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "HotPlug", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "NonVolatile", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "SpecificPurpose", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 4, + "bitWidth": 28 + } + ] }, { "id": "574", @@ -3963,25 +3951,22 @@ "id": "579", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 10, "parentId": "575", - "refId": "0", - "collapsed": false - }, - { - "id": "580", - "kind": "Hex32", - "name": "Enabled:1", - "offset": 0, - "parentId": "579" - }, - { - "id": "581", - "kind": "Hex32", - "name": "Reserved:31", - "offset": 0, - "parentId": "579" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Enabled", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 1, + "bitWidth": 31 + } + ] }, { "id": "582", @@ -4025,25 +4010,22 @@ "id": "587", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 8, "parentId": "584", - "refId": "0", - "collapsed": false - }, - { - "id": "588", - "kind": "Hex32", - "name": "Enabled:1", - "offset": 0, - "parentId": "587" - }, - { - "id": "589", - "kind": "Hex32", - "name": "Reserved:31", - "offset": 0, - "parentId": "587" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Enabled", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 1, + "bitWidth": 31 + } + ] }, { "id": "590", @@ -4196,32 +4178,27 @@ "id": "608", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 22, "parentId": "595", - "refId": "0", - "collapsed": false - }, - { - "id": "609", - "kind": "Hex32", - "name": "Enabled:1", - "offset": 0, - "parentId": "608" - }, - { - "id": "610", - "kind": "Hex32", - "name": "ArchitecturalTransactions:1", - "offset": 0, - "parentId": "608" - }, - { - "id": "611", - "kind": "Hex32", - "name": "Reserved:30", - "offset": 0, - "parentId": "608" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Enabled", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "ArchitecturalTransactions", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "612", @@ -4341,32 +4318,27 @@ "id": "626", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 22, "parentId": "613", - "refId": "0", - "collapsed": false - }, - { - "id": "627", - "kind": "Hex32", - "name": "Enabled:1", - "offset": 0, - "parentId": "626" - }, - { - "id": "628", - "kind": "Hex32", - "name": "ArchitecturalTransactions:1", - "offset": 0, - "parentId": "626" - }, - { - "id": "629", - "kind": "Hex32", - "name": "Reserved:30", - "offset": 0, - "parentId": "626" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Enabled", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "ArchitecturalTransactions", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "630", @@ -5661,32 +5633,27 @@ "id": "787", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "786", - "refId": "0", - "collapsed": false - }, - { - "id": "788", - "kind": "Hex64", - "name": "Head:24", - "offset": 0, - "parentId": "787" - }, - { - "id": "789", - "kind": "Hex64", - "name": "Tail:24", - "offset": 0, - "parentId": "787" - }, - { - "id": "790", - "kind": "Hex64", - "name": "ActiveThreadCount:16", - "offset": 0, - "parentId": "787" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "Head", + "bitOffset": 0, + "bitWidth": 24 + }, + { + "name": "Tail", + "bitOffset": 24, + "bitWidth": 24 + }, + { + "name": "ActiveThreadCount", + "bitOffset": 48, + "bitWidth": 16 + } + ] }, { "id": "791", @@ -6334,123 +6301,92 @@ "id": "863", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "862", - "refId": "0", - "collapsed": false - }, - { - "id": "864", - "kind": "Hex32", - "name": "Initialized:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "865", - "kind": "Hex32", - "name": "Type:2", - "offset": 0, - "parentId": "863" - }, - { - "id": "866", - "kind": "Hex32", - "name": "ConnectionPending:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "867", - "kind": "Hex32", - "name": "ConnectionRefused:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "868", - "kind": "Hex32", - "name": "Disconnected:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "869", - "kind": "Hex32", - "name": "Closed:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "870", - "kind": "Hex32", - "name": "NoFlushOnClose:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "871", - "kind": "Hex32", - "name": "ReturnExtendedInfo:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "872", - "kind": "Hex32", - "name": "Waitable:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "873", - "kind": "Hex32", - "name": "DynamicSecurity:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "874", - "kind": "Hex32", - "name": "Wow64CompletionList:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "875", - "kind": "Hex32", - "name": "Lpc:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "876", - "kind": "Hex32", - "name": "LpcToLpc:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "877", - "kind": "Hex32", - "name": "HasCompletionList:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "878", - "kind": "Hex32", - "name": "HadCompletionList:1", - "offset": 0, - "parentId": "863" - }, - { - "id": "879", - "kind": "Hex32", - "name": "EnableCompletionList:1", - "offset": 0, - "parentId": "863" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Initialized", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Type", + "bitOffset": 1, + "bitWidth": 2 + }, + { + "name": "ConnectionPending", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "ConnectionRefused", + "bitOffset": 4, + "bitWidth": 1 + }, + { + "name": "Disconnected", + "bitOffset": 5, + "bitWidth": 1 + }, + { + "name": "Closed", + "bitOffset": 6, + "bitWidth": 1 + }, + { + "name": "NoFlushOnClose", + "bitOffset": 7, + "bitWidth": 1 + }, + { + "name": "ReturnExtendedInfo", + "bitOffset": 8, + "bitWidth": 1 + }, + { + "name": "Waitable", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "DynamicSecurity", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "Wow64CompletionList", + "bitOffset": 11, + "bitWidth": 1 + }, + { + "name": "Lpc", + "bitOffset": 12, + "bitWidth": 1 + }, + { + "name": "LpcToLpc", + "bitOffset": 13, + "bitWidth": 1 + }, + { + "name": "HasCompletionList", + "bitOffset": 14, + "bitWidth": 1 + }, + { + "name": "HadCompletionList", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "EnableCompletionList", + "bitOffset": 16, + "bitWidth": 1 + } + ] }, { "id": "880", @@ -8609,39 +8545,32 @@ "id": "1131", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "1130", - "refId": "0", - "collapsed": false - }, - { - "id": "1132", - "kind": "Hex8", - "name": "ReferenceCache:1", - "offset": 0, - "parentId": "1131" - }, - { - "id": "1133", - "kind": "Hex8", - "name": "Lookaside:1", - "offset": 0, - "parentId": "1131" - }, - { - "id": "1134", - "kind": "Hex8", - "name": "Initializing:1", - "offset": 0, - "parentId": "1131" - }, - { - "id": "1135", - "kind": "Hex8", - "name": "Deleted:1", - "offset": 0, - "parentId": "1131" + "elementKind": "Hex8", + "bitfieldMembers": [ + { + "name": "ReferenceCache", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Lookaside", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Initializing", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "Deleted", + "bitOffset": 3, + "bitWidth": 1 + } + ] }, { "id": "1136", @@ -29437,235 +29366,172 @@ "id": "3680", "kind": "Struct", "name": "MitigationFlagsValues", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "3678", - "refId": "0", - "collapsed": false - }, - { - "id": "3681", - "kind": "Hex32", - "name": "ControlFlowGuardEnabled:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3682", - "kind": "Hex32", - "name": "ControlFlowGuardExportSuppressionEnabled:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3683", - "kind": "Hex32", - "name": "ControlFlowGuardStrict:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3684", - "kind": "Hex32", - "name": "DisallowStrippedImages:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3685", - "kind": "Hex32", - "name": "ForceRelocateImages:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3686", - "kind": "Hex32", - "name": "HighEntropyASLREnabled:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3687", - "kind": "Hex32", - "name": "StackRandomizationDisabled:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3688", - "kind": "Hex32", - "name": "ExtensionPointDisable:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3689", - "kind": "Hex32", - "name": "DisableDynamicCode:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3690", - "kind": "Hex32", - "name": "DisableDynamicCodeAllowOptOut:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3691", - "kind": "Hex32", - "name": "DisableDynamicCodeAllowRemoteDowngrade:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3692", - "kind": "Hex32", - "name": "AuditDisableDynamicCode:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3693", - "kind": "Hex32", - "name": "DisallowWin32kSystemCalls:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3694", - "kind": "Hex32", - "name": "AuditDisallowWin32kSystemCalls:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3695", - "kind": "Hex32", - "name": "EnableFilteredWin32kAPIs:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3696", - "kind": "Hex32", - "name": "AuditFilteredWin32kAPIs:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3697", - "kind": "Hex32", - "name": "DisableNonSystemFonts:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3698", - "kind": "Hex32", - "name": "AuditNonSystemFontLoading:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3699", - "kind": "Hex32", - "name": "PreferSystem32Images:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3700", - "kind": "Hex32", - "name": "ProhibitRemoteImageMap:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3701", - "kind": "Hex32", - "name": "AuditProhibitRemoteImageMap:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3702", - "kind": "Hex32", - "name": "ProhibitLowILImageMap:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3703", - "kind": "Hex32", - "name": "AuditProhibitLowILImageMap:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3704", - "kind": "Hex32", - "name": "SignatureMitigationOptIn:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3705", - "kind": "Hex32", - "name": "AuditBlockNonMicrosoftBinaries:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3706", - "kind": "Hex32", - "name": "AuditBlockNonMicrosoftBinariesAllowStore:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3707", - "kind": "Hex32", - "name": "LoaderIntegrityContinuityEnabled:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3708", - "kind": "Hex32", - "name": "AuditLoaderIntegrityContinuity:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3709", - "kind": "Hex32", - "name": "EnableModuleTamperingProtection:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3710", - "kind": "Hex32", - "name": "EnableModuleTamperingProtectionNoInherit:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3711", - "kind": "Hex32", - "name": "RestrictIndirectBranchPrediction:1", - "offset": 0, - "parentId": "3680" - }, - { - "id": "3712", - "kind": "Hex32", - "name": "IsolateSecurityDomain:1", - "offset": 0, - "parentId": "3680" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "ControlFlowGuardEnabled", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "ControlFlowGuardExportSuppressionEnabled", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "ControlFlowGuardStrict", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "DisallowStrippedImages", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "ForceRelocateImages", + "bitOffset": 4, + "bitWidth": 1 + }, + { + "name": "HighEntropyASLREnabled", + "bitOffset": 5, + "bitWidth": 1 + }, + { + "name": "StackRandomizationDisabled", + "bitOffset": 6, + "bitWidth": 1 + }, + { + "name": "ExtensionPointDisable", + "bitOffset": 7, + "bitWidth": 1 + }, + { + "name": "DisableDynamicCode", + "bitOffset": 8, + "bitWidth": 1 + }, + { + "name": "DisableDynamicCodeAllowOptOut", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "DisableDynamicCodeAllowRemoteDowngrade", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "AuditDisableDynamicCode", + "bitOffset": 11, + "bitWidth": 1 + }, + { + "name": "DisallowWin32kSystemCalls", + "bitOffset": 12, + "bitWidth": 1 + }, + { + "name": "AuditDisallowWin32kSystemCalls", + "bitOffset": 13, + "bitWidth": 1 + }, + { + "name": "EnableFilteredWin32kAPIs", + "bitOffset": 14, + "bitWidth": 1 + }, + { + "name": "AuditFilteredWin32kAPIs", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "DisableNonSystemFonts", + "bitOffset": 16, + "bitWidth": 1 + }, + { + "name": "AuditNonSystemFontLoading", + "bitOffset": 17, + "bitWidth": 1 + }, + { + "name": "PreferSystem32Images", + "bitOffset": 18, + "bitWidth": 1 + }, + { + "name": "ProhibitRemoteImageMap", + "bitOffset": 19, + "bitWidth": 1 + }, + { + "name": "AuditProhibitRemoteImageMap", + "bitOffset": 20, + "bitWidth": 1 + }, + { + "name": "ProhibitLowILImageMap", + "bitOffset": 21, + "bitWidth": 1 + }, + { + "name": "AuditProhibitLowILImageMap", + "bitOffset": 22, + "bitWidth": 1 + }, + { + "name": "SignatureMitigationOptIn", + "bitOffset": 23, + "bitWidth": 1 + }, + { + "name": "AuditBlockNonMicrosoftBinaries", + "bitOffset": 24, + "bitWidth": 1 + }, + { + "name": "AuditBlockNonMicrosoftBinariesAllowStore", + "bitOffset": 25, + "bitWidth": 1 + }, + { + "name": "LoaderIntegrityContinuityEnabled", + "bitOffset": 26, + "bitWidth": 1 + }, + { + "name": "AuditLoaderIntegrityContinuity", + "bitOffset": 27, + "bitWidth": 1 + }, + { + "name": "EnableModuleTamperingProtection", + "bitOffset": 28, + "bitWidth": 1 + }, + { + "name": "EnableModuleTamperingProtectionNoInherit", + "bitOffset": 29, + "bitWidth": 1 + }, + { + "name": "RestrictIndirectBranchPrediction", + "bitOffset": 30, + "bitWidth": 1 + }, + { + "name": "IsolateSecurityDomain", + "bitOffset": 31, + "bitWidth": 1 + } + ] }, { "id": "3713", @@ -29688,235 +29554,172 @@ "id": "3715", "kind": "Struct", "name": "MitigationFlags2Values", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "3713", - "refId": "0", - "collapsed": false - }, - { - "id": "3716", - "kind": "Hex32", - "name": "EnableExportAddressFilter:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3717", - "kind": "Hex32", - "name": "AuditExportAddressFilter:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3718", - "kind": "Hex32", - "name": "EnableExportAddressFilterPlus:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3719", - "kind": "Hex32", - "name": "AuditExportAddressFilterPlus:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3720", - "kind": "Hex32", - "name": "EnableRopStackPivot:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3721", - "kind": "Hex32", - "name": "AuditRopStackPivot:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3722", - "kind": "Hex32", - "name": "EnableRopCallerCheck:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3723", - "kind": "Hex32", - "name": "AuditRopCallerCheck:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3724", - "kind": "Hex32", - "name": "EnableRopSimExec:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3725", - "kind": "Hex32", - "name": "AuditRopSimExec:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3726", - "kind": "Hex32", - "name": "EnableImportAddressFilter:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3727", - "kind": "Hex32", - "name": "AuditImportAddressFilter:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3728", - "kind": "Hex32", - "name": "DisablePageCombine:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3729", - "kind": "Hex32", - "name": "SpeculativeStoreBypassDisable:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3730", - "kind": "Hex32", - "name": "CetUserShadowStacks:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3731", - "kind": "Hex32", - "name": "AuditCetUserShadowStacks:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3732", - "kind": "Hex32", - "name": "AuditCetUserShadowStacksLogged:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3733", - "kind": "Hex32", - "name": "UserCetSetContextIpValidation:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3734", - "kind": "Hex32", - "name": "AuditUserCetSetContextIpValidation:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3735", - "kind": "Hex32", - "name": "AuditUserCetSetContextIpValidationLogged:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3736", - "kind": "Hex32", - "name": "CetUserShadowStacksStrictMode:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3737", - "kind": "Hex32", - "name": "BlockNonCetBinaries:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3738", - "kind": "Hex32", - "name": "BlockNonCetBinariesNonEhcont:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3739", - "kind": "Hex32", - "name": "AuditBlockNonCetBinaries:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3740", - "kind": "Hex32", - "name": "AuditBlockNonCetBinariesLogged:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3741", - "kind": "Hex32", - "name": "XtendedControlFlowGuard_Deprecated:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3742", - "kind": "Hex32", - "name": "AuditXtendedControlFlowGuard_Deprecated:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3743", - "kind": "Hex32", - "name": "PointerAuthUserIp:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3744", - "kind": "Hex32", - "name": "AuditPointerAuthUserIp:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3745", - "kind": "Hex32", - "name": "AuditPointerAuthUserIpLogged:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3746", - "kind": "Hex32", - "name": "CetDynamicApisOutOfProcOnly:1", - "offset": 0, - "parentId": "3715" - }, - { - "id": "3747", - "kind": "Hex32", - "name": "UserCetSetContextIpValidationRelaxedMode:1", - "offset": 0, - "parentId": "3715" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "EnableExportAddressFilter", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "AuditExportAddressFilter", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "EnableExportAddressFilterPlus", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "AuditExportAddressFilterPlus", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "EnableRopStackPivot", + "bitOffset": 4, + "bitWidth": 1 + }, + { + "name": "AuditRopStackPivot", + "bitOffset": 5, + "bitWidth": 1 + }, + { + "name": "EnableRopCallerCheck", + "bitOffset": 6, + "bitWidth": 1 + }, + { + "name": "AuditRopCallerCheck", + "bitOffset": 7, + "bitWidth": 1 + }, + { + "name": "EnableRopSimExec", + "bitOffset": 8, + "bitWidth": 1 + }, + { + "name": "AuditRopSimExec", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "EnableImportAddressFilter", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "AuditImportAddressFilter", + "bitOffset": 11, + "bitWidth": 1 + }, + { + "name": "DisablePageCombine", + "bitOffset": 12, + "bitWidth": 1 + }, + { + "name": "SpeculativeStoreBypassDisable", + "bitOffset": 13, + "bitWidth": 1 + }, + { + "name": "CetUserShadowStacks", + "bitOffset": 14, + "bitWidth": 1 + }, + { + "name": "AuditCetUserShadowStacks", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "AuditCetUserShadowStacksLogged", + "bitOffset": 16, + "bitWidth": 1 + }, + { + "name": "UserCetSetContextIpValidation", + "bitOffset": 17, + "bitWidth": 1 + }, + { + "name": "AuditUserCetSetContextIpValidation", + "bitOffset": 18, + "bitWidth": 1 + }, + { + "name": "AuditUserCetSetContextIpValidationLogged", + "bitOffset": 19, + "bitWidth": 1 + }, + { + "name": "CetUserShadowStacksStrictMode", + "bitOffset": 20, + "bitWidth": 1 + }, + { + "name": "BlockNonCetBinaries", + "bitOffset": 21, + "bitWidth": 1 + }, + { + "name": "BlockNonCetBinariesNonEhcont", + "bitOffset": 22, + "bitWidth": 1 + }, + { + "name": "AuditBlockNonCetBinaries", + "bitOffset": 23, + "bitWidth": 1 + }, + { + "name": "AuditBlockNonCetBinariesLogged", + "bitOffset": 24, + "bitWidth": 1 + }, + { + "name": "XtendedControlFlowGuard_Deprecated", + "bitOffset": 25, + "bitWidth": 1 + }, + { + "name": "AuditXtendedControlFlowGuard_Deprecated", + "bitOffset": 26, + "bitWidth": 1 + }, + { + "name": "PointerAuthUserIp", + "bitOffset": 27, + "bitWidth": 1 + }, + { + "name": "AuditPointerAuthUserIp", + "bitOffset": 28, + "bitWidth": 1 + }, + { + "name": "AuditPointerAuthUserIpLogged", + "bitOffset": 29, + "bitWidth": 1 + }, + { + "name": "CetDynamicApisOutOfProcOnly", + "bitOffset": 30, + "bitWidth": 1 + }, + { + "name": "UserCetSetContextIpValidationRelaxedMode", + "bitOffset": 31, + "bitWidth": 1 + } + ] }, { "id": "3748", @@ -30072,39 +29875,32 @@ "id": "3765", "kind": "Struct", "name": "MitigationFlags3Values", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "3763", - "refId": "0", - "collapsed": false - }, - { - "id": "3766", - "kind": "Hex32", - "name": "RestrictCoreSharing:1", - "offset": 0, - "parentId": "3765" - }, - { - "id": "3767", - "kind": "Hex32", - "name": "DisallowFsctlSystemCalls:1", - "offset": 0, - "parentId": "3765" - }, - { - "id": "3768", - "kind": "Hex32", - "name": "AuditDisallowFsctlSystemCalls:1", - "offset": 0, - "parentId": "3765" - }, - { - "id": "3769", - "kind": "Hex32", - "name": "MitigationFlags3Spare:29", - "offset": 0, - "parentId": "3765" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "RestrictCoreSharing", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "DisallowFsctlSystemCalls", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "AuditDisallowFsctlSystemCalls", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "MitigationFlags3Spare", + "bitOffset": 3, + "bitWidth": 29 + } + ] }, { "id": "3770", @@ -30175,207 +29971,152 @@ "id": "3779", "kind": "Struct", "name": "SyscallUsageValues", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "3777", - "refId": "0", - "collapsed": false - }, - { - "id": "3780", - "kind": "Hex32", - "name": "SystemModuleInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3781", - "kind": "Hex32", - "name": "SystemModuleInformationEx:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3782", - "kind": "Hex32", - "name": "SystemLocksInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3783", - "kind": "Hex32", - "name": "SystemStackTraceInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3784", - "kind": "Hex32", - "name": "SystemHandleInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3785", - "kind": "Hex32", - "name": "SystemExtendedHandleInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3786", - "kind": "Hex32", - "name": "SystemObjectInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3787", - "kind": "Hex32", - "name": "SystemBigPoolInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3788", - "kind": "Hex32", - "name": "SystemExtendedProcessInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3789", - "kind": "Hex32", - "name": "SystemSessionProcessInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3790", - "kind": "Hex32", - "name": "SystemMemoryTopologyInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3791", - "kind": "Hex32", - "name": "SystemMemoryChannelInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3792", - "kind": "Hex32", - "name": "SystemUnused:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3793", - "kind": "Hex32", - "name": "SystemPlatformBinaryInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3794", - "kind": "Hex32", - "name": "SystemFirmwareTableInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3795", - "kind": "Hex32", - "name": "SystemBootMetadataInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3796", - "kind": "Hex32", - "name": "SystemWheaIpmiHardwareInformation:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3797", - "kind": "Hex32", - "name": "SystemSuperfetchPrefetch:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3798", - "kind": "Hex32", - "name": "SystemSuperfetchPfnQuery:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3799", - "kind": "Hex32", - "name": "SystemSuperfetchPrivSourceQuery:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3800", - "kind": "Hex32", - "name": "SystemSuperfetchMemoryListQuery:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3801", - "kind": "Hex32", - "name": "SystemSuperfetchMemoryRangesQuery:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3802", - "kind": "Hex32", - "name": "SystemSuperfetchPfnSetPriority:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3803", - "kind": "Hex32", - "name": "SystemSuperfetchMovePages:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3804", - "kind": "Hex32", - "name": "SystemSuperfetchPfnSetPageHeat:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3805", - "kind": "Hex32", - "name": "SysDbgGetTriageDump:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3806", - "kind": "Hex32", - "name": "SysDbgGetLiveKernelDump:1", - "offset": 0, - "parentId": "3779" - }, - { - "id": "3807", - "kind": "Hex32", - "name": "SyscallUsageValuesSpare:5", - "offset": 0, - "parentId": "3779" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "SystemModuleInformation", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "SystemModuleInformationEx", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "SystemLocksInformation", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "SystemStackTraceInformation", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "SystemHandleInformation", + "bitOffset": 4, + "bitWidth": 1 + }, + { + "name": "SystemExtendedHandleInformation", + "bitOffset": 5, + "bitWidth": 1 + }, + { + "name": "SystemObjectInformation", + "bitOffset": 6, + "bitWidth": 1 + }, + { + "name": "SystemBigPoolInformation", + "bitOffset": 7, + "bitWidth": 1 + }, + { + "name": "SystemExtendedProcessInformation", + "bitOffset": 8, + "bitWidth": 1 + }, + { + "name": "SystemSessionProcessInformation", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "SystemMemoryTopologyInformation", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "SystemMemoryChannelInformation", + "bitOffset": 11, + "bitWidth": 1 + }, + { + "name": "SystemUnused", + "bitOffset": 12, + "bitWidth": 1 + }, + { + "name": "SystemPlatformBinaryInformation", + "bitOffset": 13, + "bitWidth": 1 + }, + { + "name": "SystemFirmwareTableInformation", + "bitOffset": 14, + "bitWidth": 1 + }, + { + "name": "SystemBootMetadataInformation", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "SystemWheaIpmiHardwareInformation", + "bitOffset": 16, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchPrefetch", + "bitOffset": 17, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchPfnQuery", + "bitOffset": 18, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchPrivSourceQuery", + "bitOffset": 19, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchMemoryListQuery", + "bitOffset": 20, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchMemoryRangesQuery", + "bitOffset": 21, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchPfnSetPriority", + "bitOffset": 22, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchMovePages", + "bitOffset": 23, + "bitWidth": 1 + }, + { + "name": "SystemSuperfetchPfnSetPageHeat", + "bitOffset": 24, + "bitWidth": 1 + }, + { + "name": "SysDbgGetTriageDump", + "bitOffset": 25, + "bitWidth": 1 + }, + { + "name": "SysDbgGetLiveKernelDump", + "bitOffset": 26, + "bitWidth": 1 + }, + { + "name": "SyscallUsageValuesSpare", + "bitOffset": 27, + "bitWidth": 5 + } + ] }, { "id": "3808", @@ -36446,18 +36187,17 @@ "id": "4545", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 28, "parentId": "4540", - "refId": "0", - "collapsed": false - }, - { - "id": "4546", - "kind": "Hex16", - "name": "PciSegment:1", - "offset": 0, - "parentId": "4545" + "elementKind": "Hex16", + "bitfieldMembers": [ + { + "name": "PciSegment", + "bitOffset": 0, + "bitWidth": 1 + } + ] }, { "id": "4547", @@ -36775,25 +36515,22 @@ "id": "4584", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 8, "parentId": "4581", - "refId": "0", - "collapsed": false - }, - { - "id": "4585", - "kind": "Hex8", - "name": "DefaultDomain:1", - "offset": 0, - "parentId": "4584" - }, - { - "id": "4586", - "kind": "Hex8", - "name": "FirmwareDomain:1", - "offset": 0, - "parentId": "4584" + "elementKind": "Hex8", + "bitfieldMembers": [ + { + "name": "DefaultDomain", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "FirmwareDomain", + "bitOffset": 1, + "bitWidth": 1 + } + ] }, { "id": "4587", @@ -37444,46 +37181,37 @@ "id": "4659", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "4658", - "refId": "0", - "collapsed": false - }, - { - "id": "4660", - "kind": "Hex8", - "name": "EnableTranslation:1", - "offset": 0, - "parentId": "4659" - }, - { - "id": "4661", - "kind": "Hex8", - "name": "Blocked:1", - "offset": 0, - "parentId": "4659" - }, - { - "id": "4662", - "kind": "Hex8", - "name": "EnableDefaultPasid:1", - "offset": 0, - "parentId": "4659" - }, - { - "id": "4663", - "kind": "Hex8", - "name": "FirstStagePagingMode:1", - "offset": 0, - "parentId": "4659" - }, - { - "id": "4664", - "kind": "Hex8", - "name": "Reserved:4", - "offset": 0, - "parentId": "4659" + "elementKind": "Hex8", + "bitfieldMembers": [ + { + "name": "EnableTranslation", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Blocked", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "EnableDefaultPasid", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "FirstStagePagingMode", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 4, + "bitWidth": 4 + } + ] }, { "id": "4665", @@ -37506,18 +37234,17 @@ "id": "4667", "kind": "Struct", "name": "EnabledCapabilities", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "4666", - "refId": "0", - "collapsed": false - }, - { - "id": "4668", - "kind": "Hex64", - "name": "BroadcastTlbMaintenance:1", - "offset": 0, - "parentId": "4667" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "BroadcastTlbMaintenance", + "bitOffset": 0, + "bitWidth": 1 + } + ] }, { "id": "4669", @@ -43053,60 +42780,47 @@ "id": "5329", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "5327", - "refId": "0", - "collapsed": false - }, - { - "id": "5330", - "kind": "Hex64", - "name": "BoundToMaster:1", - "offset": 0, - "parentId": "5329" - }, - { - "id": "5331", - "kind": "Hex64", - "name": "BoundToScatterPool:1", - "offset": 0, - "parentId": "5329" - }, - { - "id": "5332", - "kind": "Hex64", - "name": "OwnedByMaster:1", - "offset": 0, - "parentId": "5329" - }, - { - "id": "5333", - "kind": "Hex64", - "name": "OwnedByScatterPool:1", - "offset": 0, - "parentId": "5329" - }, - { - "id": "5334", - "kind": "Hex64", - "name": "TemporaryMapping:1", - "offset": 0, - "parentId": "5329" - }, - { - "id": "5335", - "kind": "Hex64", - "name": "ZeroBuffer:1", - "offset": 0, - "parentId": "5329" - }, - { - "id": "5336", - "kind": "Hex64", - "name": "Address:58", - "offset": 0, - "parentId": "5329" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "BoundToMaster", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "BoundToScatterPool", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "OwnedByMaster", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "OwnedByScatterPool", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "TemporaryMapping", + "bitOffset": 4, + "bitWidth": 1 + }, + { + "name": "ZeroBuffer", + "bitOffset": 5, + "bitWidth": 1 + }, + { + "name": "Address", + "bitOffset": 6, + "bitWidth": 58 + } + ] }, { "id": "5337", @@ -53284,74 +52998,57 @@ "id": "6577", "kind": "Struct", "name": "bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "6576", - "refId": "0", - "collapsed": false - }, - { - "id": "6578", - "kind": "Hex32", - "name": "Mask:1", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6579", - "kind": "Hex32", - "name": "Polarity:1", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6580", - "kind": "Hex32", - "name": "MessageType:3", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6581", - "kind": "Hex32", - "name": "RequestEOI:1", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6582", - "kind": "Hex32", - "name": "DestinationMode:1", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6583", - "kind": "Hex32", - "name": "MessageType3:1", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6584", - "kind": "Hex32", - "name": "Destination:8", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6585", - "kind": "Hex32", - "name": "Vector:8", - "offset": 0, - "parentId": "6577" - }, - { - "id": "6586", - "kind": "Hex32", - "name": "ExtendedAddress:8", - "offset": 0, - "parentId": "6577" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Mask", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Polarity", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "MessageType", + "bitOffset": 2, + "bitWidth": 3 + }, + { + "name": "RequestEOI", + "bitOffset": 5, + "bitWidth": 1 + }, + { + "name": "DestinationMode", + "bitOffset": 6, + "bitWidth": 1 + }, + { + "name": "MessageType3", + "bitOffset": 7, + "bitWidth": 1 + }, + { + "name": "Destination", + "bitOffset": 8, + "bitWidth": 8 + }, + { + "name": "Vector", + "bitOffset": 16, + "bitWidth": 8 + }, + { + "name": "ExtendedAddress", + "bitOffset": 24, + "bitWidth": 8 + } + ] }, { "id": "6587", @@ -53374,39 +53071,32 @@ "id": "6589", "kind": "Struct", "name": "bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "6588", - "refId": "0", - "collapsed": false - }, - { - "id": "6590", - "kind": "Hex32", - "name": "ExtendedDestination:24", - "offset": 0, - "parentId": "6589" - }, - { - "id": "6591", - "kind": "Hex32", - "name": "Reserved:6", - "offset": 0, - "parentId": "6589" - }, - { - "id": "6592", - "kind": "Hex32", - "name": "PassPW:1", - "offset": 0, - "parentId": "6589" - }, - { - "id": "6593", - "kind": "Hex32", - "name": "WaitingForEOI:1", - "offset": 0, - "parentId": "6589" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "ExtendedDestination", + "bitOffset": 0, + "bitWidth": 24 + }, + { + "name": "Reserved", + "bitOffset": 24, + "bitWidth": 6 + }, + { + "name": "PassPW", + "bitOffset": 30, + "bitWidth": 1 + }, + { + "name": "WaitingForEOI", + "bitOffset": 31, + "bitWidth": 1 + } + ] }, { "id": "6594", @@ -60488,102 +60178,77 @@ "id": "7435", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "7434", - "refId": "0", - "collapsed": false - }, - { - "id": "7436", - "kind": "Hex32", - "name": "QueueType:3", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7437", - "kind": "Hex32", - "name": "QueuePortType:4", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7438", - "kind": "Hex32", - "name": "Canceled:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7439", - "kind": "Hex32", - "name": "Ready:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7440", - "kind": "Hex32", - "name": "ReleaseMessage:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7441", - "kind": "Hex32", - "name": "SharedQuota:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7442", - "kind": "Hex32", - "name": "ReplyWaitReply:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7443", - "kind": "Hex32", - "name": "OwnerPortReference:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7444", - "kind": "Hex32", - "name": "ReceiverReference:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7445", - "kind": "Hex32", - "name": "ViewAttributeRetrieved:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7446", - "kind": "Hex32", - "name": "ViewAttributeDeleteOnRelease:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7447", - "kind": "Hex32", - "name": "InDispatch:1", - "offset": 0, - "parentId": "7435" - }, - { - "id": "7448", - "kind": "Hex32", - "name": "InCanceledQueue:1", - "offset": 0, - "parentId": "7435" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "QueueType", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "QueuePortType", + "bitOffset": 3, + "bitWidth": 4 + }, + { + "name": "Canceled", + "bitOffset": 7, + "bitWidth": 1 + }, + { + "name": "Ready", + "bitOffset": 8, + "bitWidth": 1 + }, + { + "name": "ReleaseMessage", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "SharedQuota", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "ReplyWaitReply", + "bitOffset": 11, + "bitWidth": 1 + }, + { + "name": "OwnerPortReference", + "bitOffset": 12, + "bitWidth": 1 + }, + { + "name": "ReceiverReference", + "bitOffset": 13, + "bitWidth": 1 + }, + { + "name": "ViewAttributeRetrieved", + "bitOffset": 14, + "bitWidth": 1 + }, + { + "name": "ViewAttributeDeleteOnRelease", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "InDispatch", + "bitOffset": 16, + "bitWidth": 1 + }, + { + "name": "InCanceledQueue", + "bitOffset": 17, + "bitWidth": 1 + } + ] }, { "id": "7449", @@ -60919,18 +60584,17 @@ "id": "7486", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "7485", - "refId": "0", - "collapsed": false - }, - { - "id": "7487", - "kind": "Hex32", - "name": "Secure:1", - "offset": 0, - "parentId": "7486" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Secure", + "bitOffset": 0, + "bitWidth": 1 + } + ] }, { "id": "7488", @@ -61103,25 +60767,22 @@ "id": "7507", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "7506", - "refId": "0", - "collapsed": false - }, - { - "id": "7508", - "kind": "Hex32", - "name": "Internal:1", - "offset": 0, - "parentId": "7507" - }, - { - "id": "7509", - "kind": "Hex32", - "name": "Secure:1", - "offset": 0, - "parentId": "7507" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Internal", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Secure", + "bitOffset": 1, + "bitWidth": 1 + } + ] }, { "id": "7510", @@ -61210,25 +60871,22 @@ "id": "7519", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "7518", - "refId": "0", - "collapsed": false - }, - { - "id": "7520", - "kind": "Hex32", - "name": "Revoked:1", - "offset": 0, - "parentId": "7519" - }, - { - "id": "7521", - "kind": "Hex32", - "name": "Impersonated:1", - "offset": 0, - "parentId": "7519" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Revoked", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Impersonated", + "bitOffset": 1, + "bitWidth": 1 + } + ] }, { "id": "7522", @@ -61325,39 +60983,32 @@ "id": "7532", "kind": "Struct", "name": "s1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "7531", - "refId": "0", - "collapsed": false - }, - { - "id": "7533", - "kind": "Hex32", - "name": "WriteAccess:1", - "offset": 0, - "parentId": "7532" - }, - { - "id": "7534", - "kind": "Hex32", - "name": "AutoRelease:1", - "offset": 0, - "parentId": "7532" - }, - { - "id": "7535", - "kind": "Hex32", - "name": "ForceUnlink:1", - "offset": 0, - "parentId": "7532" - }, - { - "id": "7536", - "kind": "Hex32", - "name": "SystemSpace:1", - "offset": 0, - "parentId": "7532" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "WriteAccess", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "AutoRelease", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "ForceUnlink", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "SystemSpace", + "bitOffset": 3, + "bitWidth": 1 + } + ] }, { "id": "7537", @@ -64776,81 +64427,62 @@ "id": "7953", "kind": "Struct", "name": "Bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "7947", - "refId": "0", - "collapsed": false - }, - { - "id": "7954", - "kind": "Hex32", - "name": "BaseMid:8", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7955", - "kind": "Hex32", - "name": "Type:5", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7956", - "kind": "Hex32", - "name": "Dpl:2", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7957", - "kind": "Hex32", - "name": "Pres:1", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7958", - "kind": "Hex32", - "name": "LimitHi:4", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7959", - "kind": "Hex32", - "name": "Sys:1", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7960", - "kind": "Hex32", - "name": "Reserved_0:1", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7961", - "kind": "Hex32", - "name": "Default_Big:1", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7962", - "kind": "Hex32", - "name": "Granularity:1", - "offset": 0, - "parentId": "7953" - }, - { - "id": "7963", - "kind": "Hex32", - "name": "BaseHi:8", - "offset": 0, - "parentId": "7953" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "BaseMid", + "bitOffset": 0, + "bitWidth": 8 + }, + { + "name": "Type", + "bitOffset": 8, + "bitWidth": 5 + }, + { + "name": "Dpl", + "bitOffset": 13, + "bitWidth": 2 + }, + { + "name": "Pres", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "LimitHi", + "bitOffset": 16, + "bitWidth": 4 + }, + { + "name": "Sys", + "bitOffset": 20, + "bitWidth": 1 + }, + { + "name": "Reserved_0", + "bitOffset": 21, + "bitWidth": 1 + }, + { + "name": "Default_Big", + "bitOffset": 22, + "bitWidth": 1 + }, + { + "name": "Granularity", + "bitOffset": 23, + "bitWidth": 1 + }, + { + "name": "BaseHi", + "bitOffset": 24, + "bitWidth": 8 + } + ] }, { "id": "7964", @@ -65423,39 +65055,32 @@ "id": "8034", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 10, "parentId": "8029", - "refId": "0", - "collapsed": false - }, - { - "id": "8035", - "kind": "Hex8", - "name": "ProcessorOnly:1", - "offset": 0, - "parentId": "8034" - }, - { - "id": "8036", - "kind": "Hex8", - "name": "GroupsAssigned:1", - "offset": 0, - "parentId": "8034" - }, - { - "id": "8037", - "kind": "Hex8", - "name": "MeasurableDistance:1", - "offset": 0, - "parentId": "8034" - }, - { - "id": "8038", - "kind": "Hex8", - "name": "SmtSetsPresent:1", - "offset": 0, - "parentId": "8034" + "elementKind": "Hex8", + "bitfieldMembers": [ + { + "name": "ProcessorOnly", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "GroupsAssigned", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "MeasurableDistance", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "SmtSetsPresent", + "bitOffset": 3, + "bitWidth": 1 + } + ] }, { "id": "8039", @@ -69858,25 +69483,22 @@ "id": "8586", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "8584", - "refId": "0", - "collapsed": false - }, - { - "id": "8587", - "kind": "Hex64", - "name": "SecureProcess:1", - "offset": 0, - "parentId": "8586" - }, - { - "id": "8588", - "kind": "Hex64", - "name": "TrustedApp:1", - "offset": 0, - "parentId": "8586" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "SecureProcess", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "TrustedApp", + "bitOffset": 1, + "bitWidth": 1 + } + ] }, { "id": "8589", @@ -83205,91 +82827,73 @@ "id": "10250", "kind": "Struct", "name": "Leaf", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10249", - "refId": "0", - "collapsed": false - }, - { - "id": "10251", - "kind": "Hex64", - "name": "Tradable:1", - "offset": 0, - "parentId": "10250" - }, - { - "id": "10252", - "kind": "Hex64", - "name": "NonPagedBuddy:43", - "offset": 0, - "parentId": "10250" - }, - { - "id": "10253", - "kind": "Hex64", - "name": "Spare:20", - "offset": 0, - "parentId": "10250" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "Tradable", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "NonPagedBuddy", + "bitOffset": 1, + "bitWidth": 43 + }, + { + "name": "Spare", + "bitOffset": 44, + "bitWidth": 20 + } + ] }, { "id": "10254", "kind": "Struct", "name": "PageTable", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10249", - "refId": "0", - "collapsed": false - }, - { - "id": "10255", - "kind": "Hex64", - "name": "Tradable:1", - "offset": 0, - "parentId": "10254" - }, - { - "id": "10256", - "kind": "Hex64", - "name": "NonPagedBuddy:31", - "offset": 0, - "parentId": "10254" - }, - { - "id": "10257", - "kind": "Hex64", - "name": "UsedPageTableEntries:10", - "offset": 0, - "parentId": "10254" - }, - { - "id": "10258", - "kind": "Hex64", - "name": "WsleAge:3", - "offset": 0, - "parentId": "10254" - }, - { - "id": "10259", - "kind": "Hex64", - "name": "OldestWsleLeafEntries:10", - "offset": 0, - "parentId": "10254" - }, - { - "id": "10260", - "kind": "Hex64", - "name": "OldestWsleLeafAge:3", - "offset": 0, - "parentId": "10254" - }, - { - "id": "10261", - "kind": "Hex64", - "name": "Spare:6", - "offset": 0, - "parentId": "10254" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "Tradable", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "NonPagedBuddy", + "bitOffset": 1, + "bitWidth": 31 + }, + { + "name": "UsedPageTableEntries", + "bitOffset": 32, + "bitWidth": 10 + }, + { + "name": "WsleAge", + "bitOffset": 42, + "bitWidth": 3 + }, + { + "name": "OldestWsleLeafEntries", + "bitOffset": 45, + "bitWidth": 10 + }, + { + "name": "OldestWsleLeafAge", + "bitOffset": 55, + "bitWidth": 3 + }, + { + "name": "Spare", + "bitOffset": 58, + "bitWidth": 6 + } + ] }, { "id": "10262", @@ -84275,32 +83879,27 @@ "id": "10381", "kind": "Struct", "name": "e2", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10379", - "refId": "0", - "collapsed": false - }, - { - "id": "10382", - "kind": "Hex32", - "name": "Pending:1", - "offset": 0, - "parentId": "10381" - }, - { - "id": "10383", - "kind": "Hex32", - "name": "Reserved:1", - "offset": 0, - "parentId": "10381" - }, - { - "id": "10384", - "kind": "Hex32", - "name": "Offset:30", - "offset": 0, - "parentId": "10381" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Pending", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Offset", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "10385", @@ -85882,181 +85481,145 @@ "id": "10585", "kind": "Struct", "name": "e2", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10582", - "refId": "0", - "collapsed": false - }, - { - "id": "10586", - "kind": "Hex64", - "name": "PageState:3", - "offset": 0, - "parentId": "10585" - }, - { - "id": "10587", - "kind": "Hex64", - "name": "HasError:1", - "offset": 0, - "parentId": "10585" - }, - { - "id": "10588", - "kind": "Hex64", - "name": "Partition:11", - "offset": 0, - "parentId": "10585" - }, - { - "id": "10589", - "kind": "Hex64", - "name": "ZeroedDuringStateChanges:49", - "offset": 0, - "parentId": "10585" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "PageState", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "HasError", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "Partition", + "bitOffset": 4, + "bitWidth": 11 + }, + { + "name": "ZeroedDuringStateChanges", + "bitOffset": 15, + "bitWidth": 49 + } + ] }, { "id": "10590", "kind": "Struct", "name": "OnList", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10582", - "refId": "0", - "collapsed": false - }, - { - "id": "10591", - "kind": "Hex64", - "name": "PageState:3", - "offset": 0, - "parentId": "10590" - }, - { - "id": "10592", - "kind": "Hex64", - "name": "HasError:1", - "offset": 0, - "parentId": "10590" - }, - { - "id": "10593", - "kind": "Hex64", - "name": "Partition:11", - "offset": 0, - "parentId": "10590" - }, - { - "id": "10594", - "kind": "Hex64", - "name": "Flink:22", - "offset": 0, - "parentId": "10590" - }, - { - "id": "10595", - "kind": "Hex64", - "name": "Blink:22", - "offset": 0, - "parentId": "10590" - }, - { - "id": "10596", - "kind": "Hex64", - "name": "WriteInProgress:1", - "offset": 0, - "parentId": "10590" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "PageState", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "HasError", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "Partition", + "bitOffset": 4, + "bitWidth": 11 + }, + { + "name": "Flink", + "bitOffset": 15, + "bitWidth": 22 + }, + { + "name": "Blink", + "bitOffset": 37, + "bitWidth": 22 + }, + { + "name": "WriteInProgress", + "bitOffset": 59, + "bitWidth": 1 + } + ] }, { "id": "10597", "kind": "Struct", "name": "Active", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10582", - "refId": "0", - "collapsed": false - }, - { - "id": "10598", - "kind": "Hex64", - "name": "PageState:3", - "offset": 0, - "parentId": "10597" - }, - { - "id": "10599", - "kind": "Hex64", - "name": "HasError:1", - "offset": 0, - "parentId": "10597" - }, - { - "id": "10600", - "kind": "Hex64", - "name": "Partition:11", - "offset": 0, - "parentId": "10597" - }, - { - "id": "10601", - "kind": "Hex64", - "name": "DeleteBit:1", - "offset": 0, - "parentId": "10597" - }, - { - "id": "10602", - "kind": "Hex64", - "name": "ContentsWereNonZeroWhenInitiallyUnlinked:1", - "offset": 0, - "parentId": "10597" - }, - { - "id": "10603", - "kind": "Hex64", - "name": "ShareCount:22", - "offset": 0, - "parentId": "10597" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "PageState", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "HasError", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "Partition", + "bitOffset": 4, + "bitWidth": 11 + }, + { + "name": "DeleteBit", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "ContentsWereNonZeroWhenInitiallyUnlinked", + "bitOffset": 16, + "bitWidth": 1 + }, + { + "name": "ShareCount", + "bitOffset": 17, + "bitWidth": 22 + } + ] }, { "id": "10604", "kind": "Struct", "name": "Transition", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10582", - "refId": "0", - "collapsed": false - }, - { - "id": "10605", - "kind": "Hex64", - "name": "PageState:3", - "offset": 0, - "parentId": "10604" - }, - { - "id": "10606", - "kind": "Hex64", - "name": "HasError:1", - "offset": 0, - "parentId": "10604" - }, - { - "id": "10607", - "kind": "Hex64", - "name": "Partition:11", - "offset": 0, - "parentId": "10604" - }, - { - "id": "10608", - "kind": "Hex64", - "name": "DanglingIoNodes:9", - "offset": 0, - "parentId": "10604" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "PageState", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "HasError", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "Partition", + "bitOffset": 4, + "bitWidth": 11 + }, + { + "name": "DanglingIoNodes", + "bitOffset": 15, + "bitWidth": 9 + } + ] }, { "id": "10609", @@ -86099,46 +85662,37 @@ "id": "10613", "kind": "Struct", "name": "OnList", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "10610", - "refId": "0", - "collapsed": false - }, - { - "id": "10614", - "kind": "Hex64", - "name": "PageState:3", - "offset": 0, - "parentId": "10613" - }, - { - "id": "10615", - "kind": "Hex64", - "name": "LockBit:1", - "offset": 0, - "parentId": "10613" - }, - { - "id": "10616", - "kind": "Hex64", - "name": "Partition:11", - "offset": 0, - "parentId": "10613" - }, - { - "id": "10617", - "kind": "Hex64", - "name": "Flink:22", - "offset": 0, - "parentId": "10613" - }, - { - "id": "10618", - "kind": "Hex64", - "name": "Blink:22", - "offset": 0, - "parentId": "10613" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "PageState", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "LockBit", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "Partition", + "bitOffset": 4, + "bitWidth": 11 + }, + { + "name": "Flink", + "bitOffset": 15, + "bitWidth": 22 + }, + { + "name": "Blink", + "bitOffset": 37, + "bitWidth": 22 + } + ] }, { "id": "10619", @@ -87007,32 +86561,27 @@ "id": "10720", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 15184, "parentId": "10701", - "refId": "0", - "collapsed": false - }, - { - "id": "10721", - "kind": "Hex32", - "name": "ChannelsHotCold:1", - "offset": 0, - "parentId": "10720" - }, - { - "id": "10722", - "kind": "Hex32", - "name": "HeatHintsDisabled:1", - "offset": 0, - "parentId": "10720" - }, - { - "id": "10723", - "kind": "Hex32", - "name": "Spare:30", - "offset": 0, - "parentId": "10720" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "ChannelsHotCold", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "HeatHintsDisabled", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Spare", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "10724", @@ -90879,87 +90428,74 @@ "id": "11179", "kind": "Struct", "name": "StandbyList", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "11177", - "refId": "0", - "collapsed": false - }, - { - "id": "11180", - "kind": "Hex32", - "name": "NodeBlinkHigh:21", - "offset": 0, - "parentId": "11179" - }, - { - "id": "11181", - "kind": "Hex32", - "name": "NodeFlinkMiddle:11", - "offset": 0, - "parentId": "11179" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "NodeBlinkHigh", + "bitOffset": 0, + "bitWidth": 21 + }, + { + "name": "NodeFlinkMiddle", + "bitOffset": 21, + "bitWidth": 11 + } + ] }, { "id": "11182", "kind": "Struct", "name": "MappedPageList", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "11177", - "refId": "0", - "collapsed": false - }, - { - "id": "11183", - "kind": "Hex8", - "name": "ModifiedListBucketIndex:4", - "offset": 0, - "parentId": "11182" + "elementKind": "Hex8", + "bitfieldMembers": [ + { + "name": "ModifiedListBucketIndex", + "bitOffset": 0, + "bitWidth": 4 + } + ] }, { "id": "11184", "kind": "Struct", "name": "Active", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "11177", - "refId": "0", - "collapsed": false - }, - { - "id": "11185", - "kind": "Hex32", - "name": "PageTableBlinkLow:16", - "offset": 0, - "parentId": "11184" - }, - { - "id": "11186", - "kind": "Hex32", - "name": "PageTableBuddyHigh:10", - "offset": 0, - "parentId": "11184" - }, - { - "id": "11187", - "kind": "Hex32", - "name": "PageTableLinked:1", - "offset": 0, - "parentId": "11184" - }, - { - "id": "11188", - "kind": "Hex32", - "name": "AnchorLargePageSize:2", - "offset": 0, - "parentId": "11184" - }, - { - "id": "11189", - "kind": "Hex32", - "name": "Spare1:3", - "offset": 0, - "parentId": "11184" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "PageTableBlinkLow", + "bitOffset": 0, + "bitWidth": 16 + }, + { + "name": "PageTableBuddyHigh", + "bitOffset": 16, + "bitWidth": 10 + }, + { + "name": "PageTableLinked", + "bitOffset": 26, + "bitWidth": 1 + }, + { + "name": "AnchorLargePageSize", + "bitOffset": 27, + "bitWidth": 2 + }, + { + "name": "Spare1", + "bitOffset": 29, + "bitWidth": 3 + } + ] }, { "id": "11190", @@ -91407,25 +90943,22 @@ "id": "11244", "kind": "Struct", "name": "e1", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "11243", - "refId": "0", - "collapsed": false - }, - { - "id": "11245", - "kind": "Hex64", - "name": "AllocationType:3", - "offset": 0, - "parentId": "11244" - }, - { - "id": "11246", - "kind": "Hex64", - "name": "Inserted:1", - "offset": 0, - "parentId": "11244" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "AllocationType", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "Inserted", + "bitOffset": 3, + "bitWidth": 1 + } + ] }, { "id": "11247", @@ -94016,32 +93549,27 @@ "id": "11546", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 32, "parentId": "11544", - "refId": "0", - "collapsed": false - }, - { - "id": "11547", - "kind": "Hex16", - "name": "NoLocalProcessors:1", - "offset": 0, - "parentId": "11546" - }, - { - "id": "11548", - "kind": "Hex32", - "name": "UniformAccess:1", - "offset": 4, - "parentId": "11546" - }, - { - "id": "11549", - "kind": "Hex16", - "name": "Spare:14", - "offset": 8, - "parentId": "11546" + "elementKind": "Hex16", + "bitfieldMembers": [ + { + "name": "NoLocalProcessors", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "UniformAccess", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Spare", + "bitOffset": 2, + "bitWidth": 14 + } + ] }, { "id": "11550", @@ -105563,32 +105091,27 @@ "id": "12957", "kind": "Struct", "name": "bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "12956", - "refId": "0", - "collapsed": false - }, - { - "id": "12958", - "kind": "Hex32", - "name": "DeviceNumber:5", - "offset": 0, - "parentId": "12957" - }, - { - "id": "12959", - "kind": "Hex32", - "name": "FunctionNumber:3", - "offset": 0, - "parentId": "12957" - }, - { - "id": "12960", - "kind": "Hex32", - "name": "Reserved:24", - "offset": 0, - "parentId": "12957" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "DeviceNumber", + "bitOffset": 0, + "bitWidth": 5 + }, + { + "name": "FunctionNumber", + "bitOffset": 5, + "bitWidth": 3 + }, + { + "name": "Reserved", + "bitOffset": 8, + "bitWidth": 24 + } + ] }, { "id": "12961", @@ -129552,25 +129075,22 @@ "id": "15915", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "15914", - "refId": "0", - "collapsed": false - }, - { - "id": "15916", - "kind": "Hex8", - "name": "PageAlignLargeAllocs:1", - "offset": 0, - "parentId": "15915" - }, - { - "id": "15917", - "kind": "Hex8", - "name": "EnableDelayFree:1", - "offset": 0, - "parentId": "15915" + "elementKind": "Hex8", + "bitfieldMembers": [ + { + "name": "PageAlignLargeAllocs", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "EnableDelayFree", + "bitOffset": 1, + "bitWidth": 1 + } + ] }, { "id": "15918", @@ -140196,32 +139716,27 @@ "id": "17233", "kind": "Struct", "name": "s", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "17231", - "refId": "0", - "collapsed": false - }, - { - "id": "17234", - "kind": "Hex32", - "name": "LongFunction:1", - "offset": 0, - "parentId": "17233" - }, - { - "id": "17235", - "kind": "Hex32", - "name": "Persistent:1", - "offset": 0, - "parentId": "17233" - }, - { - "id": "17236", - "kind": "Hex32", - "name": "Private:30", - "offset": 0, - "parentId": "17233" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "LongFunction", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Persistent", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Private", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "17237", @@ -141851,25 +141366,22 @@ "id": "17426", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "17424", - "refId": "0", - "collapsed": false - }, - { - "id": "17427", - "kind": "Hex32", - "name": "SnapSharedExportsFailed:1", - "offset": 0, - "parentId": "17426" - }, - { - "id": "17428", - "kind": "Hex32", - "name": "Spare:31", - "offset": 0, - "parentId": "17426" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "SnapSharedExportsFailed", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Spare", + "bitOffset": 1, + "bitWidth": 31 + } + ] }, { "id": "17429", @@ -141957,32 +141469,27 @@ "id": "17438", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "17437", - "refId": "0", - "collapsed": false - }, - { - "id": "17439", - "kind": "Hex32", - "name": "MissedEtwRegistration:1", - "offset": 0, - "parentId": "17438" - }, - { - "id": "17440", - "kind": "Hex32", - "name": "IsBootDriver:1", - "offset": 0, - "parentId": "17438" - }, - { - "id": "17441", - "kind": "Hex32", - "name": "Spare:30", - "offset": 0, - "parentId": "17438" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "MissedEtwRegistration", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "IsBootDriver", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Spare", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "17442", @@ -146448,32 +145955,27 @@ "id": "17992", "kind": "Struct", "name": "bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "17991", - "refId": "0", - "collapsed": false - }, - { - "id": "17993", - "kind": "Hex32", - "name": "DeviceNumber:5", - "offset": 0, - "parentId": "17992" - }, - { - "id": "17994", - "kind": "Hex32", - "name": "FunctionNumber:3", - "offset": 0, - "parentId": "17992" - }, - { - "id": "17995", - "kind": "Hex32", - "name": "Reserved:24", - "offset": 0, - "parentId": "17992" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "DeviceNumber", + "bitOffset": 0, + "bitWidth": 5 + }, + { + "name": "FunctionNumber", + "bitOffset": 5, + "bitWidth": 3 + }, + { + "name": "Reserved", + "bitOffset": 8, + "bitWidth": 24 + } + ] }, { "id": "17996", @@ -150836,126 +150338,98 @@ "id": "18529", "kind": "Struct", "name": "FailureReason", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "18528", - "refId": "0", - "collapsed": false - }, - { - "id": "18530", - "kind": "Hex32", - "name": "NotSupported:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18531", - "kind": "Hex32", - "name": "Overflow:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18532", - "kind": "Hex32", - "name": "ContextCorrupt:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18533", - "kind": "Hex32", - "name": "RestartIpErrorIpNotValid:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18534", - "kind": "Hex32", - "name": "NoRecoveryContext:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18535", - "kind": "Hex32", - "name": "MiscOrAddrNotValid:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18536", - "kind": "Hex32", - "name": "InvalidAddressMode:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18537", - "kind": "Hex32", - "name": "HighIrql:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18538", - "kind": "Hex32", - "name": "InterruptsDisabled:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18539", - "kind": "Hex32", - "name": "SwapBusy:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18540", - "kind": "Hex32", - "name": "StackOverflow:1", - "offset": 0, - "parentId": "18529" - }, - { - "id": "18541", - "kind": "Hex32", - "name": "Reserved:21", - "offset": 0, - "parentId": "18529" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "NotSupported", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "Overflow", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "ContextCorrupt", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "RestartIpErrorIpNotValid", + "bitOffset": 3, + "bitWidth": 1 + }, + { + "name": "NoRecoveryContext", + "bitOffset": 4, + "bitWidth": 1 + }, + { + "name": "MiscOrAddrNotValid", + "bitOffset": 5, + "bitWidth": 1 + }, + { + "name": "InvalidAddressMode", + "bitOffset": 6, + "bitWidth": 1 + }, + { + "name": "HighIrql", + "bitOffset": 7, + "bitWidth": 1 + }, + { + "name": "InterruptsDisabled", + "bitOffset": 8, + "bitWidth": 1 + }, + { + "name": "SwapBusy", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "StackOverflow", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 11, + "bitWidth": 21 + } + ] }, { "id": "18542", "kind": "Struct", "name": "Action", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 4, "parentId": "18528", - "refId": "0", - "collapsed": false - }, - { - "id": "18543", - "kind": "Hex32", - "name": "RecoveryAttempted:1", - "offset": 0, - "parentId": "18542" - }, - { - "id": "18544", - "kind": "Hex32", - "name": "HvHandled:1", - "offset": 0, - "parentId": "18542" - }, - { - "id": "18545", - "kind": "Hex32", - "name": "Reserved:30", - "offset": 0, - "parentId": "18542" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "RecoveryAttempted", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "HvHandled", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "18546", @@ -155107,164 +154581,129 @@ "id": "19069", "kind": "Struct", "name": "CapReg", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19064", - "refId": "0", - "collapsed": false - }, - { - "id": "19070", - "kind": "Hex32", - "name": "Padding:3", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19071", - "kind": "Hex32", - "name": "PasidMaxWidth:5", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19072", - "kind": "Hex32", - "name": "PasidExePerm:1", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19073", - "kind": "Hex32", - "name": "PasidPrivMode:1", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19074", - "kind": "Hex32", - "name": "AtsPageAlignedRequest:1", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19075", - "kind": "Hex32", - "name": "AtsGlobalInvalidate:1", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19076", - "kind": "Hex32", - "name": "AtsInvalidateQueueDepth:5", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19077", - "kind": "Hex32", - "name": "PriPrgResponsePasidRequired:1", - "offset": 0, - "parentId": "19069" - }, - { - "id": "19078", - "kind": "Hex32", - "name": "Rsvd:14", - "offset": 0, - "parentId": "19069" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Padding", + "bitOffset": 0, + "bitWidth": 3 + }, + { + "name": "PasidMaxWidth", + "bitOffset": 3, + "bitWidth": 5 + }, + { + "name": "PasidExePerm", + "bitOffset": 8, + "bitWidth": 1 + }, + { + "name": "PasidPrivMode", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "AtsPageAlignedRequest", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "AtsGlobalInvalidate", + "bitOffset": 11, + "bitWidth": 1 + }, + { + "name": "AtsInvalidateQueueDepth", + "bitOffset": 12, + "bitWidth": 5 + }, + { + "name": "PriPrgResponsePasidRequired", + "bitOffset": 17, + "bitWidth": 1 + }, + { + "name": "Rsvd", + "bitOffset": 18, + "bitWidth": 14 + } + ] }, { "id": "19079", "kind": "Struct", "name": "EnabledCaps", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19064", - "refId": "0", - "collapsed": false - }, - { - "id": "19080", - "kind": "Hex32", - "name": "Padding:18", - "offset": 0, - "parentId": "19079" - }, - { - "id": "19081", - "kind": "Hex32", - "name": "AtsEnable:1", - "offset": 0, - "parentId": "19079" - }, - { - "id": "19082", - "kind": "Hex32", - "name": "PriEnable:1", - "offset": 0, - "parentId": "19079" - }, - { - "id": "19083", - "kind": "Hex32", - "name": "PasidEnable:1", - "offset": 0, - "parentId": "19079" - }, - { - "id": "19084", - "kind": "Hex32", - "name": "ExecutePermissionEnable:1", - "offset": 0, - "parentId": "19079" - }, - { - "id": "19085", - "kind": "Hex32", - "name": "PrivilegedModeEnable:1", - "offset": 0, - "parentId": "19079" - }, - { - "id": "19086", - "kind": "Hex32", - "name": "Rsvd:9", - "offset": 0, - "parentId": "19079" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Padding", + "bitOffset": 0, + "bitWidth": 18 + }, + { + "name": "AtsEnable", + "bitOffset": 18, + "bitWidth": 1 + }, + { + "name": "PriEnable", + "bitOffset": 19, + "bitWidth": 1 + }, + { + "name": "PasidEnable", + "bitOffset": 20, + "bitWidth": 1 + }, + { + "name": "ExecutePermissionEnable", + "bitOffset": 21, + "bitWidth": 1 + }, + { + "name": "PrivilegedModeEnable", + "bitOffset": 22, + "bitWidth": 1 + }, + { + "name": "Rsvd", + "bitOffset": 23, + "bitWidth": 9 + } + ] }, { "id": "19087", "kind": "Struct", "name": "DeviceInformation", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19064", - "refId": "0", - "collapsed": false - }, - { - "id": "19088", - "kind": "Hex32", - "name": "Padding:23", - "offset": 0, - "parentId": "19087" - }, - { - "id": "19089", - "kind": "Hex32", - "name": "IsSecureDevice:1", - "offset": 0, - "parentId": "19087" - }, - { - "id": "19090", - "kind": "Hex32", - "name": "Rsvd:8", - "offset": 0, - "parentId": "19087" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "Padding", + "bitOffset": 0, + "bitWidth": 23 + }, + { + "name": "IsSecureDevice", + "bitOffset": 23, + "bitWidth": 1 + }, + { + "name": "Rsvd", + "bitOffset": 24, + "bitWidth": 8 + } + ] }, { "id": "19091", @@ -155628,81 +155067,62 @@ "id": "19137", "kind": "Struct", "name": "Bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19136", - "refId": "0", - "collapsed": false - }, - { - "id": "19138", - "kind": "Hex32", - "name": "BaseMiddle:8", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19139", - "kind": "Hex32", - "name": "Type:5", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19140", - "kind": "Hex32", - "name": "Dpl:2", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19141", - "kind": "Hex32", - "name": "Present:1", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19142", - "kind": "Hex32", - "name": "LimitHigh:4", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19143", - "kind": "Hex32", - "name": "System:1", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19144", - "kind": "Hex32", - "name": "LongMode:1", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19145", - "kind": "Hex32", - "name": "DefaultBig:1", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19146", - "kind": "Hex32", - "name": "Granularity:1", - "offset": 0, - "parentId": "19137" - }, - { - "id": "19147", - "kind": "Hex32", - "name": "BaseHigh:8", - "offset": 0, - "parentId": "19137" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "BaseMiddle", + "bitOffset": 0, + "bitWidth": 8 + }, + { + "name": "Type", + "bitOffset": 8, + "bitWidth": 5 + }, + { + "name": "Dpl", + "bitOffset": 13, + "bitWidth": 2 + }, + { + "name": "Present", + "bitOffset": 15, + "bitWidth": 1 + }, + { + "name": "LimitHigh", + "bitOffset": 16, + "bitWidth": 4 + }, + { + "name": "System", + "bitOffset": 20, + "bitWidth": 1 + }, + { + "name": "LongMode", + "bitOffset": 21, + "bitWidth": 1 + }, + { + "name": "DefaultBig", + "bitOffset": 22, + "bitWidth": 1 + }, + { + "name": "Granularity", + "bitOffset": 23, + "bitWidth": 1 + }, + { + "name": "BaseHigh", + "bitOffset": 24, + "bitWidth": 8 + } + ] }, { "id": "19148", @@ -157644,70 +157064,58 @@ "id": "19400", "kind": "Struct", "name": "File", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19399", - "refId": "0", - "collapsed": false - }, - { - "id": "19401", - "kind": "Hex32", - "name": "FilePointerIndex:9", - "offset": 0, - "parentId": "19400" - }, - { - "id": "19402", - "kind": "Hex32", - "name": "HardFault:1", - "offset": 0, - "parentId": "19400" - }, - { - "id": "19403", - "kind": "Hex32", - "name": "Image:1", - "offset": 0, - "parentId": "19400" - }, - { - "id": "19404", - "kind": "Hex32", - "name": "Spare0:1", - "offset": 0, - "parentId": "19400" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "FilePointerIndex", + "bitOffset": 0, + "bitWidth": 9 + }, + { + "name": "HardFault", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "Image", + "bitOffset": 10, + "bitWidth": 1 + }, + { + "name": "Spare0", + "bitOffset": 11, + "bitWidth": 1 + } + ] }, { "id": "19405", "kind": "Struct", "name": "Private", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19399", - "refId": "0", - "collapsed": false - }, - { - "id": "19406", - "kind": "Hex32", - "name": "FilePointerIndex:9", - "offset": 0, - "parentId": "19405" - }, - { - "id": "19407", - "kind": "Hex32", - "name": "HardFault:1", - "offset": 0, - "parentId": "19405" - }, - { - "id": "19408", - "kind": "Hex32", - "name": "Spare1:2", - "offset": 0, - "parentId": "19405" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "FilePointerIndex", + "bitOffset": 0, + "bitWidth": 9 + }, + { + "name": "HardFault", + "bitOffset": 9, + "bitWidth": 1 + }, + { + "name": "Spare1", + "bitOffset": 10, + "bitWidth": 2 + } + ] }, { "id": "19409", @@ -157742,25 +157150,22 @@ "id": "19412", "kind": "Struct", "name": "Flags", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19411", - "refId": "0", - "collapsed": false - }, - { - "id": "19413", - "kind": "Hex32", - "name": "KeyType:2", - "offset": 0, - "parentId": "19412" - }, - { - "id": "19414", - "kind": "Hex32", - "name": "Spare:10", - "offset": 0, - "parentId": "19412" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "KeyType", + "bitOffset": 0, + "bitWidth": 2 + }, + { + "name": "Spare", + "bitOffset": 2, + "bitWidth": 10 + } + ] }, { "id": "19415", @@ -158049,32 +157454,27 @@ "id": "19446", "kind": "Struct", "name": "u", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19445", - "refId": "0", - "collapsed": false - }, - { - "id": "19447", - "kind": "Hex32", - "name": "RebalanceDueToDynamicPartitioning:1", - "offset": 0, - "parentId": "19446" - }, - { - "id": "19448", - "kind": "Hex32", - "name": "ResetDeviceWhileStopped:1", - "offset": 0, - "parentId": "19446" - }, - { - "id": "19449", - "kind": "Hex32", - "name": "Reserved:30", - "offset": 0, - "parentId": "19446" + "elementKind": "Hex32", + "bitfieldMembers": [ + { + "name": "RebalanceDueToDynamicPartitioning", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "ResetDeviceWhileStopped", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 2, + "bitWidth": 30 + } + ] }, { "id": "19450", @@ -159491,39 +158891,32 @@ "id": "19637", "kind": "Struct", "name": "HeaderX64", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19633", - "refId": "0", - "collapsed": false - }, - { - "id": "19638", - "kind": "Hex64", - "name": "Depth:16", - "offset": 0, - "parentId": "19637" - }, - { - "id": "19639", - "kind": "Hex64", - "name": "Sequence:48", - "offset": 0, - "parentId": "19637" - }, - { - "id": "19640", - "kind": "Hex64", - "name": "Reserved:4", - "offset": 8, - "parentId": "19637" - }, - { - "id": "19641", - "kind": "Hex64", - "name": "NextEntry:60", - "offset": 8, - "parentId": "19637" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "Depth", + "bitOffset": 0, + "bitWidth": 16 + }, + { + "name": "Sequence", + "bitOffset": 16, + "bitWidth": 48 + }, + { + "name": "Reserved", + "bitOffset": 64, + "bitWidth": 4 + }, + { + "name": "NextEntry", + "bitOffset": 68, + "bitWidth": 60 + } + ] }, { "id": "19642", @@ -160283,53 +159676,42 @@ "id": "19741", "kind": "Struct", "name": "Bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19740", - "refId": "0", - "collapsed": false - }, - { - "id": "19742", - "kind": "Hex8", - "name": "PlatformDirected:1", - "offset": 0, - "parentId": "19741" - }, - { - "id": "19743", - "kind": "Hex8", - "name": "PageSwapped:1", - "offset": 0, - "parentId": "19741" - }, - { - "id": "19744", - "kind": "Hex8", - "name": "PageDemoted:1", - "offset": 0, - "parentId": "19741" - }, - { - "id": "19745", - "kind": "Hex8", - "name": "Reserved:3", - "offset": 0, - "parentId": "19741" - }, - { - "id": "19746", - "kind": "Hex8", - "name": "NotifyAllOfflines:1", - "offset": 0, - "parentId": "19741" - }, - { - "id": "19747", - "kind": "Hex8", - "name": "PageOfflined:1", - "offset": 0, - "parentId": "19741" + "elementKind": "Hex8", + "bitfieldMembers": [ + { + "name": "PlatformDirected", + "bitOffset": 0, + "bitWidth": 1 + }, + { + "name": "PageSwapped", + "bitOffset": 1, + "bitWidth": 1 + }, + { + "name": "PageDemoted", + "bitOffset": 2, + "bitWidth": 1 + }, + { + "name": "Reserved", + "bitOffset": 3, + "bitWidth": 3 + }, + { + "name": "NotifyAllOfflines", + "bitOffset": 6, + "bitWidth": 1 + }, + { + "name": "PageOfflined", + "bitOffset": 7, + "bitWidth": 1 + } + ] }, { "id": "19748", @@ -160775,18 +160157,17 @@ "id": "19808", "kind": "Struct", "name": "Bits", - "classKeyword": "struct", + "classKeyword": "bitfield", "offset": 0, "parentId": "19807", - "refId": "0", - "collapsed": false - }, - { - "id": "19809", - "kind": "Hex64", - "name": "Reserved:64", - "offset": 0, - "parentId": "19808" + "elementKind": "Hex64", + "bitfieldMembers": [ + { + "name": "Reserved", + "bitOffset": 0, + "bitWidth": 64 + } + ] }, { "id": "19810", diff --git a/src/generator.cpp b/src/generator.cpp index 06bb52c..e511057 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -101,7 +101,9 @@ static void emitStruct(GenContext& ctx, uint64_t structId); static const QChar kCommentMarker = QChar(0x01); -static QString offsetComment(int offset) { +static QString offsetComment(int offset, bool isSizeof = false) { + if (isSizeof) + return QString(kCommentMarker) + QStringLiteral("// sizeof 0x%1").arg(QString::number(offset, 16).toUpper()); return QString(kCommentMarker) + QStringLiteral("// 0x%1").arg(QString::number(offset, 16).toUpper()); } @@ -226,6 +228,27 @@ static void emitStructBody(GenContext& ctx, uint64_t structId, // Emit the field if (child.kind == NodeKind::Struct) { + // Bitfield container — emit inline bitfield members + if (child.classKeyword == QStringLiteral("bitfield") + && !child.bitfieldMembers.isEmpty()) { + QString bfType = ctx.cType(child.elementKind); + if (bfType.isEmpty()) bfType = QStringLiteral("uint32_t"); + QString fieldName = child.name.isEmpty() + ? QString() : QStringLiteral(" ") + sanitizeIdent(child.name); + ctx.output += ind + QStringLiteral("struct\n"); + ctx.output += ind + QStringLiteral("{\n"); + QString bfInd = indent(depth + 1); + for (const auto& m : child.bitfieldMembers) { + ctx.output += bfInd + bfType + QStringLiteral(" ") + + sanitizeIdent(m.name) + QStringLiteral(" : ") + + QString::number(m.bitWidth) + QStringLiteral(";") + + offsetComment(baseOffset + child.offset) + + QStringLiteral("\n"); + } + ctx.output += ind + QStringLiteral("}") + fieldName + QStringLiteral(";") + + offsetComment(baseOffset + child.offset) + QStringLiteral("\n"); + } else { + bool isAnonymous = child.structTypeName.isEmpty(); if (isAnonymous) { @@ -251,6 +274,7 @@ static void emitStructBody(GenContext& ctx, uint64_t structId, + QStringLiteral(" ") + fieldName + QStringLiteral(";") + offsetComment(baseOffset + child.offset) + QStringLiteral("\n"); } + } // end bitfield else } else if (child.kind == NodeKind::Array) { QVector arrayKids = ctx.childMap.value(child.id); bool hasStructChild = false; @@ -338,14 +362,13 @@ static void emitStruct(GenContext& ctx, uint64_t structId) { if (kw == QStringLiteral("enum")) kw = QStringLiteral("struct"); - // Size comment (Vergilius-style) - ctx.output += QStringLiteral("//0x%1 bytes (sizeof)\n") - .arg(QString::number(structSize, 16).toUpper()); ctx.output += kw + QStringLiteral(" ") + typeName + QStringLiteral("\n{\n"); emitStructBody(ctx, structId, kw == QStringLiteral("union"), 1, 0); - ctx.output += QStringLiteral("};\n"); + ctx.output += QStringLiteral("};") + + offsetComment(structSize, true) + + QStringLiteral("\n"); if (ctx.emitAsserts) ctx.output += QStringLiteral("static_assert(sizeof(%1) == 0x%2, \"Size mismatch for %1\");\n") .arg(typeName) diff --git a/src/main.cpp b/src/main.cpp index 4c82214..b59b642 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -251,9 +251,9 @@ public: // Kill the 1px frame margin Fusion reserves around QMenu contents if (metric == PM_MenuPanelWidth) return 0; - // Kill the separator between dock widgets / central widget + // Thin draggable separator between dock widgets / central widget if (metric == PM_DockWidgetSeparatorExtent) - return 0; + return 1; return QProxyStyle::pixelMetric(metric, opt, w); } void drawPrimitive(PrimitiveElement elem, const QStyleOption* opt, @@ -1050,10 +1050,64 @@ MainWindow::SplitPane MainWindow::createSplitPane(TabState& tab) { QSettings("Reclass", "Reclass").value("relativeOffsets", true).toBool()); pane.tabWidget->addTab(pane.editor, "Reclass"); // index 0 - // Create per-pane rendered C++ view + // Create per-pane rendered C++ view with find bar + pane.renderedContainer = new QWidget; + auto* rvLayout = new QVBoxLayout(pane.renderedContainer); + rvLayout->setContentsMargins(0, 0, 0, 0); + rvLayout->setSpacing(0); pane.rendered = new QsciScintilla; setupRenderedSci(pane.rendered); - pane.tabWidget->addTab(pane.rendered, "C/C++"); // index 1 + rvLayout->addWidget(pane.rendered); + + // Find bar (hidden by default) + pane.findBar = new QLineEdit; + pane.findBar->setPlaceholderText("Find..."); + pane.findBar->setVisible(false); + const auto& fbTheme = ThemeManager::instance().current(); + pane.findBar->setStyleSheet( + QStringLiteral("QLineEdit { background: %1; color: %2; border: 1px solid %3;" + " padding: 4px 8px; font-size: 13px; }") + .arg(fbTheme.backgroundAlt.name()) + .arg(fbTheme.text.name()) + .arg(fbTheme.border.name())); + rvLayout->addWidget(pane.findBar); + + // Ctrl+F to show find bar + QsciScintilla* sci = pane.rendered; + QLineEdit* fb = pane.findBar; + auto* findAction = new QAction(pane.renderedContainer); + findAction->setShortcut(QKeySequence::Find); + findAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); + pane.renderedContainer->addAction(findAction); + connect(findAction, &QAction::triggered, fb, [fb, sci]() { + fb->setVisible(true); + fb->setFocus(); + fb->selectAll(); + }); + + // Escape to hide find bar + auto* escAction = new QAction(fb); + escAction->setShortcut(QKeySequence(Qt::Key_Escape)); + escAction->setShortcutContext(Qt::WidgetShortcut); + fb->addAction(escAction); + connect(escAction, &QAction::triggered, fb, [fb, sci]() { + fb->setVisible(false); + sci->setFocus(); + }); + + // Search on text change and Enter + connect(fb, &QLineEdit::textChanged, sci, [sci](const QString& text) { + if (text.isEmpty()) return; + sci->findFirst(text, false, false, false, true, true, 0, 0); + }); + connect(fb, &QLineEdit::returnPressed, sci, [sci, fb]() { + QString text = fb->text(); + if (text.isEmpty()) return; + if (!sci->findNext()) + sci->findFirst(text, false, false, false, true, true, 0, 0); + }); + + pane.tabWidget->addTab(pane.renderedContainer, "C/C++"); // index 1 pane.tabWidget->setCurrentIndex(0); pane.viewMode = VM_Reclass; @@ -1668,7 +1722,7 @@ void MainWindow::toggleMcp() { void MainWindow::applyTheme(const Theme& theme) { applyGlobalTheme(theme); - // Separator killed via PM_DockWidgetSeparatorExtent in MenuBarStyle + // Dock separator is 1px via PM_DockWidgetSeparatorExtent in MenuBarStyle // Custom title bar m_titleBar->applyTheme(theme); @@ -2034,6 +2088,20 @@ void MainWindow::updateRenderedView(TabState& tab, SplitPane& pane) { rootId = findRootStructForNode(tab.doc->tree, selId); } + // Fall back to the controller's current view root (set by double-click / navigation) + if (rootId == 0) + rootId = findRootStructForNode(tab.doc->tree, tab.ctrl->viewRootId()); + + // Last resort: first root-level struct in the project + if (rootId == 0) { + for (const auto& n : tab.doc->tree.nodes) { + if (n.parentId == 0 && n.kind == rcx::NodeKind::Struct) { + rootId = n.id; + break; + } + } + } + // Generate text const QHash* aliases = tab.doc->typeAliases.isEmpty() ? nullptr : &tab.doc->typeAliases; @@ -2717,19 +2785,32 @@ void MainWindow::createWorkspaceDock() { int ni = tree.indexOfId(structId); if (ni < 0) return; + auto& tab = m_tabs[sub]; + // Child member item: navigate to parent struct, then scroll to this member uint64_t parentId = tree.nodes[ni].parentId; if (parentId != 0) { int pi = tree.indexOfId(parentId); if (pi >= 0) tree.nodes[pi].collapsed = false; - m_tabs[sub].ctrl->setViewRootId(parentId); - m_tabs[sub].ctrl->scrollToNodeId(structId); + tab.ctrl->setViewRootId(parentId); + tab.ctrl->scrollToNodeId(structId); } else { // Root type/enum: navigate directly tree.nodes[ni].collapsed = false; - m_tabs[sub].ctrl->setViewRootId(structId); - m_tabs[sub].ctrl->scrollToNodeId(structId); + tab.ctrl->setViewRootId(structId); + tab.ctrl->scrollToNodeId(structId); } + + // If active pane is in C/C++ mode, refresh after navigation settles + QTimer::singleShot(0, this, [this, sub]() { + if (!m_tabs.contains(sub)) return; + auto& t = m_tabs[sub]; + if (t.activePaneIdx >= 0 && t.activePaneIdx < t.panes.size()) { + auto& p = t.panes[t.activePaneIdx]; + if (p.viewMode == VM_Rendered) + updateRenderedView(t, p); + } + }); }); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 52f9aeb..2fdf15d 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -96,6 +96,8 @@ private: QTabWidget* tabWidget = nullptr; RcxEditor* editor = nullptr; QsciScintilla* rendered = nullptr; + QLineEdit* findBar = nullptr; + QWidget* renderedContainer = nullptr; ViewMode viewMode = VM_Reclass; uint64_t lastRenderedRootId = 0; }; diff --git a/tests/test_generator.cpp b/tests/test_generator.cpp index 364deb7..ca73eb7 100644 --- a/tests/test_generator.cpp +++ b/tests/test_generator.cpp @@ -56,8 +56,8 @@ private slots: // Header QVERIFY(result.contains("#pragma once")); - // Size comment (Vergilius-style) - QVERIFY(result.contains("//0x10 bytes (sizeof)")); + // Size comment on closing brace + QVERIFY(result.contains("// sizeof 0x10")); // Struct definition (brace on new line) QVERIFY(result.contains("struct Player\n{")); diff --git a/tools/vergilius_to_rcx.py b/tools/vergilius_to_rcx.py index 33051ed..faf69bc 100644 --- a/tools/vergilius_to_rcx.py +++ b/tools/vergilius_to_rcx.py @@ -556,13 +556,11 @@ def postprocess_bitfields(nodes): ids_to_remove = set() for node in nodes: - # Only process anonymous struct nodes (not unions, not named types) + # Process struct nodes (not unions, not already bitfields, not named types) if node.get('kind') != 'Struct': continue if node.get('classKeyword') in ('union', 'bitfield'): continue - if node.get('name', '') != '': - continue if node.get('structTypeName', ''): continue