Code scrub for DiskIo, Partition & Unicode Collation

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5519 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2008-07-18 09:49:25 +00:00
parent ab76200c05
commit ff61847ddc
9 changed files with 51 additions and 39 deletions

View File

@ -32,7 +32,10 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gDiskIoComponentName2
"en" "en"
}; };
//
// Driver name table for DiskIo module.
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDiskIoDriverNameTable[] = { GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDiskIoDriverNameTable[] = {
{ {
"eng;en", "eng;en",

View File

@ -1,8 +1,8 @@
/** @file /** @file
DiskIo driver that layers it's self on every Block IO protocol in the system. DiskIo driver that lays on every BlockIo protocol in the system.
DiskIo converts a block oriented device to a byte oriented device. DiskIo converts a block oriented device to a byte oriented device.
ReadDisk may have to do reads that are not aligned on sector boundaries. Disk access may have to handle unaligned request about sector boundaries.
There are three cases: There are three cases:
UnderRun - The first byte is not on a sector boundary or the read request is UnderRun - The first byte is not on a sector boundary or the read request is
less than a sector in length. less than a sector in length.
@ -22,6 +22,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "DiskIo.h" #include "DiskIo.h"
//
// Driver binding protocol implementation for DiskIo driver.
//
EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding = { EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding = {
DiskIoDriverBindingSupported, DiskIoDriverBindingSupported,
DiskIoDriverBindingStart, DiskIoDriverBindingStart,
@ -31,6 +34,10 @@ EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding = {
NULL NULL
}; };
//
// Template for DiskIo private data structure.
// The pointer to BlockIo protocol interface is assigned dynamically.
//
DISK_IO_PRIVATE_DATA gDiskIoPrivateDataTemplate = { DISK_IO_PRIVATE_DATA gDiskIoPrivateDataTemplate = {
DISK_IO_PRIVATE_DATA_SIGNATURE, DISK_IO_PRIVATE_DATA_SIGNATURE,
{ {
@ -459,7 +466,7 @@ Done:
/** /**
Read BufferSize bytes from Offset into Buffer. Writes BufferSize bytes from Buffer into Offset.
Writes may require a read modify write to support writes that are not Writes may require a read modify write to support writes that are not
aligned on sector boundaries. There are three cases: aligned on sector boundaries. There are three cases:
UnderRun - The first byte is not on a sector boundary or the write request UnderRun - The first byte is not on a sector boundary or the write request

View File

@ -1,6 +1,5 @@
/** @file /** @file
DiskIo driver that layers it's self on every Block IO protocol in the system. Master header file for DiskIo driver. It includes the module private defininitions.
DiskIo converts a block oriented device to a byte oriented device.
Copyright (c) 2006 - 2008, Intel Corporation. <BR> Copyright (c) 2006 - 2008, Intel Corporation. <BR>
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
@ -156,7 +155,7 @@ DiskIoReadDisk (
); );
/** /**
Read BufferSize bytes from Offset into Buffer. Writes BufferSize bytes from Buffer into Offset.
Writes may require a read modify write to support writes that are not Writes may require a read modify write to support writes that are not
aligned on sector boundaries. There are three cases: aligned on sector boundaries. There are three cases:
UnderRun - The first byte is not on a sector boundary or the write request UnderRun - The first byte is not on a sector boundary or the write request

View File

@ -1,6 +1,7 @@
#/** @file #/** @file
# #
# Component description file for DiskIo module. # This module lays DiskIo protocol on every blockIo protocol
# to provide byte-oriented access to block media.
# #
# Copyright (c) 2006 - 2008, Intel Corporation. <BR> # Copyright (c) 2006 - 2008, Intel Corporation. <BR>
# All rights reserved. This program and the accompanying materials # All rights reserved. This program and the accompanying materials

View File

@ -32,11 +32,14 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPartitionComponentNa
"en" "en"
}; };
//
// Driver name table for Partition module.
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPartitionDriverNameTable[] = { GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPartitionDriverNameTable[] = {
{ {
"eng;en", "eng;en",
(CHAR16 *)L"Partition Driver(MBR/GPT/El Torito)" L"Partition Driver(MBR/GPT/El Torito)"
}, },
{ {
NULL, NULL,

View File

@ -189,7 +189,7 @@ PartitionInstallGptChildHandles (
EFI_PARTITION_ENTRY *PartEntry; EFI_PARTITION_ENTRY *PartEntry;
EFI_PARTITION_ENTRY_STATUS *PEntryStatus; EFI_PARTITION_ENTRY_STATUS *PEntryStatus;
UINTN Index; UINTN Index;
EFI_STATUS GptValid; EFI_STATUS GptValidStatus;
HARDDRIVE_DEVICE_PATH HdDev; HARDDRIVE_DEVICE_PATH HdDev;
ProtectiveMbr = NULL; ProtectiveMbr = NULL;
@ -204,7 +204,7 @@ PartitionInstallGptChildHandles (
DEBUG ((EFI_D_INFO, " BlockSize : %d \n", BlockSize)); DEBUG ((EFI_D_INFO, " BlockSize : %d \n", BlockSize));
DEBUG ((EFI_D_INFO, " LastBlock : %x \n", LastBlock)); DEBUG ((EFI_D_INFO, " LastBlock : %x \n", LastBlock));
GptValid = EFI_NOT_FOUND; GptValidStatus = EFI_NOT_FOUND;
// //
// Allocate a buffer for the Protective MBR // Allocate a buffer for the Protective MBR
@ -225,7 +225,7 @@ PartitionInstallGptChildHandles (
ProtectiveMbr ProtectiveMbr
); );
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
GptValid = Status; GptValidStatus = Status;
goto Done; goto Done;
} }
// //
@ -247,7 +247,6 @@ PartitionInstallGptChildHandles (
} }
BackupHeader = AllocateZeroPool (sizeof (EFI_PARTITION_TABLE_HEADER)); BackupHeader = AllocateZeroPool (sizeof (EFI_PARTITION_TABLE_HEADER));
if (BackupHeader == NULL) { if (BackupHeader == NULL) {
goto Done; goto Done;
} }
@ -304,8 +303,8 @@ PartitionInstallGptChildHandles (
PartEntry PartEntry
); );
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
GptValid = Status; GptValidStatus = Status;
DEBUG ((EFI_D_INFO, " Partition Entry ReadBlocks error\n")); DEBUG ((EFI_D_ERROR, " Partition Entry ReadBlocks error\n"));
goto Done; goto Done;
} }
@ -327,7 +326,7 @@ PartitionInstallGptChildHandles (
// //
// If we got this far the GPT layout of the disk is valid and we should return true // If we got this far the GPT layout of the disk is valid and we should return true
// //
GptValid = EFI_SUCCESS; GptValidStatus = EFI_SUCCESS;
// //
// Create child device handles // Create child device handles
@ -355,12 +354,12 @@ PartitionInstallGptChildHandles (
HdDev.PartitionSize = PartEntry[Index].EndingLBA - PartEntry[Index].StartingLBA + 1; HdDev.PartitionSize = PartEntry[Index].EndingLBA - PartEntry[Index].StartingLBA + 1;
CopyMem (HdDev.Signature, &PartEntry[Index].UniquePartitionGUID, sizeof (EFI_GUID)); CopyMem (HdDev.Signature, &PartEntry[Index].UniquePartitionGUID, sizeof (EFI_GUID));
DEBUG ((EFI_D_INFO, " Index : %d\n", Index)); DEBUG ((EFI_D_INFO, " Index : %d\n", (UINT32) Index));
DEBUG ((EFI_D_INFO, " Start LBA : %x\n", HdDev.PartitionStart)); DEBUG ((EFI_D_INFO, " Start LBA : %lx\n", (UINT64) HdDev.PartitionStart));
DEBUG ((EFI_D_INFO, " End LBA : %x\n", PartEntry[Index].EndingLBA)); DEBUG ((EFI_D_INFO, " End LBA : %lx\n", (UINT64) PartEntry[Index].EndingLBA));
DEBUG ((EFI_D_INFO, " Partition size: %x\n", HdDev.PartitionSize)); DEBUG ((EFI_D_INFO, " Partition size: %lx\n", (UINT64) HdDev.PartitionSize));
DEBUG ((EFI_D_INFO, " Start : %x", MultU64x32 (PartEntry[Index].StartingLBA, BlockSize))); DEBUG ((EFI_D_INFO, " Start : %lx", MultU64x32 (PartEntry[Index].StartingLBA, BlockSize)));
DEBUG ((EFI_D_INFO, " End : %x\n", MultU64x32 (PartEntry[Index].EndingLBA, BlockSize))); DEBUG ((EFI_D_INFO, " End : %lx\n", MultU64x32 (PartEntry[Index].EndingLBA, BlockSize)));
Status = PartitionInstallChildHandle ( Status = PartitionInstallChildHandle (
This, This,
@ -395,7 +394,7 @@ Done:
FreePool (PEntryStatus); FreePool (PEntryStatus);
} }
return GptValid; return GptValidStatus;
} }
@ -450,7 +449,7 @@ PartitionValidGptTable (
!PartitionCheckCrc (BlockSize, &PartHdr->Header) || !PartitionCheckCrc (BlockSize, &PartHdr->Header) ||
PartHdr->MyLBA != Lba PartHdr->MyLBA != Lba
) { ) {
DEBUG ((EFI_D_INFO, " !Valid efi partition table header\n")); DEBUG ((EFI_D_INFO, "Invalid efi partition table header\n"));
FreePool (PartHdr); FreePool (PartHdr);
return FALSE; return FALSE;
} }
@ -608,7 +607,10 @@ PartitionRestoreGptTable (
Done: Done:
FreePool (PartHdr); FreePool (PartHdr);
if (Ptr != NULL) {
FreePool (Ptr); FreePool (Ptr);
}
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
return FALSE; return FALSE;

View File

@ -34,7 +34,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@retval FALSE Mbr is not a Valid MBR. @retval FALSE Mbr is not a Valid MBR.
**/ **/
STATIC
BOOLEAN BOOLEAN
PartitionValidMbr ( PartitionValidMbr (
IN MASTER_BOOT_RECORD *Mbr, IN MASTER_BOOT_RECORD *Mbr,

View File

@ -19,7 +19,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "Partition.h" #include "Partition.h"
// //
// Partition Driver Global Variables // Partition Driver Global Variables.
// //
EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding = { EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding = {
PartitionDriverBindingSupported, PartitionDriverBindingSupported,
@ -30,7 +30,9 @@ EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding = {
NULL NULL
}; };
STATIC //
// Priortized function list to detect partition table.
//
PARTITION_DETECT_ROUTINE mPartitionDetectRoutineTable[] = { PARTITION_DETECT_ROUTINE mPartitionDetectRoutineTable[] = {
PartitionInstallGptChildHandles, PartitionInstallGptChildHandles,
PartitionInstallElToritoChildHandles, PartitionInstallElToritoChildHandles,
@ -402,7 +404,6 @@ PartitionDriverBindingStop (
not be reset. not be reset.
**/ **/
STATIC
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
PartitionReset ( PartitionReset (
@ -440,7 +441,6 @@ PartitionReset (
valid for the device. valid for the device.
**/ **/
STATIC
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
PartitionReadBlocks ( PartitionReadBlocks (
@ -492,7 +492,6 @@ PartitionReadBlocks (
valid for the device. valid for the device.
**/ **/
STATIC
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
PartitionWriteBlocks ( PartitionWriteBlocks (
@ -535,7 +534,6 @@ PartitionWriteBlocks (
@retval EFI_NO_MEDIA There is no media in the device. @retval EFI_NO_MEDIA There is no media in the device.
**/ **/
STATIC
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
PartitionFlushBlocks ( PartitionFlushBlocks (

View File

@ -51,7 +51,7 @@ CHAR8 mOtherChars[] = {
'\0' '\0'
}; };
STATIC EFI_HANDLE mHandle = NULL; EFI_HANDLE mHandle = NULL;
// //
// EFI Unicode Collation Protocol supporting ISO 639-2 language code // EFI Unicode Collation Protocol supporting ISO 639-2 language code