]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Core/Dxe/Misc/DebugImageInfo.c
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / EdkModulePkg / Core / Dxe / Misc / DebugImageInfo.c
diff --git a/EdkModulePkg/Core/Dxe/Misc/DebugImageInfo.c b/EdkModulePkg/Core/Dxe/Misc/DebugImageInfo.c
deleted file mode 100644 (file)
index 3512477..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2006 - 2007, Intel Corporation                                                         \r
-All rights reserved. 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
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-Module Name:\r
-\r
-  DebugImageInfo.c\r
-    \r
-Abstract:\r
-\r
-  Support functions for managing debug image info table when loading and unloading\r
-  images.\r
-\r
---*/\r
-\r
-#include <DxeMain.h>\r
-\r
-\r
-static EFI_DEBUG_IMAGE_INFO_TABLE_HEADER  mDebugInfoTableHeader = {\r
-  0,          // volatile UINT32                 UpdateStatus;\r
-  0,          // UINT32                          TableSize;\r
-  NULL        // EFI_DEBUG_IMAGE_INFO            *EfiDebugImageInfoTable;\r
-};\r
-\r
-static EFI_SYSTEM_TABLE_POINTER *mDebugTable = NULL;\r
-\r
-    \r
-VOID\r
-CoreInitializeDebugImageInfoTable (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Creates and initializes the DebugImageInfo Table.  Also creates the configuration\r
-  table and registers it into the system table.\r
-\r
-Arguments:\r
-  None\r
-\r
-Returns:\r
-  NA\r
-\r
-Notes:\r
-  This function allocates memory, frees it, and then allocates memory at an\r
-  address within the initial allocation. Since this function is called early\r
-  in DXE core initialization (before drivers are dispatched), this should not\r
-  be a problem.\r
-\r
---*/\r
-{ \r
-  EFI_STATUS                          Status;\r
-  EFI_PHYSICAL_ADDRESS                Mem;\r
-  UINTN                               NumberOfPages; \r
-\r
-  //\r
-  // Allocate boot services memory for the structure. It's required to be aligned on\r
-  // a 4M boundary, so allocate a 4M block (plus what we require), free it up, calculate\r
-  // a 4M aligned address within the memory we just freed, and then allocate memory at that\r
-  // address for our initial structure.\r
-  //\r
-  NumberOfPages = FOUR_MEG_PAGES + EFI_SIZE_TO_PAGES(sizeof (EFI_SYSTEM_TABLE_POINTER));  \r
-\r
-  Status = CoreAllocatePages (AllocateAnyPages, EfiBootServicesData, NumberOfPages , &Mem); \r
-  ASSERT_EFI_ERROR (Status);\r
-  if (EFI_ERROR(Status)) {\r
-    return;\r
-  }\r
-  Status = CoreFreePages (Mem, NumberOfPages); \r
-  ASSERT_EFI_ERROR (Status);\r
-  if (EFI_ERROR(Status)) {\r
-    return;\r
-  }\r
-  //\r
-  // Now get a 4M aligned address within the memory range we were given.\r
-  // Then allocate memory at that address\r
-  //\r
-  Mem = (Mem + FOUR_MEG_MASK) & (~FOUR_MEG_MASK);\r
-  \r
-  Status = CoreAllocatePages (AllocateAddress, EfiBootServicesData, NumberOfPages - FOUR_MEG_PAGES, &Mem); \r
-  ASSERT_EFI_ERROR (Status);\r
-  if (EFI_ERROR(Status)) {\r
-    return;\r
-  }\r
-  //\r
-  // We now have a 4M aligned page allocated, so fill in the data structure.\r
-  // Ideally we would update the CRC now as well, but the service may not yet be available.\r
-  // See comments in the CoreUpdateDebugTableCrc32() function below for details.\r
-  //\r
-  mDebugTable = (EFI_SYSTEM_TABLE_POINTER *)(UINTN)Mem;\r
-  mDebugTable->Signature = EFI_SYSTEM_TABLE_SIGNATURE;\r
-  mDebugTable->EfiSystemTableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) gDxeCoreST;\r
-  mDebugTable->Crc32 = 0;\r
-  Status = CoreInstallConfigurationTable (&gEfiDebugImageInfoTableGuid, &mDebugInfoTableHeader);\r
-  ASSERT_EFI_ERROR (Status);\r
-}\r
-\r
-VOID\r
-CoreUpdateDebugTableCrc32 (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Update the CRC32 in the Debug Table.\r
-  Since the CRC32 service is made available by the Runtime driver, we have to\r
-  wait for the Runtime Driver to be installed before the CRC32 can be computed.\r
-  This function is called elsewhere by the core when the runtime architectural\r
-  protocol is produced.\r
-\r
-Arguments:\r
-  None\r
-\r
-Returns:\r
-  NA\r
-\r
---*/\r
-{\r
-  ASSERT(mDebugTable != NULL);\r
-  mDebugTable->Crc32 = 0;\r
-  gDxeCoreBS->CalculateCrc32 ((VOID *)mDebugTable, sizeof (EFI_SYSTEM_TABLE_POINTER), &mDebugTable->Crc32);\r
-}\r
-\r
-VOID\r
-CoreNewDebugImageInfoEntry (\r
-  IN  UINT32                      ImageInfoType,\r
-  IN  EFI_LOADED_IMAGE_PROTOCOL   *LoadedImage,\r
-  IN  EFI_HANDLE                  ImageHandle\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Adds a new DebugImageInfo structure to the DebugImageInfo Table.  Re-Allocates\r
-  the table if it's not large enough to accomidate another entry.\r
-\r
-Arguments:\r
-\r
-  ImageInfoType     - type of debug image information\r
-  LoadedImage       - pointer to the loaded image protocol for the image being loaded\r
-  ImageHandle       - image handle for the image being loaded\r
-\r
-Returns:\r
-  NA\r
-\r
---*/\r
-{    \r
-  EFI_DEBUG_IMAGE_INFO      *Table;\r
-  EFI_DEBUG_IMAGE_INFO      *NewTable;\r
-  UINTN                     Index;\r
-  UINTN                     MaxTableIndex;\r
-  UINTN                     TableSize;\r
-\r
-  //\r
-  // Set the flag indicating that we're in the process of updating the table.\r
-  //\r
-  mDebugInfoTableHeader.UpdateStatus |= EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
-\r
-  Table = mDebugInfoTableHeader.EfiDebugImageInfoTable;\r
-  MaxTableIndex = mDebugInfoTableHeader.TableSize;\r
-\r
-  for (Index = 0; Index < MaxTableIndex; Index++) {\r
-    if (Table[Index].NormalImage == NULL) {\r
-      //\r
-      // We have found a free entry so exit the loop\r
-      //\r
-      break;\r
-    }\r
-  }\r
-  if (Index == MaxTableIndex) {\r
-    //\r
-    //  Table is full, so re-allocate another page for a larger table...\r
-    //\r
-    TableSize = MaxTableIndex * EFI_DEBUG_TABLE_ENTRY_SIZE;\r
-    NewTable = CoreAllocateZeroBootServicesPool (TableSize + EFI_PAGE_SIZE);\r
-    if (NewTable == NULL) {\r
-      mDebugInfoTableHeader.UpdateStatus &= ~EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
-      return;\r
-    }\r
-    //\r
-    // Copy the old table into the new one\r
-    //\r
-    CopyMem (NewTable, Table, TableSize);\r
-    //\r
-    // Free the old table\r
-    //\r
-    CoreFreePool (Table);\r
-    //\r
-    // Update the table header\r
-    //\r
-    Table = NewTable;\r
-    mDebugInfoTableHeader.EfiDebugImageInfoTable = NewTable;\r
-    mDebugInfoTableHeader.TableSize += EFI_PAGE_SIZE / EFI_DEBUG_TABLE_ENTRY_SIZE;\r
-  }\r
-  //\r
-  // Allocate data for new entry\r
-  //\r
-  Table[Index].NormalImage = CoreAllocateZeroBootServicesPool (sizeof (EFI_DEBUG_IMAGE_INFO_NORMAL));\r
-  if (Table[Index].NormalImage != NULL) {\r
-    //\r
-    // Update the entry\r
-    //\r
-    Table[Index].NormalImage->ImageInfoType               = (UINT32) ImageInfoType;\r
-    Table[Index].NormalImage->LoadedImageProtocolInstance = LoadedImage;\r
-    Table[Index].NormalImage->ImageHandle                 = ImageHandle;\r
-  }\r
-  mDebugInfoTableHeader.UpdateStatus &= ~EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
-}\r
-\r
-\r
-VOID\r
-CoreRemoveDebugImageInfoEntry (\r
-  EFI_HANDLE ImageHandle\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Removes and frees an entry from the DebugImageInfo Table.\r
-\r
-Arguments:\r
-\r
-  ImageHandle       - image handle for the image being unloaded\r
-\r
-Returns:\r
-\r
-  NA\r
-\r
---*/\r
-{    \r
-  EFI_DEBUG_IMAGE_INFO  *Table;\r
-  UINTN                 Index;\r
-\r
-  mDebugInfoTableHeader.UpdateStatus |= EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
-\r
-  Table = mDebugInfoTableHeader.EfiDebugImageInfoTable;\r
-\r
-  for (Index = 0; Index < mDebugInfoTableHeader.TableSize; Index++) {\r
-    if (Table[Index].NormalImage != NULL && Table[Index].NormalImage->ImageHandle == ImageHandle) {\r
-      //\r
-      // Found a match. Free up the record, then NULL the pointer to indicate the slot\r
-      // is free.\r
-      //\r
-      CoreFreePool (Table[Index].NormalImage);\r
-      Table[Index].NormalImage = NULL;\r
-      break;\r
-    }\r
-  }\r
-  mDebugInfoTableHeader.UpdateStatus &= ~EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS;\r
-}\r
-\r