]> 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 6d0d83ba0827368f8e2eea64aeef4c5b2d07adcf..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 - 2011, 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
-#include <Guid/IdleLoopEvent.h>\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
-//\r
-//\r
-//\r
-#define INTERRUPT_VECTOR_NUMBER   256\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
@@ -218,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
@@ -276,15 +266,14 @@ SetDataSelectors (
   );\r
 \r
 /**\r
-  Restore original Interrupt Descriptor Table Handler Address.\r
-\r
-  @param Index        The Index of the interrupt descriptor table handle.\r
-\r
+  Update GCD memory space attributes according to current page table setup.\r
 **/\r
 VOID\r
-RestoreInterruptDescriptorTableHandlerAddress (\r
-  IN UINTN       Index\r
+RefreshGcdMemoryAttributesFromPaging (\r
+  VOID\r
   );\r
 \r
+extern BOOLEAN mIsAllocatingPageTable;\r
+\r
 #endif\r
 \r