]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/CpuDxe/CpuDxe.h
UefiCpuPkg/CpuDxe: Enable protection for newly added page table
[mirror_edk2.git] / UefiCpuPkg / CpuDxe / CpuDxe.h
index d42f82e0bda6ea9cc1939041f0f5a59bfa6840cf..540f5f2dbf0fe4e8a4671c3e77d183f5ef281429 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
-  CPU DXE Module.\r
+  CPU DXE Module to produce CPU ARCH Protocol and CPU MP Protocol.\r
 \r
-  Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 #include <PiDxe.h>\r
 \r
 #include <Protocol/Cpu.h>\r
+#include <Protocol/MpService.h>\r
+#include <Register/Msr.h>\r
+\r
+#include <Ppi/SecPlatformInformation.h>\r
+#include <Ppi/SecPlatformInformation2.h>\r
 \r
 #include <Library/UefiDriverEntryPoint.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/MtrrLib.h>\r
-\r
-//\r
-//\r
-//\r
-#define INTERRUPT_VECTOR_NUMBER   256\r
+#include <Library/LocalApicLib.h>\r
+#include <Library/UefiCpuLib.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/CpuExceptionHandlerLib.h>\r
+#include <Library/HobLib.h>\r
+#include <Library/ReportStatusCodeLib.h>\r
+#include <Library/MpInitLib.h>\r
+#include <Library/TimerLib.h>\r
+\r
+#include <Guid/IdleLoopEvent.h>\r
+#include <Guid/VectorHandoffTable.h>\r
 \r
 #define EFI_MEMORY_CACHETYPE_MASK     (EFI_MEMORY_UC  | \\r
                                        EFI_MEMORY_WC  | \\r
                                        EFI_MEMORY_UCE   \\r
                                        )\r
 \r
+#define EFI_MEMORY_PAGETYPE_MASK      (EFI_MEMORY_RP  | \\r
+                                       EFI_MEMORY_XP  | \\r
+                                       EFI_MEMORY_RO    \\r
+                                       )\r
 \r
 /**\r
   Flush CPU data cache. If the instruction cache is fully coherent\r
@@ -217,30 +232,6 @@ CpuSetMemoryAttributes (
   IN UINT64                     Attributes\r
   );\r
 \r
-/**\r
-  Label of base address of IDT vector 0.\r
-\r
-  This is just a label of base address of IDT vector 0.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-AsmIdtVector00 (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  Initializes the pointer to the external interrupt vector table.\r
-\r
-  @param  VectorTable  Address of the external interrupt vector table.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-InitializeExternalVectorTablePtr (\r
-  EFI_CPU_INTERRUPT_HANDLER  *VectorTable\r
-  );\r
-\r
 /**\r
   Initialize Global Descriptor Table.\r
 \r
@@ -274,6 +265,15 @@ SetDataSelectors (
   UINT16 Selector\r
   );\r
 \r
+/**\r
+  Update GCD memory space attributes according to current page table setup.\r
+**/\r
+VOID\r
+RefreshGcdMemoryAttributesFromPaging (\r
+  VOID\r
+  );\r
+\r
+extern BOOLEAN mIsAllocatingPageTable;\r
 \r
 #endif\r
 \r