]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Disk/Partition/Dxe/Gpt.c
Perfect the msa of the following modules, DiskIo, Partition, English and Ebc.
[mirror_edk2.git] / EdkModulePkg / Universal / Disk / Partition / Dxe / Gpt.c
index 12ec97612dd30eb5ea6f75080304ce23c5e9601d..61a4ec5e70e9fc51e9e62d8687e0b90806c82a26 100644 (file)
@@ -22,6 +22,7 @@ Abstract:
 \r
 #include "Partition.h"\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionValidGptTable (\r
   IN  EFI_BLOCK_IO_PROTOCOL       *BlockIo,\r
@@ -30,6 +31,7 @@ PartitionValidGptTable (
   OUT EFI_PARTITION_TABLE_HEADER  *PartHeader\r
   );\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionCheckGptEntryArrayCRC (\r
   IN  EFI_BLOCK_IO_PROTOCOL       *BlockIo,\r
@@ -37,6 +39,7 @@ PartitionCheckGptEntryArrayCRC (
   IN  EFI_PARTITION_TABLE_HEADER  *PartHeader\r
   );\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionRestoreGptTable (\r
   IN  EFI_BLOCK_IO_PROTOCOL       *BlockIo,\r
@@ -44,6 +47,7 @@ PartitionRestoreGptTable (
   IN  EFI_PARTITION_TABLE_HEADER  *PartHeader\r
   );\r
 \r
+STATIC\r
 VOID\r
 PartitionCheckGptEntry (\r
   IN  EFI_PARTITION_TABLE_HEADER  *PartHeader,\r
@@ -51,6 +55,7 @@ PartitionCheckGptEntry (
   OUT EFI_PARTITION_ENTRY_STATUS  *PEntryStatus\r
   );\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionCheckCrcAltSize (\r
   IN UINTN                 MaxSize,\r
@@ -58,24 +63,27 @@ PartitionCheckCrcAltSize (
   IN OUT EFI_TABLE_HEADER  *Hdr\r
   );\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionCheckCrc (\r
   IN UINTN                 MaxSize,\r
   IN OUT EFI_TABLE_HEADER  *Hdr\r
   );\r
 \r
+STATIC\r
 VOID\r
 PartitionSetCrcAltSize (\r
   IN UINTN                 Size,\r
   IN OUT EFI_TABLE_HEADER  *Hdr\r
   );\r
 \r
+STATIC\r
 VOID\r
 PartitionSetCrc (\r
   IN OUT EFI_TABLE_HEADER *Hdr\r
   );\r
 \r
-BOOLEAN\r
+EFI_STATUS\r
 PartitionInstallGptChildHandles (\r
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
   IN  EFI_HANDLE                   Handle,\r
@@ -96,8 +104,9 @@ Arguments:
   DevicePath - Parent Device Path\r
 \r
 Returns:\r
-  TRUE       - Valid GPT disk\r
-  FALSE      - Not a valid GPT disk\r
+  EFI_SUCCESS  - Valid GPT disk\r
+  EFI_MEDIA_CHANGED - Media changed Detected\r
+  !EFI_SUCCESS - Not a valid GPT disk\r
 \r
 --*/\r
 {\r
@@ -110,7 +119,7 @@ Returns:
   EFI_PARTITION_ENTRY         *PartEntry;\r
   EFI_PARTITION_ENTRY_STATUS  *PEntryStatus;\r
   UINTN                       Index;\r
-  BOOLEAN                     GptValid;\r
+  EFI_STATUS                  GptValid;\r
   HARDDRIVE_DEVICE_PATH       HdDev;\r
 \r
   ProtectiveMbr = NULL;\r
@@ -125,14 +134,14 @@ Returns:
   DEBUG ((EFI_D_INFO, " BlockSize : %d \n", BlockSize));\r
   DEBUG ((EFI_D_INFO, " LastBlock : %x \n", LastBlock));\r
 \r
-  GptValid = FALSE;\r
+  GptValid = EFI_NOT_FOUND;\r
 \r
   //\r
   // Allocate a buffer for the Protective MBR\r
   //\r
   ProtectiveMbr = AllocatePool (BlockSize);\r
   if (ProtectiveMbr == NULL) {\r
-    return FALSE;\r
+    return EFI_NOT_FOUND;\r
   }\r
 \r
   //\r
@@ -146,6 +155,7 @@ Returns:
                       ProtectiveMbr\r
                       );\r
   if (EFI_ERROR (Status)) {\r
+    GptValid = Status;\r
     goto Done;\r
   }\r
   //\r
@@ -224,6 +234,7 @@ Returns:
                     PartEntry\r
                     );\r
   if (EFI_ERROR (Status)) {\r
+    GptValid = Status;\r
     DEBUG ((EFI_D_INFO, " Partition Entry ReadBlocks error\n"));\r
     goto Done;\r
   }\r
@@ -246,7 +257,7 @@ Returns:
   //\r
   // If we got this far the GPT layout of the disk is valid and we should return true\r
   //\r
-  GptValid = TRUE;\r
+  GptValid = EFI_SUCCESS;\r
 \r
   //\r
   // Create child device handles\r
@@ -299,24 +310,25 @@ Returns:
 \r
 Done:\r
   if (ProtectiveMbr != NULL) {\r
-    gBS->FreePool (ProtectiveMbr);\r
+    FreePool (ProtectiveMbr);\r
   }\r
   if (PrimaryHeader != NULL) {\r
-    gBS->FreePool (PrimaryHeader);\r
+    FreePool (PrimaryHeader);\r
   }\r
   if (BackupHeader != NULL) {\r
-    gBS->FreePool (BackupHeader);\r
+    FreePool (BackupHeader);\r
   }\r
   if (PartEntry != NULL) {\r
-    gBS->FreePool (PartEntry);\r
+    FreePool (PartEntry);\r
   }\r
   if (PEntryStatus != NULL) {\r
-    gBS->FreePool (PEntryStatus);\r
+    FreePool (PEntryStatus);\r
   }\r
 \r
   return GptValid;\r
 }\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionValidGptTable (\r
   IN  EFI_BLOCK_IO_PROTOCOL       *BlockIo,\r
@@ -364,7 +376,7 @@ Returns:
                       PartHdr\r
                       );\r
   if (EFI_ERROR (Status)) {\r
-    gBS->FreePool (PartHdr);\r
+    FreePool (PartHdr);\r
     return FALSE;\r
   }\r
 \r
@@ -373,21 +385,22 @@ Returns:
       PartHdr->MyLBA != Lba\r
       ) {\r
     DEBUG ((EFI_D_INFO, " !Valid efi partition table header\n"));\r
-    gBS->FreePool (PartHdr);\r
+    FreePool (PartHdr);\r
     return FALSE;\r
   }\r
 \r
   CopyMem (PartHeader, PartHdr, sizeof (EFI_PARTITION_TABLE_HEADER));\r
   if (!PartitionCheckGptEntryArrayCRC (BlockIo, DiskIo, PartHeader)) {\r
-    gBS->FreePool (PartHdr);\r
+    FreePool (PartHdr);\r
     return FALSE;\r
   }\r
 \r
   DEBUG ((EFI_D_INFO, " Valid efi partition table header\n"));\r
-  gBS->FreePool (PartHdr);\r
+  FreePool (PartHdr);\r
   return TRUE;\r
 }\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionCheckGptEntryArrayCRC (\r
   IN  EFI_BLOCK_IO_PROTOCOL       *BlockIo,\r
@@ -436,7 +449,7 @@ Returns:
                     Ptr\r
                     );\r
   if (EFI_ERROR (Status)) {\r
-    gBS->FreePool (Ptr);\r
+    FreePool (Ptr);\r
     return FALSE;\r
   }\r
 \r
@@ -445,15 +458,16 @@ Returns:
   Status  = gBS->CalculateCrc32 (Ptr, Size, &Crc);\r
   if (EFI_ERROR (Status)) {\r
     DEBUG ((EFI_D_ERROR, "CheckPEntryArrayCRC: Crc calculation failed\n"));\r
-    gBS->FreePool (Ptr);\r
+    FreePool (Ptr);\r
     return FALSE;\r
   }\r
 \r
-  gBS->FreePool (Ptr);\r
+  FreePool (Ptr);\r
 \r
   return (BOOLEAN) (PartHeader->PartitionEntryArrayCRC32 == Crc);\r
 }\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionRestoreGptTable (\r
   IN  EFI_BLOCK_IO_PROTOCOL       *BlockIo,\r
@@ -541,8 +555,8 @@ Returns:
                     );\r
 \r
 Done:\r
