]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MpInitLib/MpLib.h
UefiCpuPkg/MpInitLib: Add CPU_VOLATILE_REGISTERS & worker functions
[mirror_edk2.git] / UefiCpuPkg / Library / MpInitLib / MpLib.h
index 84bd8721982caf6b55206cfd1ebaa9651b5d62d5..ca8bd445ba668d993c075a1dbada68d1e2617c0e 100644 (file)
@@ -65,6 +65,21 @@ typedef enum {
   CpuStateDisabled\r
 } CPU_STATE;\r
 \r
+//\r
+// CPU volatile registers around INIT-SIPI-SIPI\r
+//\r
+typedef struct {\r
+  UINTN                          Cr0;\r
+  UINTN                          Cr3;\r
+  UINTN                          Cr4;\r
+  UINTN                          Dr0;\r
+  UINTN                          Dr1;\r
+  UINTN                          Dr2;\r
+  UINTN                          Dr3;\r
+  UINTN                          Dr6;\r
+  UINTN                          Dr7;\r
+} CPU_VOLATILE_REGISTERS;\r
+\r
 //\r
 // AP related data\r
 //\r
@@ -78,6 +93,7 @@ typedef struct {
   UINT32                         Health;\r
   BOOLEAN                        CpuHealthy;\r
   volatile CPU_STATE             State;\r
+  CPU_VOLATILE_REGISTERS         VolatileRegisters;\r
   BOOLEAN                        Waiting;\r
   BOOLEAN                        *Finished;\r
   UINT64                         ExpectedTime;\r