]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/CpuDxe/CpuDxe.h
UefiCpuPkg/CpuDxe: clear NX attr for page directory
[mirror_edk2.git] / UefiCpuPkg / CpuDxe / CpuDxe.h
index 9baccb25657092ad1babef104be876cdbef6c5a8..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 - 2012, 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/DebugLib.h>\r
 #include <Library/MtrrLib.h>\r
 #include <Library/LocalApicLib.h>\r
-#include <Guid/IdleLoopEvent.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
@@ -219,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
@@ -277,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