-  gBS->FreePool (PartHdr);\r
-  gBS->FreePool (Ptr);\r
+  FreePool (PartHdr);\r
+  FreePool (Ptr);\r
 \r
   if (EFI_ERROR (Status)) {\r
     return FALSE;\r
@@ -551,6 +565,7 @@ Done:
   return TRUE;\r
 }\r
 \r
+STATIC\r
 VOID\r
 PartitionCheckGptEntry (\r
   IN  EFI_PARTITION_TABLE_HEADER  *PartHeader,\r
@@ -619,6 +634,7 @@ Returns:
   DEBUG ((EFI_D_INFO, " End check partition entries\n"));\r
 }\r
 \r
+STATIC\r
 VOID\r
 PartitionSetCrc (\r
   IN OUT EFI_TABLE_HEADER *Hdr\r
@@ -642,6 +658,7 @@ Returns:
   PartitionSetCrcAltSize (Hdr->HeaderSize, Hdr);\r
 }\r
 \r
+STATIC\r
 VOID\r
 PartitionSetCrcAltSize (\r
   IN UINTN                 Size,\r
@@ -671,6 +688,7 @@ Returns:
   Hdr->CRC32 = Crc;\r
 }\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionCheckCrc (\r
   IN UINTN                 MaxSize,\r
@@ -696,6 +714,7 @@ Returns:
   return PartitionCheckCrcAltSize (MaxSize, Hdr->HeaderSize, Hdr);\r
 }\r
 \r
+STATIC\r
 BOOLEAN\r
 PartitionCheckCrcAltSize (\r
   IN UINTN                 MaxSize,\r