]> git.proxmox.com Git - mirror_edk2.git/commitdiff
1) Add CONST to the pointer type input parameter.
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 8 Sep 2008 12:53:50 +0000 (12:53 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 8 Sep 2008 12:53:50 +0000 (12:53 +0000)
2) Use global variable and AllocateCopyPool to save the size of generated binary.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5847 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/PeiPiLib/PeiPiLib.c

index cbdc92b6ab478d1175875907d95ebd9e83915238..4c9cea865cb60b2b38d7f927ab103c8ff145d1e8 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   MDE PI library functions and macros for PEI phase\r
 \r
-  Copyright (c) 2007, Intel Corporation                                                         \r
+  Copyright (c) 2007 - 2008, 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
 #include <Library/PeiPiLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
 \r
-\r
-CONST EFI_PEI_FIRMWARE_VOLUME_INFO_PPI mFvInfoPpiTemplate = {\r
-  EFI_FIRMWARE_FILE_SYSTEM2_GUID,\r
-  NULL,\r
-  0,    //FvInfoSize\r
-  NULL, //ParentFvName\r
-  NULL //ParentFileName;\r
+CONST EFI_PEI_PPI_DESCRIPTOR     mPpiListTemplate [] = {\r
+  {\r
+    (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
+    &gEfiPeiFirmwareVolumeInfoPpiGuid,\r
+    NULL\r
+  }\r
 };\r
 \r
 /**\r
@@ -57,35 +56,34 @@ CONST EFI_PEI_FIRMWARE_VOLUME_INFO_PPI mFvInfoPpiTemplate = {
 VOID\r
 EFIAPI\r
 PiLibInstallFvInfoPpi (\r
-  IN EFI_GUID                *FvFormat, OPTIONAL\r
-  IN VOID                    *FvInfo,\r
-  IN UINT32                  FvInfoSize,\r
-  IN EFI_GUID                *ParentFvName, OPTIONAL\r
-  IN EFI_GUID                *ParentFileName OPTIONAL\r
+  IN CONST EFI_GUID                *FvFormat, OPTIONAL\r
+  IN CONST VOID                    *FvInfo,\r
+  IN       UINT32                  FvInfoSize,\r
+  IN CONST EFI_GUID                *ParentFvName, OPTIONAL\r
+  IN CONST EFI_GUID                *ParentFileName OPTIONAL\r
   )\r
 {\r
-  \r
   EFI_STATUS                       Status;   \r
   EFI_PEI_FIRMWARE_VOLUME_INFO_PPI *FvInfoPpi;\r
   EFI_PEI_PPI_DESCRIPTOR           *FvInfoPpiDescriptor;\r
 \r
-  FvInfoPpi = AllocateCopyPool (sizeof (*FvInfoPpi), &mFvInfoPpiTemplate);\r
+  FvInfoPpi = AllocateZeroPool (sizeof (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI));\r
   ASSERT( FvInfoPpi != NULL);\r
 \r
   if (FvFormat != NULL) {\r
-    CopyMem (&FvInfoPpi->FvFormat, FvFormat, sizeof (*FvFormat));\r
+    CopyGuid (&FvInfoPpi->FvFormat, FvFormat);\r
+  } else {\r
+    CopyGuid (&FvInfoPpi->FvFormat, &gEfiFirmwareFileSystem2Guid);\r
   }\r
-  FvInfoPpi->FvInfo = (VOID *) (UINTN) FvInfo;\r
-  FvInfoPpi->FvInfoSize = (UINT32) FvInfoSize;\r
-  FvInfoPpi->ParentFvName = ParentFvName;\r
-  FvInfoPpi->ParentFileName = ParentFileName;\r
+  FvInfoPpi->FvInfo = (VOID *) FvInfo;\r
+  FvInfoPpi->FvInfoSize = FvInfoSize;\r
+  FvInfoPpi->ParentFvName = (EFI_GUID *) ParentFvName;\r
+  FvInfoPpi->ParentFileName = (EFI_GUID *) ParentFileName;\r
 \r
 \r
-  FvInfoPpiDescriptor = AllocatePool (sizeof(EFI_PEI_PPI_DESCRIPTOR));\r
+  FvInfoPpiDescriptor = AllocateCopyPool (sizeof(EFI_PEI_PPI_DESCRIPTOR), mPpiListTemplate);\r
   ASSERT (FvInfoPpiDescriptor != NULL);\r
 \r
-  FvInfoPpiDescriptor->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r
-  FvInfoPpiDescriptor->Guid  = &gEfiPeiFirmwareVolumeInfoPpiGuid;\r
   FvInfoPpiDescriptor->Ppi   = (VOID *) FvInfoPpi;\r
   Status = PeiServicesInstallPpi (FvInfoPpiDescriptor);\r
   ASSERT_EFI_ERROR (Status);\r