X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ShellPkg%2FLibrary%2FUefiShellCommandLib%2FConsistMapping.c;h=a42a045d52d48341f1ed43c27a100d15f5fe6d26;hb=cc4c331207b6556e1aaae2b603e7024d775da812;hp=64f504a258148b59391fb843bdda7c0a7d3614ba;hpb=e26d7b59756b8995473345713178e1b35473a7a2;p=mirror_edk2.git diff --git a/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c b/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c index 64f504a258..a42a045d52 100644 --- a/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c +++ b/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c @@ -1,7 +1,7 @@ /** @file Main file for support of shell consist mapping. - Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.
+ Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -14,6 +14,7 @@ #include "UefiShellCommandLib.h" #include #include +#include typedef enum { MTDTypeUnknown, @@ -29,9 +30,9 @@ typedef struct { } POOL_PRINT; typedef struct { - UINTN HI; - MTD_TYPE MTD; - POOL_PRINT CSD; + UINTN Hi; + MTD_TYPE Mtd; + POOL_PRINT Csd; BOOLEAN Digital; } DEVICE_CONSIST_MAPPING_INFO; @@ -43,8 +44,8 @@ typedef struct { typedef struct { UINT8 Type; UINT8 SubType; - VOID (EFIAPI *SerialFun) (EFI_DEVICE_PATH_PROTOCOL *, DEVICE_CONSIST_MAPPING_INFO *); - INTN (EFIAPI *CompareFun) (EFI_DEVICE_PATH_PROTOCOL *, EFI_DEVICE_PATH_PROTOCOL *); + VOID (EFIAPI *SerialFun) (EFI_DEVICE_PATH_PROTOCOL *DevPath, DEVICE_CONSIST_MAPPING_INFO *MapInfo); + INTN (EFIAPI *CompareFun) (EFI_DEVICE_PATH_PROTOCOL *DevPath, EFI_DEVICE_PATH_PROTOCOL *DevPath2); } DEV_PATH_CONSIST_MAPPING_TABLE; @@ -98,7 +99,7 @@ CatPrint ( ASSERT (Str->Str != NULL); } - StrCat (Str->Str, AppendStr); + StrnCat (Str->Str, AppendStr, StringSize/sizeof(CHAR16) - 1 - StrLen(Str->Str)); Str->Len = StringSize; FreePool (AppendStr); @@ -128,7 +129,17 @@ MTD_NAME mMTDName[] = { } }; -VOID +/** + Function to append a 64 bit number / 25 onto the string. + + @param[in, out] Str The string so append onto. + @param[in] Num The number to divide and append. + + @retval EFI_INVALID_PARAMETER A parameter was NULL. + @retval EFI_SUCCESS The appending was successful. +**/ +EFI_STATUS +EFIAPI AppendCSDNum2 ( IN OUT POOL_PRINT *Str, IN UINT64 Num @@ -137,7 +148,9 @@ AppendCSDNum2 ( UINT64 Result; UINT32 Rem; - ASSERT(Str != NULL); + if (Str == NULL) { + return (EFI_INVALID_PARAMETER); + } Result = DivU64x32Remainder (Num, 25, &Rem); if (Result > 0) { @@ -145,35 +158,61 @@ AppendCSDNum2 ( } CatPrint (Str, L"%c", Rem + 'a'); + return (EFI_SUCCESS); } -VOID +/** + Function to append a 64 bit number onto the mapping info. + + @param[in, out] MappingItem The mapping info object to append onto. + @param[in] Num The info to append. + + @retval EFI_INVALID_PARAMETER A parameter was NULL. + @retval EFI_SUCCESS The appending was successful. +**/ +EFI_STATUS +EFIAPI AppendCSDNum ( - DEVICE_CONSIST_MAPPING_INFO *MappingItem, - UINT64 Num + IN OUT DEVICE_CONSIST_MAPPING_INFO *MappingItem, + IN UINT64 Num ) { - ASSERT(MappingItem != NULL); + if (MappingItem == NULL) { + return EFI_INVALID_PARAMETER; + } if (MappingItem->Digital) { - CatPrint (&MappingItem->CSD, L"%ld", Num); + CatPrint (&MappingItem->Csd, L"%ld", Num); } else { - AppendCSDNum2 (&MappingItem->CSD, Num); + AppendCSDNum2 (&MappingItem->Csd, Num); } MappingItem->Digital = (BOOLEAN)!(MappingItem->Digital); + + return (EFI_SUCCESS); } -VOID +/** + Function to append string into the mapping info. + + @param[in, out] MappingItem The mapping info object to append onto. + @param[in] Str The info to append. + + @retval EFI_INVALID_PARAMETER A parameter was NULL. + @retval EFI_SUCCESS The appending was successful. +**/ +EFI_STATUS +EFIAPI AppendCSDStr ( - DEVICE_CONSIST_MAPPING_INFO *MappingItem, - CHAR16 *Str + IN OUT DEVICE_CONSIST_MAPPING_INFO *MappingItem, + IN CHAR16 *Str ) { CHAR16 *Index; - ASSERT(Str != NULL); - ASSERT(MappingItem != NULL); + if (Str == NULL || MappingItem == NULL) { + return (EFI_INVALID_PARAMETER); + } if (MappingItem->Digital) { // @@ -192,11 +231,11 @@ AppendCSDStr ( case '7': case '8': case '9': - CatPrint (&MappingItem->CSD, L"%c", *Index); + CatPrint (&MappingItem->Csd, L"%c", *Index); break; case '1': - CatPrint (&MappingItem->CSD, L"16"); + CatPrint (&MappingItem->Csd, L"16"); break; case 'a': @@ -205,7 +244,7 @@ AppendCSDStr ( case 'd': case 'e': case 'f': - CatPrint (&MappingItem->CSD, L"1%c", *Index - 'a' + '0'); + CatPrint (&MappingItem->Csd, L"1%c", *Index - 'a' + '0'); break; case 'A': @@ -214,7 +253,7 @@ AppendCSDStr ( case 'D': case 'E': case 'F': - CatPrint (&MappingItem->CSD, L"1%c", *Index - 'A' + '0'); + CatPrint (&MappingItem->Csd, L"1%c", *Index - 'A' + '0'); break; } } @@ -226,27 +265,41 @@ AppendCSDStr ( // a b c d e f g h i j k l m n o p // if (*Index >= '0' && *Index <= '9') { - CatPrint (&MappingItem->CSD, L"%c", *Index - '0' + 'a'); + CatPrint (&MappingItem->Csd, L"%c", *Index - '0' + 'a'); } else if (*Index >= 'a' && *Index <= 'f') { - CatPrint (&MappingItem->CSD, L"%c", *Index - 'a' + 'k'); + CatPrint (&MappingItem->Csd, L"%c", *Index - 'a' + 'k'); } else if (*Index >= 'A' && *Index <= 'F') { - CatPrint (&MappingItem->CSD, L"%c", *Index - 'A' + 'k'); + CatPrint (&MappingItem->Csd, L"%c", *Index - 'A' + 'k'); } } } MappingItem->Digital = (BOOLEAN)!(MappingItem->Digital); + + return (EFI_SUCCESS); } -VOID +/** + Function to append a Guid to the mapping item. + + @param[in, out] MappingItem The item to append onto. + @param[in] Guid The guid to append. + + @retval EFI_SUCCESS The appending operation was successful. + @retval EFI_INVALID_PARAMETER A parameter was NULL. +**/ +EFI_STATUS +EFIAPI AppendCSDGuid ( DEVICE_CONSIST_MAPPING_INFO *MappingItem, EFI_GUID *Guid ) { CHAR16 Buffer[64]; - ASSERT(Guid != NULL); - ASSERT(MappingItem != NULL); + + if (Guid == NULL || MappingItem == NULL) { + return (EFI_INVALID_PARAMETER); + } UnicodeSPrint ( Buffer, @@ -254,13 +307,24 @@ AppendCSDGuid ( L"%g", Guid ); -// StrLwr (Buffer); + AppendCSDStr (MappingItem, Buffer); + + return (EFI_SUCCESS); } +/** + Function to compare 2 APCI device paths. + + @param[in] DevicePath1 The first device path to compare. + @param[in] DevicePath2 The second device path to compare. + + @retval 0 The device paths represent the same device. + @return Non zero if the devices are different, zero otherwise. +**/ INTN EFIAPI -_DevPathCompareAcpi ( +DevPathCompareAcpi ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 ) @@ -268,8 +332,9 @@ _DevPathCompareAcpi ( ACPI_HID_DEVICE_PATH *Acpi1; ACPI_HID_DEVICE_PATH *Acpi2; - ASSERT(DevicePath1 != NULL); - ASSERT(DevicePath2 != NULL); + if (DevicePath1 == NULL || DevicePath2 == NULL) { + return (-2); + } Acpi1 = (ACPI_HID_DEVICE_PATH *) DevicePath1; Acpi2 = (ACPI_HID_DEVICE_PATH *) DevicePath2; @@ -284,9 +349,18 @@ _DevPathCompareAcpi ( return -1; } +/** + Function to compare 2 PCI device paths. + + @param[in] DevicePath1 The first device path to compare. + @param[in] DevicePath2 The second device path to compare. + + @retval 0 The device paths represent the same device. + @return Non zero if the devices are different, zero otherwise. +**/ INTN EFIAPI -_DevPathComparePci ( +DevPathComparePci ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 ) @@ -363,8 +437,8 @@ DevPathSerialHardDrive ( ASSERT(MappingItem != NULL); Hd = (HARDDRIVE_DEVICE_PATH *) DevicePathNode; - if (MappingItem->MTD == MTDTypeUnknown) { - MappingItem->MTD = MTDTypeHardDisk; + if (MappingItem->Mtd == MTDTypeUnknown) { + MappingItem->Mtd = MTDTypeHardDisk; } AppendCSDNum (MappingItem, Hd->PartitionNumber); @@ -411,7 +485,7 @@ DevPathSerialCdRom ( ASSERT(MappingItem != NULL); Cd = (CDROM_DEVICE_PATH *) DevicePathNode; - MappingItem->MTD = MTDTypeCDRom; + MappingItem->Mtd = MTDTypeCDRom; AppendCSDNum (MappingItem, Cd->BootEntry); } @@ -491,6 +565,7 @@ DevPathSerialUsb ( @param[in] DevicePathNode The node to get info on. @param[in] MappingItem The info item to populate. + **/ VOID EFIAPI @@ -501,20 +576,49 @@ DevPathSerialVendor ( { VENDOR_DEVICE_PATH *Vendor; SAS_DEVICE_PATH *Sas; - EFI_GUID SasVendorGuid = DEVICE_PATH_MESSAGING_SAS; + UINTN TargetNameLength; + UINTN Index; + CHAR16 *Buffer; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + if (DevicePathNode == NULL || MappingItem == NULL) { + return; + } Vendor = (VENDOR_DEVICE_PATH *) DevicePathNode; AppendCSDGuid (MappingItem, &Vendor->Guid); - if (CompareGuid (&SasVendorGuid, &Vendor->Guid) == 0) { + if (CompareGuid (&gEfiSasDevicePathGuid, &Vendor->Guid)) { Sas = (SAS_DEVICE_PATH *) Vendor; AppendCSDNum (MappingItem, Sas->SasAddress); AppendCSDNum (MappingItem, Sas->Lun); AppendCSDNum (MappingItem, Sas->DeviceTopology); AppendCSDNum (MappingItem, Sas->RelativeTargetPort); + } else { + TargetNameLength = MIN(DevicePathNodeLength (DevicePathNode) - sizeof (VENDOR_DEVICE_PATH), PcdGet32(PcdShellVendorExtendedDecode)); + if (TargetNameLength != 0) { + // + // String is 2 chars per data byte, plus NULL terminator + // + Buffer = AllocateZeroPool (((TargetNameLength * 2) + 1) * sizeof(CHAR16)); + ASSERT(Buffer != NULL); + if (Buffer == NULL) { + return; + } + + // + // Build the string data + // + for (Index = 0; Index < TargetNameLength; Index++) { + Buffer = CatSPrint (Buffer, L"%02x", *((UINT8*)Vendor + sizeof (VENDOR_DEVICE_PATH) + Index)); + } + + // + // Append the new data block + // + AppendCSDStr (MappingItem, Buffer); + + FreePool(Buffer); + } } } @@ -577,13 +681,6 @@ DevPathSerialIScsi ( IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { -///@todo make this a PCD -// -// As CSD of ISCSI node is quite long, we comment -// the code below to keep the consistent mapping -// short. Uncomment if you really need it. -// -/* ISCSI_DEVICE_PATH *IScsi; UINT8 *IScsiTargetName; CHAR16 *TargetName; @@ -593,24 +690,25 @@ DevPathSerialIScsi ( ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); - IScsi = (ISCSI_DEVICE_PATH *) DevicePathNode; - AppendCSDNum (MappingItem, IScsi->NetworkProtocol); - AppendCSDNum (MappingItem, IScsi->LoginOption); - AppendCSDNum (MappingItem, IScsi->Lun); - AppendCSDNum (MappingItem, IScsi->TargetPortalGroupTag); - TargetNameLength = DevicePathNodeLength (DevicePathNode) - sizeof (ISCSI_DEVICE_PATH); - if (TargetNameLength > 0) { - TargetName = AllocateZeroPool ((TargetNameLength + 1) * sizeof (CHAR16)); - if (TargetName != NULL) { - IScsiTargetName = (UINT8 *) (IScsi + 1); - for (Index = 0; Index < TargetNameLength; Index++) { - TargetName[Index] = (CHAR16) IScsiTargetName[Index]; + if (PcdGetBool(PcdShellDecodeIScsiMapNames)) { + IScsi = (ISCSI_DEVICE_PATH *) DevicePathNode; + AppendCSDNum (MappingItem, IScsi->NetworkProtocol); + AppendCSDNum (MappingItem, IScsi->LoginOption); + AppendCSDNum (MappingItem, IScsi->Lun); + AppendCSDNum (MappingItem, IScsi->TargetPortalGroupTag); + TargetNameLength = DevicePathNodeLength (DevicePathNode) - sizeof (ISCSI_DEVICE_PATH); + if (TargetNameLength > 0) { + TargetName = AllocateZeroPool ((TargetNameLength + 1) * sizeof (CHAR16)); + if (TargetName != NULL) { + IScsiTargetName = (UINT8 *) (IScsi + 1); + for (Index = 0; Index < TargetNameLength; Index++) { + TargetName[Index] = (CHAR16) IScsiTargetName[Index]; + } + AppendCSDStr (MappingItem, TargetName); + FreePool (TargetName); } - AppendCSDStr (MappingItem, TargetName); - FreePool (TargetName); } } - */ } /** @@ -626,13 +724,13 @@ DevPathSerialI2O ( IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { - I2O_DEVICE_PATH *I2O; + I2O_DEVICE_PATH *DevicePath_I20; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); - I2O = (I2O_DEVICE_PATH *) DevicePathNode; - AppendCSDNum (MappingItem, I2O->Tid); + DevicePath_I20 = (I2O_DEVICE_PATH *) DevicePathNode; + AppendCSDNum (MappingItem, DevicePath_I20->Tid); } /** @@ -819,14 +917,14 @@ DevPathSerial1394 ( IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { - F1394_DEVICE_PATH *F1394; + F1394_DEVICE_PATH *DevicePath_F1394; CHAR16 Buffer[20]; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); - F1394 = (F1394_DEVICE_PATH *) DevicePathNode; - UnicodeSPrint (Buffer, 0, L"%lx", F1394->Guid); + DevicePath_F1394 = (F1394_DEVICE_PATH *) DevicePathNode; + UnicodeSPrint (Buffer, 0, L"%lx", DevicePath_F1394->Guid); AppendCSDStr (MappingItem, Buffer); } @@ -851,7 +949,7 @@ DevPathSerialAcpi ( Acpi = (ACPI_HID_DEVICE_PATH *) DevicePathNode; if ((Acpi->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) { if (EISA_ID_TO_NUM (Acpi->HID) == 0x0604) { - MappingItem->MTD = MTDTypeFloppy; + MappingItem->Mtd = MTDTypeFloppy; AppendCSDNum (MappingItem, Acpi->UID); } } @@ -860,6 +958,9 @@ DevPathSerialAcpi ( /** Empty function used for unknown devices. + @param[in] DevicePathNode Ignored. + @param[in] MappingItem Ignored. + Does nothing. **/ VOID @@ -869,93 +970,136 @@ DevPathSerialDefault ( IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { + return; } DEV_PATH_CONSIST_MAPPING_TABLE DevPathConsistMappingTable[] = { - HARDWARE_DEVICE_PATH, - HW_PCI_DP, - DevPathSerialDefault, - _DevPathComparePci, - ACPI_DEVICE_PATH, - ACPI_DP, - DevPathSerialAcpi, - _DevPathCompareAcpi, - MESSAGING_DEVICE_PATH, - MSG_ATAPI_DP, - DevPathSerialAtapi, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_SCSI_DP, - DevPathSerialScsi, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_FIBRECHANNEL_DP, - DevPathSerialFibre, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_1394_DP, - DevPathSerial1394, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_USB_DP, - DevPathSerialUsb, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_I2O_DP, - DevPathSerialI2O, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_MAC_ADDR_DP, - DevPathSerialMacAddr, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_IPv4_DP, - DevPathSerialIPv4, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_IPv6_DP, - DevPathSerialIPv6, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_INFINIBAND_DP, - DevPathSerialInfiniBand, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_UART_DP, - DevPathSerialUart, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_VENDOR_DP, - DevPathSerialVendor, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_DEVICE_LOGICAL_UNIT_DP, - DevPathSerialLun, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_SATA_DP, - DevPathSerialSata, - DevPathCompareDefault, - MESSAGING_DEVICE_PATH, - MSG_ISCSI_DP, - DevPathSerialIScsi, - DevPathCompareDefault, - MEDIA_DEVICE_PATH, - MEDIA_HARDDRIVE_DP, - DevPathSerialHardDrive, - DevPathCompareDefault, - MEDIA_DEVICE_PATH, - MEDIA_CDROM_DP, - DevPathSerialCdRom, - DevPathCompareDefault, - MEDIA_DEVICE_PATH, - MEDIA_VENDOR_DP, - DevPathSerialVendor, - DevPathCompareDefault, - 0, - 0, - NULL, - NULL + { + HARDWARE_DEVICE_PATH, + HW_PCI_DP, + DevPathSerialDefault, + DevPathComparePci + }, + { + ACPI_DEVICE_PATH, + ACPI_DP, + DevPathSerialAcpi, + DevPathCompareAcpi + }, + { + MESSAGING_DEVICE_PATH, + MSG_ATAPI_DP, + DevPathSerialAtapi, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_SCSI_DP, + DevPathSerialScsi, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_FIBRECHANNEL_DP, + DevPathSerialFibre, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_1394_DP, + DevPathSerial1394, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_USB_DP, + DevPathSerialUsb, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_I2O_DP, + DevPathSerialI2O, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_MAC_ADDR_DP, + DevPathSerialMacAddr, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_IPv4_DP, + DevPathSerialIPv4, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_IPv6_DP, + DevPathSerialIPv6, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_INFINIBAND_DP, + DevPathSerialInfiniBand, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_UART_DP, + DevPathSerialUart, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_VENDOR_DP, + DevPathSerialVendor, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_DEVICE_LOGICAL_UNIT_DP, + DevPathSerialLun, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_SATA_DP, + DevPathSerialSata, + DevPathCompareDefault + }, + { + MESSAGING_DEVICE_PATH, + MSG_ISCSI_DP, + DevPathSerialIScsi, + DevPathCompareDefault + }, + { + MEDIA_DEVICE_PATH, + MEDIA_HARDDRIVE_DP, + DevPathSerialHardDrive, + DevPathCompareDefault + }, + { + MEDIA_DEVICE_PATH, + MEDIA_CDROM_DP, + DevPathSerialCdRom, + DevPathCompareDefault + }, + { + MEDIA_DEVICE_PATH, + MEDIA_VENDOR_DP, + DevPathSerialVendor, + DevPathCompareDefault + }, + { + 0, + 0, + NULL, + NULL + } }; /** @@ -963,8 +1107,8 @@ DEV_PATH_CONSIST_MAPPING_TABLE DevPathConsistMappingTable[] = { @param[in] DevicePathNode The node to check. - @retval TRUE The node is HI. - @retval FALSE The node is not HI. + @retval TRUE The node is Hi. + @retval FALSE The node is not Hi. **/ BOOLEAN EFIAPI @@ -997,11 +1141,11 @@ IsHIDevicePathNode ( } /** - Function to convert a standard device path structure into a HI version. + Function to convert a standard device path structure into a Hi version. @param[in] DevicePath The device path to convert. - @return the device path portion that is HI. + @return the device path portion that is Hi. **/ EFI_DEVICE_PATH_PROTOCOL * EFIAPI @@ -1019,7 +1163,7 @@ GetHIDevicePath ( NonHIDevicePathNodeCount = 0; - HIDevicePath = AllocatePool (sizeof (EFI_DEVICE_PATH_PROTOCOL)); + HIDevicePath = AllocateZeroPool (sizeof (EFI_DEVICE_PATH_PROTOCOL)); SetDevicePathEndNode (HIDevicePath); Node.DevPath.Type = END_DEVICE_PATH_TYPE; @@ -1072,7 +1216,7 @@ GetDeviceConsistMappingInfo ( ASSERT(DevicePath != NULL); ASSERT(MappingItem != NULL); - SetMem (&MappingItem->CSD, sizeof (POOL_PRINT), 0); + SetMem (&MappingItem->Csd, sizeof (POOL_PRINT), 0); while (!IsDevicePathEnd (DevicePath)) { // @@ -1212,7 +1356,7 @@ ShellCommandConsistMappingUnInitialize ( This must be called after ShellCommandConsistMappingInitialize() and before ShellCommandConsistMappingUnInitialize() is called. - @param[in] DeviecPath The pointer to the dev path for the device. + @param[in] DevicePath The pointer to the dev path for the device. @param[in] Table The Table of mapping information. @retval NULL A consistent mapped name could not be created. @@ -1221,8 +1365,8 @@ ShellCommandConsistMappingUnInitialize ( CHAR16 * EFIAPI ShellCommandConsistMappingGenMappingName ( - EFI_DEVICE_PATH_PROTOCOL *DevicePath, - EFI_DEVICE_PATH_PROTOCOL **Table + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, + IN EFI_DEVICE_PATH_PROTOCOL **Table ) { POOL_PRINT Str; @@ -1250,15 +1394,15 @@ ShellCommandConsistMappingGenMappingName ( return NULL; } - MappingInfo.HI = Index; - MappingInfo.MTD = MTDTypeUnknown; + MappingInfo.Hi = Index; + MappingInfo.Mtd = MTDTypeUnknown; MappingInfo.Digital = FALSE; GetDeviceConsistMappingInfo (&MappingInfo, DevicePath); SetMem (&Str, sizeof (Str), 0); for (Index = 0; mMTDName[Index].MTDType != MTDTypeEnd; Index++) { - if (MappingInfo.MTD == mMTDName[Index].MTDType) { + if (MappingInfo.Mtd == mMTDName[Index].MTDType) { break; } } @@ -1267,10 +1411,10 @@ ShellCommandConsistMappingGenMappingName ( CatPrint (&Str, L"%s", mMTDName[Index].Name); } - CatPrint (&Str, L"%d", (UINTN) MappingInfo.HI); - if (MappingInfo.CSD.Str != NULL) { - CatPrint (&Str, L"%s", MappingInfo.CSD.Str); - FreePool (MappingInfo.CSD.Str); + CatPrint (&Str, L"%d", (UINTN) MappingInfo.Hi); + if (MappingInfo.Csd.Str != NULL) { + CatPrint (&Str, L"%s", MappingInfo.Csd.Str); + FreePool (MappingInfo.Csd.Str); } if (Str.Str != NULL) { @@ -1279,6 +1423,9 @@ ShellCommandConsistMappingGenMappingName ( NewSize = (Str.Len + 1) * sizeof (CHAR16); Str.Str = ReallocatePool (Str.Len, NewSize, Str.Str); + if (Str.Str == NULL) { + return (NULL); + } Str.Str[Str.Len] = CHAR_NULL; return Str.Str; }