+#define GHCB_SAVE_AREA_QWORD_OFFSET(RegisterField) \\r
+ (OFFSET_OF (GHCB, SaveArea.RegisterField) / sizeof (UINT64))\r
+\r
+typedef enum {\r
+ GhcbCpl = GHCB_SAVE_AREA_QWORD_OFFSET (Cpl),\r
+ GhcbRax = GHCB_SAVE_AREA_QWORD_OFFSET (Rax),\r
+ GhcbRbx = GHCB_SAVE_AREA_QWORD_OFFSET (Rbx),\r
+ GhcbRcx = GHCB_SAVE_AREA_QWORD_OFFSET (Rcx),\r
+ GhcbRdx = GHCB_SAVE_AREA_QWORD_OFFSET (Rdx),\r
+ GhcbXCr0 = GHCB_SAVE_AREA_QWORD_OFFSET (XCr0),\r
+ GhcbSwExitCode = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitCode),\r
+ GhcbSwExitInfo1 = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo1),\r
+ GhcbSwExitInfo2 = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo2),\r
+ GhcbSwScratch = GHCB_SAVE_AREA_QWORD_OFFSET (SwScratch),\r
+} GHCB_REGISTER;\r
+\r