From 47d20b54f9a65b08aa602a1866c1b59a69088dfc Mon Sep 17 00:00:00 2001 From: Michael Kubacki Date: Sun, 5 Dec 2021 14:54:13 -0800 Subject: ShellPkg: Apply uncrustify changes REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the ShellPkg package Cc: Andrew Fish Cc: Leif Lindholm Cc: Michael D Kinney Signed-off-by: Michael Kubacki Reviewed-by: Ray Ni --- .../Library/UefiShellCommandLib/ConsistMapping.c | 605 ++++++----- .../UefiShellCommandLib/UefiShellCommandLib.c | 1120 +++++++++++--------- .../UefiShellCommandLib/UefiShellCommandLib.h | 29 +- 3 files changed, 941 insertions(+), 813 deletions(-) (limited to 'ShellPkg/Library/UefiShellCommandLib') diff --git a/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c b/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c index 8278388..1767a7d 100755 --- a/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c +++ b/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c @@ -13,8 +13,6 @@ #include #include - - typedef enum { MTDTypeUnknown, MTDTypeFloppy, @@ -24,20 +22,20 @@ typedef enum { } MTD_TYPE; typedef struct { - CHAR16 *Str; - UINTN Len; + CHAR16 *Str; + UINTN Len; } POOL_PRINT; typedef struct { - UINTN Hi; - MTD_TYPE Mtd; - POOL_PRINT Csd; - BOOLEAN Digital; + UINTN Hi; + MTD_TYPE Mtd; + POOL_PRINT Csd; + BOOLEAN Digital; } DEVICE_CONSIST_MAPPING_INFO; typedef struct { - MTD_TYPE MTDType; - CHAR16 *Name; + MTD_TYPE MTDType; + CHAR16 *Name; } MTD_NAME; /** @@ -53,19 +51,18 @@ typedef struct { typedef EFI_STATUS (*SERIAL_DECODE_FUNCTION) ( - EFI_DEVICE_PATH_PROTOCOL *DevPath, - DEVICE_CONSIST_MAPPING_INFO *MapInfo, - EFI_DEVICE_PATH_PROTOCOL *OrigDevPath + EFI_DEVICE_PATH_PROTOCOL *DevPath, + DEVICE_CONSIST_MAPPING_INFO *MapInfo, + EFI_DEVICE_PATH_PROTOCOL *OrigDevPath ); typedef struct { - UINT8 Type; - UINT8 SubType; - SERIAL_DECODE_FUNCTION SerialFun; - INTN (EFIAPI *CompareFun) (EFI_DEVICE_PATH_PROTOCOL *DevPath, EFI_DEVICE_PATH_PROTOCOL *DevPath2); + UINT8 Type; + UINT8 SubType; + SERIAL_DECODE_FUNCTION SerialFun; + INTN (EFIAPI *CompareFun)(EFI_DEVICE_PATH_PROTOCOL *DevPath, EFI_DEVICE_PATH_PROTOCOL *DevPath2); } DEV_PATH_CONSIST_MAPPING_TABLE; - /** Concatenates a formatted unicode string to allocated pool. The caller must free the resulting buffer. @@ -81,15 +78,15 @@ typedef struct { EFI_STATUS EFIAPI CatPrint ( - IN OUT POOL_PRINT *Str, - IN CHAR16 *Fmt, + IN OUT POOL_PRINT *Str, + IN CHAR16 *Fmt, ... ) { - UINT16 *AppendStr; - VA_LIST Args; - UINTN StringSize; - CHAR16 *NewStr; + UINT16 *AppendStr; + VA_LIST Args; + UINTN StringSize; + CHAR16 *NewStr; AppendStr = AllocateZeroPool (0x1000); if (AppendStr == NULL) { @@ -101,9 +98,9 @@ CatPrint ( VA_END (Args); if (NULL == Str->Str) { StringSize = StrSize (AppendStr); - NewStr = AllocateZeroPool (StringSize); + NewStr = AllocateZeroPool (StringSize); } else { - StringSize = StrSize (AppendStr); + StringSize = StrSize (AppendStr); StringSize += (StrSize (Str->Str) - sizeof (UINT16)); NewStr = ReallocatePool ( @@ -112,13 +109,14 @@ CatPrint ( Str->Str ); } + if (NewStr == NULL) { FreePool (AppendStr); return EFI_OUT_OF_RESOURCES; } Str->Str = NewStr; - StrCatS (Str->Str, StringSize/sizeof(CHAR16), AppendStr); + StrCatS (Str->Str, StringSize/sizeof (CHAR16), AppendStr); Str->Len = StringSize; FreePool (AppendStr); @@ -159,13 +157,13 @@ MTD_NAME mMTDName[] = { **/ EFI_STATUS AppendCSDNum2 ( - IN OUT POOL_PRINT *Str, - IN UINT64 Num + IN OUT POOL_PRINT *Str, + IN UINT64 Num ) { - EFI_STATUS Status; - UINT64 Result; - UINT32 Rem; + EFI_STATUS Status; + UINT64 Result; + UINT32 Rem; ASSERT (Str != NULL); @@ -192,11 +190,12 @@ AppendCSDNum2 ( **/ EFI_STATUS AppendCSDNum ( - IN OUT DEVICE_CONSIST_MAPPING_INFO *MappingItem, - IN UINT64 Num + IN OUT DEVICE_CONSIST_MAPPING_INFO *MappingItem, + IN UINT64 Num ) { - EFI_STATUS Status; + EFI_STATUS Status; + ASSERT (MappingItem != NULL); if (MappingItem->Digital) { @@ -223,12 +222,12 @@ AppendCSDNum ( **/ EFI_STATUS AppendCSDStr ( - IN OUT DEVICE_CONSIST_MAPPING_INFO *MappingItem, - IN CHAR16 *Str + IN OUT DEVICE_CONSIST_MAPPING_INFO *MappingItem, + IN CHAR16 *Str ) { - CHAR16 *Index; - EFI_STATUS Status; + CHAR16 *Index; + EFI_STATUS Status; ASSERT (Str != NULL && MappingItem != NULL); @@ -242,39 +241,39 @@ AppendCSDStr ( // for (Index = Str; *Index != 0; Index++) { switch (*Index) { - case '0': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - Status = CatPrint (&MappingItem->Csd, L"%c", *Index); - break; + case '0': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + Status = CatPrint (&MappingItem->Csd, L"%c", *Index); + break; - case '1': - Status = CatPrint (&MappingItem->Csd, L"16"); - break; + case '1': + Status = CatPrint (&MappingItem->Csd, L"16"); + break; - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - Status = CatPrint (&MappingItem->Csd, L"1%c", *Index - 'a' + '0'); - break; + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + Status = CatPrint (&MappingItem->Csd, L"1%c", *Index - 'a' + '0'); + break; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - Status = CatPrint (&MappingItem->Csd, L"1%c", *Index - 'A' + '0'); - break; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + Status = CatPrint (&MappingItem->Csd, L"1%c", *Index - 'A' + '0'); + break; } if (EFI_ERROR (Status)) { @@ -288,11 +287,11 @@ AppendCSDStr ( // 0 1 2 3 4 5 6 7 8 9 a b c d e f // a b c d e f g h i j k l m n o p // - if (*Index >= '0' && *Index <= '9') { + if ((*Index >= '0') && (*Index <= '9')) { Status = CatPrint (&MappingItem->Csd, L"%c", *Index - '0' + 'a'); - } else if (*Index >= 'a' && *Index <= 'f') { + } else if ((*Index >= 'a') && (*Index <= 'f')) { Status = CatPrint (&MappingItem->Csd, L"%c", *Index - 'a' + 'k'); - } else if (*Index >= 'A' && *Index <= 'F') { + } else if ((*Index >= 'A') && (*Index <= 'F')) { Status = CatPrint (&MappingItem->Csd, L"%c", *Index - 'A' + 'k'); } @@ -302,7 +301,7 @@ AppendCSDStr ( } } - MappingItem->Digital = (BOOLEAN)!(MappingItem->Digital); + MappingItem->Digital = (BOOLEAN) !(MappingItem->Digital); return (EFI_SUCCESS); } @@ -318,8 +317,8 @@ AppendCSDStr ( **/ EFI_STATUS AppendCSDGuid ( - DEVICE_CONSIST_MAPPING_INFO *MappingItem, - EFI_GUID *Guid + DEVICE_CONSIST_MAPPING_INFO *MappingItem, + EFI_GUID *Guid ) { CHAR16 Buffer[64]; @@ -331,7 +330,7 @@ AppendCSDGuid ( 0, L"%g", Guid - ); + ); return AppendCSDStr (MappingItem, Buffer); } @@ -348,24 +347,24 @@ AppendCSDGuid ( INTN EFIAPI DevPathCompareAcpi ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 ) { ACPI_HID_DEVICE_PATH *Acpi1; ACPI_HID_DEVICE_PATH *Acpi2; - if (DevicePath1 == NULL || DevicePath2 == NULL) { + if ((DevicePath1 == NULL) || (DevicePath2 == NULL)) { return (-2); } - Acpi1 = (ACPI_HID_DEVICE_PATH *) DevicePath1; - Acpi2 = (ACPI_HID_DEVICE_PATH *) DevicePath2; - if (Acpi1->HID > Acpi2->HID || (Acpi1->HID == Acpi2->HID && Acpi1->UID > Acpi2->UID)) { + Acpi1 = (ACPI_HID_DEVICE_PATH *)DevicePath1; + Acpi2 = (ACPI_HID_DEVICE_PATH *)DevicePath2; + if ((Acpi1->HID > Acpi2->HID) || ((Acpi1->HID == Acpi2->HID) && (Acpi1->UID > Acpi2->UID))) { return 1; } - if (Acpi1->HID == Acpi2->HID && Acpi1->UID == Acpi2->UID) { + if ((Acpi1->HID == Acpi2->HID) && (Acpi1->UID == Acpi2->UID)) { return 0; } @@ -384,23 +383,23 @@ DevPathCompareAcpi ( INTN EFIAPI DevPathComparePci ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 ) { - PCI_DEVICE_PATH *Pci1; - PCI_DEVICE_PATH *Pci2; + PCI_DEVICE_PATH *Pci1; + PCI_DEVICE_PATH *Pci2; - ASSERT(DevicePath1 != NULL); - ASSERT(DevicePath2 != NULL); + ASSERT (DevicePath1 != NULL); + ASSERT (DevicePath2 != NULL); - Pci1 = (PCI_DEVICE_PATH *) DevicePath1; - Pci2 = (PCI_DEVICE_PATH *) DevicePath2; - if (Pci1->Device > Pci2->Device || (Pci1->Device == Pci2->Device && Pci1->Function > Pci2->Function)) { + Pci1 = (PCI_DEVICE_PATH *)DevicePath1; + Pci2 = (PCI_DEVICE_PATH *)DevicePath2; + if ((Pci1->Device > Pci2->Device) || ((Pci1->Device == Pci2->Device) && (Pci1->Function > Pci2->Function))) { return 1; } - if (Pci1->Device == Pci2->Device && Pci1->Function == Pci2->Function) { + if ((Pci1->Device == Pci2->Device) && (Pci1->Function == Pci2->Function)) { return 0; } @@ -420,18 +419,18 @@ DevPathComparePci ( INTN EFIAPI DevPathCompareDefault ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2 ) { - UINTN DevPathSize1; - UINTN DevPathSize2; + UINTN DevPathSize1; + UINTN DevPathSize2; - ASSERT(DevicePath1 != NULL); - ASSERT(DevicePath2 != NULL); + ASSERT (DevicePath1 != NULL); + ASSERT (DevicePath2 != NULL); - DevPathSize1 = DevicePathNodeLength (DevicePath1); - DevPathSize2 = DevicePathNodeLength (DevicePath2); + DevPathSize1 = DevicePathNodeLength (DevicePath1); + DevPathSize2 = DevicePathNodeLength (DevicePath2); if (DevPathSize1 > DevPathSize2) { return 1; } else if (DevPathSize1 < DevPathSize2) { @@ -458,12 +457,12 @@ DevPathSerialHardDrive ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - HARDDRIVE_DEVICE_PATH *Hd; + HARDDRIVE_DEVICE_PATH *Hd; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Hd = (HARDDRIVE_DEVICE_PATH *) DevicePathNode; + Hd = (HARDDRIVE_DEVICE_PATH *)DevicePathNode; if (MappingItem->Mtd == MTDTypeUnknown) { MappingItem->Mtd = MTDTypeHardDisk; } @@ -488,12 +487,12 @@ DevPathSerialAtapi ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - ATAPI_DEVICE_PATH *Atapi; + ATAPI_DEVICE_PATH *Atapi; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Atapi = (ATAPI_DEVICE_PATH *) DevicePathNode; + Atapi = (ATAPI_DEVICE_PATH *)DevicePathNode; return AppendCSDNum (MappingItem, (Atapi->PrimarySecondary * 2 + Atapi->SlaveMaster)); } @@ -514,13 +513,13 @@ DevPathSerialCdRom ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - CDROM_DEVICE_PATH *Cd; + CDROM_DEVICE_PATH *Cd; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Cd = (CDROM_DEVICE_PATH *) DevicePathNode; - MappingItem->Mtd = MTDTypeCDRom; + Cd = (CDROM_DEVICE_PATH *)DevicePathNode; + MappingItem->Mtd = MTDTypeCDRom; return AppendCSDNum (MappingItem, Cd->BootEntry); } @@ -544,14 +543,15 @@ DevPathSerialFibre ( EFI_STATUS Status; FIBRECHANNEL_DEVICE_PATH *Fibre; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Fibre = (FIBRECHANNEL_DEVICE_PATH *) DevicePathNode; + Fibre = (FIBRECHANNEL_DEVICE_PATH *)DevicePathNode; Status = AppendCSDNum (MappingItem, Fibre->WWN); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Fibre->Lun); } + return Status; } @@ -572,23 +572,26 @@ DevPathSerialUart ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - EFI_STATUS Status; - UART_DEVICE_PATH *Uart; + EFI_STATUS Status; + UART_DEVICE_PATH *Uart; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Uart = (UART_DEVICE_PATH *) DevicePathNode; + Uart = (UART_DEVICE_PATH *)DevicePathNode; Status = AppendCSDNum (MappingItem, Uart->BaudRate); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Uart->DataBits); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Uart->Parity); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Uart->StopBits); } + return Status; } @@ -615,11 +618,10 @@ DevPathSerialUsb ( EFI_STATUS Status; USB_INTERFACE_DESCRIPTOR InterfaceDesc; + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); - - Usb = (USB_DEVICE_PATH *) DevicePathNode; + Usb = (USB_DEVICE_PATH *)DevicePathNode; Status = AppendCSDNum (MappingItem, Usb->ParentPortNumber); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Usb->InterfaceNumber); @@ -629,19 +631,19 @@ DevPathSerialUsb ( return Status; } - if (PcdGetBool(PcdUsbExtendedDecode)) { - Status = gBS->LocateDevicePath( &gEfiUsbIoProtocolGuid, &DevicePath, &TempHandle ); - UsbIo = NULL; - if (!EFI_ERROR(Status)) { - Status = gBS->OpenProtocol(TempHandle, &gEfiUsbIoProtocolGuid, (VOID**)&UsbIo, gImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL); + if (PcdGetBool (PcdUsbExtendedDecode)) { + Status = gBS->LocateDevicePath (&gEfiUsbIoProtocolGuid, &DevicePath, &TempHandle); + UsbIo = NULL; + if (!EFI_ERROR (Status)) { + Status = gBS->OpenProtocol (TempHandle, &gEfiUsbIoProtocolGuid, (VOID **)&UsbIo, gImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL); } - if (!EFI_ERROR(Status)) { - ASSERT(UsbIo != NULL); - Status = UsbIo->UsbGetInterfaceDescriptor(UsbIo, &InterfaceDesc); - if (!EFI_ERROR(Status)) { - if (InterfaceDesc.InterfaceClass == USB_MASS_STORE_CLASS && MappingItem->Mtd == MTDTypeUnknown) { - switch (InterfaceDesc.InterfaceSubClass){ + if (!EFI_ERROR (Status)) { + ASSERT (UsbIo != NULL); + Status = UsbIo->UsbGetInterfaceDescriptor (UsbIo, &InterfaceDesc); + if (!EFI_ERROR (Status)) { + if ((InterfaceDesc.InterfaceClass == USB_MASS_STORE_CLASS) && (MappingItem->Mtd == MTDTypeUnknown)) { + switch (InterfaceDesc.InterfaceSubClass) { case USB_MASS_STORE_SCSI: MappingItem->Mtd = MTDTypeHardDisk; break; @@ -650,13 +652,14 @@ DevPathSerialUsb ( MappingItem->Mtd = MTDTypeFloppy; break; case USB_MASS_STORE_8020I: - MappingItem->Mtd = MTDTypeCDRom; + MappingItem->Mtd = MTDTypeCDRom; break; } } } } } + return Status; } @@ -685,34 +688,36 @@ DevPathSerialVendor ( CHAR16 *Buffer; CHAR16 *NewBuffer; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Vendor = (VENDOR_DEVICE_PATH *) DevicePathNode; + Vendor = (VENDOR_DEVICE_PATH *)DevicePathNode; Status = AppendCSDGuid (MappingItem, &Vendor->Guid); if (EFI_ERROR (Status)) { return Status; } if (CompareGuid (&gEfiSasDevicePathGuid, &Vendor->Guid)) { - Sas = (SAS_DEVICE_PATH *) Vendor; + Sas = (SAS_DEVICE_PATH *)Vendor; Status = AppendCSDNum (MappingItem, Sas->SasAddress); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Sas->Lun); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Sas->DeviceTopology); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Sas->RelativeTargetPort); } } else { - TargetNameLength = MIN(DevicePathNodeLength (DevicePathNode) - sizeof (VENDOR_DEVICE_PATH), PcdGet32(PcdShellVendorExtendedDecode)); + 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)); + Buffer = AllocateZeroPool (((TargetNameLength * 2) + 1) * sizeof (CHAR16)); if (Buffer == NULL) { return EFI_OUT_OF_RESOURCES; } @@ -721,11 +726,12 @@ DevPathSerialVendor ( // Build the string data // for (Index = 0; Index < TargetNameLength; Index++) { - NewBuffer = CatSPrint (Buffer, L"%02x", *((UINT8*)Vendor + sizeof (VENDOR_DEVICE_PATH) + Index)); + NewBuffer = CatSPrint (Buffer, L"%02x", *((UINT8 *)Vendor + sizeof (VENDOR_DEVICE_PATH) + Index)); if (NewBuffer == NULL) { Status = EFI_OUT_OF_RESOURCES; break; } + Buffer = NewBuffer; } @@ -736,9 +742,10 @@ DevPathSerialVendor ( Status = AppendCSDStr (MappingItem, Buffer); } - FreePool(Buffer); + FreePool (Buffer); } } + return Status; } @@ -759,12 +766,12 @@ DevPathSerialLun ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - DEVICE_LOGICAL_UNIT_DEVICE_PATH *Lun; + DEVICE_LOGICAL_UNIT_DEVICE_PATH *Lun; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Lun = (DEVICE_LOGICAL_UNIT_DEVICE_PATH *) DevicePathNode; + Lun = (DEVICE_LOGICAL_UNIT_DEVICE_PATH *)DevicePathNode; return AppendCSDNum (MappingItem, Lun->Lun); } @@ -788,17 +795,19 @@ DevPathSerialSata ( EFI_STATUS Status; SATA_DEVICE_PATH *Sata; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Sata = (SATA_DEVICE_PATH *) DevicePathNode; + Sata = (SATA_DEVICE_PATH *)DevicePathNode; Status = AppendCSDNum (MappingItem, Sata->HBAPortNumber); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Sata->PortMultiplierPortNumber); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Sata->Lun); } + return Status; } @@ -826,41 +835,47 @@ DevPathSerialIScsi ( UINTN TargetNameLength; UINTN Index; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); Status = EFI_SUCCESS; - if (PcdGetBool(PcdShellDecodeIScsiMapNames)) { - IScsi = (ISCSI_DEVICE_PATH *) DevicePathNode; + if (PcdGetBool (PcdShellDecodeIScsiMapNames)) { + IScsi = (ISCSI_DEVICE_PATH *)DevicePathNode; Status = AppendCSDNum (MappingItem, IScsi->NetworkProtocol); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, IScsi->LoginOption); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, IScsi->Lun); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, IScsi->TargetPortalGroupTag); } + if (EFI_ERROR (Status)) { return Status; } + TargetNameLength = DevicePathNodeLength (DevicePathNode) - sizeof (ISCSI_DEVICE_PATH); if (TargetNameLength > 0) { TargetName = AllocateZeroPool ((TargetNameLength + 1) * sizeof (CHAR16)); if (TargetName == NULL) { Status = EFI_OUT_OF_RESOURCES; } else { - IScsiTargetName = (UINT8 *) (IScsi + 1); + IScsiTargetName = (UINT8 *)(IScsi + 1); for (Index = 0; Index < TargetNameLength; Index++) { - TargetName[Index] = (CHAR16) IScsiTargetName[Index]; + TargetName[Index] = (CHAR16)IScsiTargetName[Index]; } + Status = AppendCSDStr (MappingItem, TargetName); FreePool (TargetName); } } } + return Status; } @@ -881,12 +896,12 @@ DevPathSerialI2O ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - I2O_DEVICE_PATH *DevicePath_I20; + I2O_DEVICE_PATH *DevicePath_I20; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - DevicePath_I20 = (I2O_DEVICE_PATH *) DevicePathNode; + DevicePath_I20 = (I2O_DEVICE_PATH *)DevicePathNode; return AppendCSDNum (MappingItem, DevicePath_I20->Tid); } @@ -913,18 +928,18 @@ DevPathSerialMacAddr ( CHAR16 Buffer[64]; CHAR16 *PBuffer; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Mac = (MAC_ADDR_DEVICE_PATH *) DevicePathNode; + Mac = (MAC_ADDR_DEVICE_PATH *)DevicePathNode; HwAddressSize = sizeof (EFI_MAC_ADDRESS); - if (Mac->IfType == 0x01 || Mac->IfType == 0x00) { + if ((Mac->IfType == 0x01) || (Mac->IfType == 0x00)) { HwAddressSize = 6; } for (Index = 0, PBuffer = Buffer; Index < HwAddressSize; Index++, PBuffer += 2) { - UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN) Mac->MacAddress.Addr[Index]); + UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN)Mac->MacAddress.Addr[Index]); } return AppendCSDStr (MappingItem, Buffer); @@ -953,24 +968,27 @@ DevPathSerialInfiniBand ( CHAR16 Buffer[64]; CHAR16 *PBuffer; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - InfiniBand = (INFINIBAND_DEVICE_PATH *) DevicePathNode; + InfiniBand = (INFINIBAND_DEVICE_PATH *)DevicePathNode; for (Index = 0, PBuffer = Buffer; Index < 16; Index++, PBuffer += 2) { - UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN) InfiniBand->PortGid[Index]); + UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN)InfiniBand->PortGid[Index]); } Status = AppendCSDStr (MappingItem, Buffer); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, InfiniBand->ServiceId); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, InfiniBand->TargetPortId); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, InfiniBand->DeviceId); } + return Status; } @@ -995,38 +1013,41 @@ DevPathSerialIPv4 ( IPv4_DEVICE_PATH *Ip; CHAR16 Buffer[10]; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Ip = (IPv4_DEVICE_PATH *) DevicePathNode; + Ip = (IPv4_DEVICE_PATH *)DevicePathNode; UnicodeSPrint ( Buffer, 0, L"%02x%02x%02x%02x", - (UINTN) Ip->LocalIpAddress.Addr[0], - (UINTN) Ip->LocalIpAddress.Addr[1], - (UINTN) Ip->LocalIpAddress.Addr[2], - (UINTN) Ip->LocalIpAddress.Addr[3] - ); + (UINTN)Ip->LocalIpAddress.Addr[0], + (UINTN)Ip->LocalIpAddress.Addr[1], + (UINTN)Ip->LocalIpAddress.Addr[2], + (UINTN)Ip->LocalIpAddress.Addr[3] + ); Status = AppendCSDStr (MappingItem, Buffer); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Ip->LocalPort); } + if (!EFI_ERROR (Status)) { UnicodeSPrint ( Buffer, 0, L"%02x%02x%02x%02x", - (UINTN) Ip->RemoteIpAddress.Addr[0], - (UINTN) Ip->RemoteIpAddress.Addr[1], - (UINTN) Ip->RemoteIpAddress.Addr[2], - (UINTN) Ip->RemoteIpAddress.Addr[3] - ); + (UINTN)Ip->RemoteIpAddress.Addr[0], + (UINTN)Ip->RemoteIpAddress.Addr[1], + (UINTN)Ip->RemoteIpAddress.Addr[2], + (UINTN)Ip->RemoteIpAddress.Addr[3] + ); Status = AppendCSDStr (MappingItem, Buffer); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Ip->RemotePort); } + return Status; } @@ -1053,28 +1074,31 @@ DevPathSerialIPv6 ( CHAR16 Buffer[64]; CHAR16 *PBuffer; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Ip = (IPv6_DEVICE_PATH *) DevicePathNode; + Ip = (IPv6_DEVICE_PATH *)DevicePathNode; for (Index = 0, PBuffer = Buffer; Index < 16; Index++, PBuffer += 2) { - UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN) Ip->LocalIpAddress.Addr[Index]); + UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN)Ip->LocalIpAddress.Addr[Index]); } Status = AppendCSDStr (MappingItem, Buffer); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Ip->LocalPort); } + if (!EFI_ERROR (Status)) { for (Index = 0, PBuffer = Buffer; Index < 16; Index++, PBuffer += 2) { - UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN) Ip->RemoteIpAddress.Addr[Index]); + UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN)Ip->RemoteIpAddress.Addr[Index]); } Status = AppendCSDStr (MappingItem, Buffer); } + if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Ip->RemotePort); } + return Status; } @@ -1098,14 +1122,15 @@ DevPathSerialScsi ( EFI_STATUS Status; SCSI_DEVICE_PATH *Scsi; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Scsi = (SCSI_DEVICE_PATH *) DevicePathNode; + Scsi = (SCSI_DEVICE_PATH *)DevicePathNode; Status = AppendCSDNum (MappingItem, Scsi->Pun); if (!EFI_ERROR (Status)) { Status = AppendCSDNum (MappingItem, Scsi->Lun); } + return Status; } @@ -1126,13 +1151,13 @@ DevPathSerial1394 ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - F1394_DEVICE_PATH *DevicePath_F1394; - CHAR16 Buffer[20]; + F1394_DEVICE_PATH *DevicePath_F1394; + CHAR16 Buffer[20]; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - DevicePath_F1394 = (F1394_DEVICE_PATH *) DevicePathNode; + DevicePath_F1394 = (F1394_DEVICE_PATH *)DevicePathNode; UnicodeSPrint (Buffer, 0, L"%lx", DevicePath_F1394->Guid); return AppendCSDStr (MappingItem, Buffer); } @@ -1156,16 +1181,17 @@ DevPathSerialAcpi ( { ACPI_HID_DEVICE_PATH *Acpi; - ASSERT(DevicePathNode != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePathNode != NULL); + ASSERT (MappingItem != NULL); - Acpi = (ACPI_HID_DEVICE_PATH *) DevicePathNode; + 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; return AppendCSDNum (MappingItem, Acpi->UID); } } + return EFI_SUCCESS; } @@ -1328,25 +1354,25 @@ DEV_PATH_CONSIST_MAPPING_TABLE DevPathConsistMappingTable[] = { **/ BOOLEAN IsHIDevicePathNode ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode + IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode ) { ACPI_HID_DEVICE_PATH *Acpi; - ASSERT(DevicePathNode != NULL); + ASSERT (DevicePathNode != NULL); if (DevicePathNode->Type == HARDWARE_DEVICE_PATH) { return TRUE; } if (DevicePathNode->Type == ACPI_DEVICE_PATH) { - Acpi = (ACPI_HID_DEVICE_PATH *) DevicePathNode; + Acpi = (ACPI_HID_DEVICE_PATH *)DevicePathNode; switch (EISA_ID_TO_NUM (Acpi->HID)) { - case 0x0301: - case 0x0401: - case 0x0501: - case 0x0604: - return FALSE; + case 0x0301: + case 0x0401: + case 0x0501: + case 0x0604: + return FALSE; } return TRUE; @@ -1364,7 +1390,7 @@ IsHIDevicePathNode ( **/ EFI_DEVICE_PATH_PROTOCOL * GetHIDevicePath ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { UINTN NonHIDevicePathNodeCount; @@ -1373,17 +1399,17 @@ GetHIDevicePath ( EFI_DEVICE_PATH_PROTOCOL *HIDevicePath; EFI_DEVICE_PATH_PROTOCOL *TempDevicePath; - ASSERT(DevicePath != NULL); + ASSERT (DevicePath != NULL); - NonHIDevicePathNodeCount = 0; + NonHIDevicePathNodeCount = 0; - HIDevicePath = AllocateZeroPool (sizeof (EFI_DEVICE_PATH_PROTOCOL)); + HIDevicePath = AllocateZeroPool (sizeof (EFI_DEVICE_PATH_PROTOCOL)); SetDevicePathEndNode (HIDevicePath); - Node.DevPath.Type = END_DEVICE_PATH_TYPE; - Node.DevPath.SubType = END_INSTANCE_DEVICE_PATH_SUBTYPE; - Node.DevPath.Length[0] = (UINT8)sizeof (EFI_DEVICE_PATH_PROTOCOL); - Node.DevPath.Length[1] = 0; + Node.DevPath.Type = END_DEVICE_PATH_TYPE; + Node.DevPath.SubType = END_INSTANCE_DEVICE_PATH_SUBTYPE; + Node.DevPath.Length[0] = (UINT8)sizeof (EFI_DEVICE_PATH_PROTOCOL); + Node.DevPath.Length[1] = 0; while (!IsDevicePathEnd (DevicePath)) { if (IsHIDevicePathNode (DevicePath)) { @@ -1399,10 +1425,11 @@ GetHIDevicePath ( } else { NonHIDevicePathNodeCount++; } + // // Next device path node // - DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) NextDevicePathNode (DevicePath); + DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)NextDevicePathNode (DevicePath); } return HIDevicePath; @@ -1418,8 +1445,8 @@ GetHIDevicePath ( **/ EFI_STATUS GetDeviceConsistMappingInfo ( - IN DEVICE_CONSIST_MAPPING_INFO *MappingItem, - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath + IN DEVICE_CONSIST_MAPPING_INFO *MappingItem, + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { EFI_STATUS Status; @@ -1427,8 +1454,8 @@ GetDeviceConsistMappingInfo ( UINTN Index; EFI_DEVICE_PATH_PROTOCOL *OriginalDevicePath; - ASSERT(DevicePath != NULL); - ASSERT(MappingItem != NULL); + ASSERT (DevicePath != NULL); + ASSERT (MappingItem != NULL); SetMem (&MappingItem->Csd, sizeof (POOL_PRINT), 0); OriginalDevicePath = DevicePath; @@ -1439,10 +1466,10 @@ GetDeviceConsistMappingInfo ( // initialize with generic function in case nothing is found // for (SerialFun = DevPathSerialDefault, Index = 0; DevPathConsistMappingTable[Index].SerialFun != NULL; Index += 1) { - - if (DevicePathType (DevicePath) == DevPathConsistMappingTable[Index].Type && - DevicePathSubType (DevicePath) == DevPathConsistMappingTable[Index].SubType - ) { + if ((DevicePathType (DevicePath) == DevPathConsistMappingTable[Index].Type) && + (DevicePathSubType (DevicePath) == DevPathConsistMappingTable[Index].SubType) + ) + { SerialFun = DevPathConsistMappingTable[Index].SerialFun; break; } @@ -1457,7 +1484,7 @@ GetDeviceConsistMappingInfo ( // // Next device path node // - DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) NextDevicePathNode (DevicePath); + DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)NextDevicePathNode (DevicePath); } return EFI_SUCCESS; @@ -1473,37 +1500,37 @@ GetDeviceConsistMappingInfo ( EFI_STATUS EFIAPI ShellCommandConsistMappingInitialize ( - OUT EFI_DEVICE_PATH_PROTOCOL ***Table + OUT EFI_DEVICE_PATH_PROTOCOL ***Table ) { - EFI_HANDLE *HandleBuffer; - UINTN HandleNum; - UINTN HandleLoop; - EFI_DEVICE_PATH_PROTOCOL **TempTable; - EFI_DEVICE_PATH_PROTOCOL *DevicePath; - EFI_DEVICE_PATH_PROTOCOL *HIDevicePath; - EFI_BLOCK_IO_PROTOCOL *BlockIo; - EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem; - UINTN Index; - EFI_STATUS Status; - - HandleBuffer = NULL; + EFI_HANDLE *HandleBuffer; + UINTN HandleNum; + UINTN HandleLoop; + EFI_DEVICE_PATH_PROTOCOL **TempTable; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + EFI_DEVICE_PATH_PROTOCOL *HIDevicePath; + EFI_BLOCK_IO_PROTOCOL *BlockIo; + EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem; + UINTN Index; + EFI_STATUS Status; + + HandleBuffer = NULL; Status = gBS->LocateHandleBuffer ( - ByProtocol, - &gEfiDevicePathProtocolGuid, - NULL, - &HandleNum, - &HandleBuffer - ); - ASSERT_EFI_ERROR(Status); - - TempTable = AllocateZeroPool ((HandleNum + 1) * sizeof (EFI_DEVICE_PATH_PROTOCOL *)); + ByProtocol, + &gEfiDevicePathProtocolGuid, + NULL, + &HandleNum, + &HandleBuffer + ); + ASSERT_EFI_ERROR (Status); + + TempTable = AllocateZeroPool ((HandleNum + 1) * sizeof (EFI_DEVICE_PATH_PROTOCOL *)); if (TempTable == NULL) { return EFI_OUT_OF_RESOURCES; } - for (HandleLoop = 0 ; HandleLoop < HandleNum ; HandleLoop++) { + for (HandleLoop = 0; HandleLoop < HandleNum; HandleLoop++) { DevicePath = DevicePathFromHandle (HandleBuffer[HandleLoop]); if (DevicePath == NULL) { continue; @@ -1514,16 +1541,18 @@ ShellCommandConsistMappingInitialize ( continue; } - Status = gBS->HandleProtocol( HandleBuffer[HandleLoop], - &gEfiBlockIoProtocolGuid, - (VOID **)&BlockIo - ); - if (EFI_ERROR(Status)) { - Status = gBS->HandleProtocol( HandleBuffer[HandleLoop], - &gEfiSimpleFileSystemProtocolGuid, - (VOID **)&SimpleFileSystem - ); - if (EFI_ERROR(Status)) { + Status = gBS->HandleProtocol ( + HandleBuffer[HandleLoop], + &gEfiBlockIoProtocolGuid, + (VOID **)&BlockIo + ); + if (EFI_ERROR (Status)) { + Status = gBS->HandleProtocol ( + HandleBuffer[HandleLoop], + &gEfiSimpleFileSystemProtocolGuid, + (VOID **)&SimpleFileSystem + ); + if (EFI_ERROR (Status)) { FreePool (HIDevicePath); continue; } @@ -1541,8 +1570,10 @@ ShellCommandConsistMappingInitialize ( } } - for (Index = 0; TempTable[Index] != NULL; Index++); - PerformQuickSort(TempTable, Index, sizeof(EFI_DEVICE_PATH_PROTOCOL*), DevicePathCompare); + for (Index = 0; TempTable[Index] != NULL; Index++) { + } + + PerformQuickSort (TempTable, Index, sizeof (EFI_DEVICE_PATH_PROTOCOL *), DevicePathCompare); *Table = TempTable; if (HandleBuffer != NULL) { @@ -1564,12 +1595,12 @@ ShellCommandConsistMappingInitialize ( EFI_STATUS EFIAPI ShellCommandConsistMappingUnInitialize ( - EFI_DEVICE_PATH_PROTOCOL **Table + EFI_DEVICE_PATH_PROTOCOL **Table ) { - UINTN Index; + UINTN Index; - ASSERT(Table != NULL); + ASSERT (Table != NULL); for (Index = 0; Table[Index] != NULL; Index++) { FreePool (Table[Index]); @@ -1595,18 +1626,18 @@ ShellCommandConsistMappingUnInitialize ( CHAR16 * EFIAPI ShellCommandConsistMappingGenMappingName ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, - IN EFI_DEVICE_PATH_PROTOCOL **Table + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, + IN EFI_DEVICE_PATH_PROTOCOL **Table ) { - EFI_STATUS Status; - POOL_PRINT Str; - DEVICE_CONSIST_MAPPING_INFO MappingInfo; - EFI_DEVICE_PATH_PROTOCOL *HIDevicePath; - UINTN Index; + EFI_STATUS Status; + POOL_PRINT Str; + DEVICE_CONSIST_MAPPING_INFO MappingInfo; + EFI_DEVICE_PATH_PROTOCOL *HIDevicePath; + UINTN Index; - ASSERT(DevicePath != NULL); - ASSERT(Table != NULL); + ASSERT (DevicePath != NULL); + ASSERT (Table != NULL); HIDevicePath = GetHIDevicePath (DevicePath); if (HIDevicePath == NULL) { @@ -1645,16 +1676,18 @@ ShellCommandConsistMappingGenMappingName ( } if (!EFI_ERROR (Status)) { - Status = CatPrint (&Str, L"%d", (UINTN) MappingInfo.Hi); + Status = CatPrint (&Str, L"%d", (UINTN)MappingInfo.Hi); } - if (!EFI_ERROR (Status) && MappingInfo.Csd.Str != NULL) { + + if (!EFI_ERROR (Status) && (MappingInfo.Csd.Str != NULL)) { Status = CatPrint (&Str, L"%s", MappingInfo.Csd.Str); FreePool (MappingInfo.Csd.Str); } - if (!EFI_ERROR (Status) && Str.Str != NULL) { + if (!EFI_ERROR (Status) && (Str.Str != NULL)) { Status = CatPrint (&Str, L":"); } + if (EFI_ERROR (Status)) { SHELL_FREE_NON_NULL (Str.Str); return NULL; @@ -1673,20 +1706,20 @@ ShellCommandConsistMappingGenMappingName ( SHELL_MAP_LIST * EFIAPI ShellCommandFindMapItem ( - IN CONST CHAR16 *MapKey + IN CONST CHAR16 *MapKey ) { - SHELL_MAP_LIST *MapListItem; + SHELL_MAP_LIST *MapListItem; - for ( MapListItem = (SHELL_MAP_LIST *)GetFirstNode(&gShellMapList.Link) - ; !IsNull(&gShellMapList.Link, &MapListItem->Link) - ; MapListItem = (SHELL_MAP_LIST *)GetNextNode(&gShellMapList.Link, &MapListItem->Link) - ){ - if (gUnicodeCollation->StriColl(gUnicodeCollation,MapListItem->MapName,(CHAR16*)MapKey) == 0) { + for ( MapListItem = (SHELL_MAP_LIST *)GetFirstNode (&gShellMapList.Link) + ; !IsNull (&gShellMapList.Link, &MapListItem->Link) + ; MapListItem = (SHELL_MAP_LIST *)GetNextNode (&gShellMapList.Link, &MapListItem->Link) + ) + { + if (gUnicodeCollation->StriColl (gUnicodeCollation, MapListItem->MapName, (CHAR16 *)MapKey) == 0) { return (MapListItem); } } + return (NULL); } - - diff --git a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c index 81923c8..36cf46f 100644 --- a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c +++ b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c @@ -21,11 +21,11 @@ STATIC UINT64 mExitCode; STATIC BOOLEAN mExitScript; STATIC CHAR16 *mProfileList; STATIC UINTN mProfileListSize; -STATIC UINTN mFsMaxCount = 0; +STATIC UINTN mFsMaxCount = 0; STATIC UINTN mBlkMaxCount = 0; STATIC BUFFER_LIST mFileHandleList; -STATIC CONST CHAR8 Hex[] = { +STATIC CONST CHAR8 Hex[] = { '0', '1', '2', @@ -45,11 +45,11 @@ STATIC CONST CHAR8 Hex[] = { }; // global variables required by library class. -EFI_UNICODE_COLLATION_PROTOCOL *gUnicodeCollation = NULL; -SHELL_MAP_LIST gShellMapList; -SHELL_MAP_LIST *gShellCurMapping = NULL; +EFI_UNICODE_COLLATION_PROTOCOL *gUnicodeCollation = NULL; +SHELL_MAP_LIST gShellMapList; +SHELL_MAP_LIST *gShellCurMapping = NULL; -CONST CHAR16* SupportLevel[] = { +CONST CHAR16 *SupportLevel[] = { L"Minimal", L"Scripting", L"Basic", @@ -62,7 +62,7 @@ CONST CHAR16* SupportLevel[] = { **/ EFI_STATUS EFIAPI -CommandInit( +CommandInit ( VOID ) { @@ -75,8 +75,7 @@ CommandInit( CHAR8 *PlatformLang; if (gUnicodeCollation == NULL) { - - GetEfiGlobalVariable2 (EFI_PLATFORM_LANG_VARIABLE_NAME, (VOID**)&PlatformLang, NULL); + GetEfiGlobalVariable2 (EFI_PLATFORM_LANG_VARIABLE_NAME, (VOID **)&PlatformLang, NULL); Status = gBS->LocateHandleBuffer ( ByProtocol, @@ -89,6 +88,7 @@ CommandInit( NumHandles = 0; Handles = NULL; } + for (Index = 0; Index < NumHandles; Index++) { // // Open Unicode Collation Protocol @@ -96,7 +96,7 @@ CommandInit( Status = gBS->OpenProtocol ( Handles[Index], &gEfiUnicodeCollation2ProtocolGuid, - (VOID **) &Uc, + (VOID **)&Uc, gImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL @@ -113,6 +113,7 @@ CommandInit( if (gUnicodeCollation == NULL) { gUnicodeCollation = Uc; } + if (PlatformLang == NULL) { break; } @@ -133,9 +134,11 @@ CommandInit( break; } } + if (Handles != NULL) { FreePool (Handles); } + if (PlatformLang != NULL) { FreePool (PlatformLang); } @@ -161,18 +164,19 @@ ShellCommandLibConstructor ( IN EFI_SYSTEM_TABLE *SystemTable ) { - EFI_STATUS Status; - InitializeListHead(&gShellMapList.Link); - InitializeListHead(&mCommandList.Link); - InitializeListHead(&mAliasList.Link); - InitializeListHead(&mScriptList.Link); - InitializeListHead(&mFileHandleList.Link); + EFI_STATUS Status; + + InitializeListHead (&gShellMapList.Link); + InitializeListHead (&mCommandList.Link); + InitializeListHead (&mAliasList.Link); + InitializeListHead (&mScriptList.Link); + InitializeListHead (&mFileHandleList.Link); mEchoState = TRUE; - mExitRequested = FALSE; - mExitScript = FALSE; - mProfileListSize = 0; - mProfileList = NULL; + mExitRequested = FALSE; + mExitScript = FALSE; + mProfileListSize = 0; + mProfileList = NULL; Status = CommandInit (); if (EFI_ERROR (Status)) { @@ -189,26 +193,28 @@ ShellCommandLibConstructor ( **/ VOID FreeFileHandleList ( - IN BUFFER_LIST *List + IN BUFFER_LIST *List ) { - BUFFER_LIST *BufferListEntry; + BUFFER_LIST *BufferListEntry; - if (List == NULL){ + if (List == NULL) { return; } + // // enumerate through the buffer list and free all memory // - for ( BufferListEntry = ( BUFFER_LIST *)GetFirstNode(&List->Link) - ; !IsListEmpty (&List->Link) - ; BufferListEntry = (BUFFER_LIST *)GetFirstNode(&List->Link) - ){ - RemoveEntryList(&BufferListEntry->Link); - ASSERT(BufferListEntry->Buffer != NULL); - SHELL_FREE_NON_NULL(((SHELL_COMMAND_FILE_HANDLE*)(BufferListEntry->Buffer))->Path); - SHELL_FREE_NON_NULL(BufferListEntry->Buffer); - SHELL_FREE_NON_NULL(BufferListEntry); + for ( BufferListEntry = (BUFFER_LIST *)GetFirstNode (&List->Link) + ; !IsListEmpty (&List->Link) + ; BufferListEntry = (BUFFER_LIST *)GetFirstNode (&List->Link) + ) + { + RemoveEntryList (&BufferListEntry->Link); + ASSERT (BufferListEntry->Buffer != NULL); + SHELL_FREE_NON_NULL (((SHELL_COMMAND_FILE_HANDLE *)(BufferListEntry->Buffer))->Path); + SHELL_FREE_NON_NULL (BufferListEntry->Buffer); + SHELL_FREE_NON_NULL (BufferListEntry); } } @@ -227,69 +233,76 @@ ShellCommandLibDestructor ( IN EFI_SYSTEM_TABLE *SystemTable ) { - SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; - ALIAS_LIST *Node2; - SCRIPT_FILE_LIST *Node3; - SHELL_MAP_LIST *MapNode; + SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; + ALIAS_LIST *Node2; + SCRIPT_FILE_LIST *Node3; + SHELL_MAP_LIST *MapNode; + // // enumerate throught the list and free all the memory // while (!IsListEmpty (&mCommandList.Link)) { - Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode(&mCommandList.Link); - RemoveEntryList(&Node->Link); - SHELL_FREE_NON_NULL(Node->CommandString); - FreePool(Node); - DEBUG_CODE(Node = NULL;); + Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link); + RemoveEntryList (&Node->Link); + SHELL_FREE_NON_NULL (Node->CommandString); + FreePool (Node); + DEBUG_CODE ( + Node = NULL; + ); } // // enumerate through the alias list and free all memory // while (!IsListEmpty (&mAliasList.Link)) { - Node2 = (ALIAS_LIST *)GetFirstNode(&mAliasList.Link); - RemoveEntryList(&Node2->Link); - SHELL_FREE_NON_NULL(Node2->CommandString); - SHELL_FREE_NON_NULL(Node2->Alias); - SHELL_FREE_NON_NULL(Node2); - DEBUG_CODE(Node2 = NULL;); + Node2 = (ALIAS_LIST *)GetFirstNode (&mAliasList.Link); + RemoveEntryList (&Node2->Link); + SHELL_FREE_NON_NULL (Node2->CommandString); + SHELL_FREE_NON_NULL (Node2->Alias); + SHELL_FREE_NON_NULL (Node2); + DEBUG_CODE ( + Node2 = NULL; + ); } // // enumerate throught the list and free all the memory // while (!IsListEmpty (&mScriptList.Link)) { - Node3 = (SCRIPT_FILE_LIST *)GetFirstNode(&mScriptList.Link); - RemoveEntryList(&Node3->Link); - DeleteScriptFileStruct(Node3->Data); - FreePool(Node3); + Node3 = (SCRIPT_FILE_LIST *)GetFirstNode (&mScriptList.Link); + RemoveEntryList (&Node3->Link); + DeleteScriptFileStruct (Node3->Data); + FreePool (Node3); } // // enumerate throught the mappings list and free all the memory // - if (!IsListEmpty(&gShellMapList.Link)) { - for (MapNode = (SHELL_MAP_LIST *)GetFirstNode(&gShellMapList.Link) + if (!IsListEmpty (&gShellMapList.Link)) { + for (MapNode = (SHELL_MAP_LIST *)GetFirstNode (&gShellMapList.Link) ; !IsListEmpty (&gShellMapList.Link) - ; MapNode = (SHELL_MAP_LIST *)GetFirstNode(&gShellMapList.Link) - ){ - ASSERT(MapNode != NULL); - RemoveEntryList(&MapNode->Link); - SHELL_FREE_NON_NULL(MapNode->DevicePath); - SHELL_FREE_NON_NULL(MapNode->MapName); - SHELL_FREE_NON_NULL(MapNode->CurrentDirectoryPath); - FreePool(MapNode); + ; MapNode = (SHELL_MAP_LIST *)GetFirstNode (&gShellMapList.Link) + ) + { + ASSERT (MapNode != NULL); + RemoveEntryList (&MapNode->Link); + SHELL_FREE_NON_NULL (MapNode->DevicePath); + SHELL_FREE_NON_NULL (MapNode->MapName); + SHELL_FREE_NON_NULL (MapNode->CurrentDirectoryPath); + FreePool (MapNode); } } - if (!IsListEmpty(&mFileHandleList.Link)){ - FreeFileHandleList(&mFileHandleList); + + if (!IsListEmpty (&mFileHandleList.Link)) { + FreeFileHandleList (&mFileHandleList); } if (mProfileList != NULL) { - FreePool(mProfileList); + FreePool (mProfileList); } - gUnicodeCollation = NULL; - gShellCurMapping = NULL; + gUnicodeCollation = NULL; + gShellCurMapping = NULL; return (RETURN_SUCCESS); } @@ -304,7 +317,7 @@ ShellCommandLibDestructor ( **/ CONST EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL * ShellCommandFindDynamicCommand ( - IN CONST CHAR16 *CommandString + IN CONST CHAR16 *CommandString ) { EFI_STATUS Status; @@ -312,7 +325,7 @@ ShellCommandFindDynamicCommand ( EFI_HANDLE *NextCommand; EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *DynamicCommand; - CommandHandleList = GetHandleListByProtocol(&gEfiShellDynamicCommandProtocolGuid); + CommandHandleList = GetHandleListByProtocol (&gEfiShellDynamicCommandProtocolGuid); if (CommandHandleList == NULL) { // // not found or out of resources @@ -321,27 +334,29 @@ ShellCommandFindDynamicCommand ( } for (NextCommand = CommandHandleList; *NextCommand != NULL; NextCommand++) { - Status = gBS->HandleProtocol( - *NextCommand, - &gEfiShellDynamicCommandProtocolGuid, - (VOID **)&DynamicCommand - ); + Status = gBS->HandleProtocol ( + *NextCommand, + &gEfiShellDynamicCommandProtocolGuid, + (VOID **)&DynamicCommand + ); - if (EFI_ERROR(Status)) { + if (EFI_ERROR (Status)) { continue; } - if (gUnicodeCollation->StriColl( - gUnicodeCollation, - (CHAR16*)CommandString, - (CHAR16*)DynamicCommand->CommandName) == 0 - ){ - FreePool(CommandHandleList); - return (DynamicCommand); + if (gUnicodeCollation->StriColl ( + gUnicodeCollation, + (CHAR16 *)CommandString, + (CHAR16 *)DynamicCommand->CommandName + ) == 0 + ) + { + FreePool (CommandHandleList); + return (DynamicCommand); } } - FreePool(CommandHandleList); + FreePool (CommandHandleList); return (NULL); } @@ -352,10 +367,10 @@ ShellCommandFindDynamicCommand ( **/ BOOLEAN ShellCommandDynamicCommandExists ( - IN CONST CHAR16 *CommandString + IN CONST CHAR16 *CommandString ) { - return (BOOLEAN) ((ShellCommandFindDynamicCommand(CommandString) != NULL)); + return (BOOLEAN)((ShellCommandFindDynamicCommand (CommandString) != NULL)); } /** @@ -364,33 +379,37 @@ ShellCommandDynamicCommandExists ( @param[in] CommandString The command string to check for on the list. **/ BOOLEAN -ShellCommandIsCommandOnInternalList( - IN CONST CHAR16 *CommandString +ShellCommandIsCommandOnInternalList ( + IN CONST CHAR16 *CommandString ) { - SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; + SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; // // assert for NULL parameter // - ASSERT(CommandString != NULL); + ASSERT (CommandString != NULL); // // check for the command // - for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode(&mCommandList.Link) - ; !IsNull(&mCommandList.Link, &Node->Link) - ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode(&mCommandList.Link, &Node->Link) - ){ - ASSERT(Node->CommandString != NULL); - if (gUnicodeCollation->StriColl( - gUnicodeCollation, - (CHAR16*)CommandString, - Node->CommandString) == 0 - ){ + for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link) + ; !IsNull (&mCommandList.Link, &Node->Link) + ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode (&mCommandList.Link, &Node->Link) + ) + { + ASSERT (Node->CommandString != NULL); + if (gUnicodeCollation->StriColl ( + gUnicodeCollation, + (CHAR16 *)CommandString, + Node->CommandString + ) == 0 + ) + { return (TRUE); } } + return (FALSE); } @@ -401,15 +420,15 @@ ShellCommandIsCommandOnInternalList( **/ BOOLEAN EFIAPI -ShellCommandIsCommandOnList( - IN CONST CHAR16 *CommandString +ShellCommandIsCommandOnList ( + IN CONST CHAR16 *CommandString ) { - if (ShellCommandIsCommandOnInternalList(CommandString)) { + if (ShellCommandIsCommandOnInternalList (CommandString)) { return TRUE; } - return ShellCommandDynamicCommandExists(CommandString); + return ShellCommandDynamicCommandExists (CommandString); } /** @@ -420,14 +439,14 @@ ShellCommandIsCommandOnList( @retval NULL No help text was found. @return String of help text. Caller required to free. **/ -CHAR16* -ShellCommandGetDynamicCommandHelp( - IN CONST CHAR16 *CommandString +CHAR16 * +ShellCommandGetDynamicCommandHelp ( + IN CONST CHAR16 *CommandString ) { EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *DynamicCommand; - DynamicCommand = (EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *)ShellCommandFindDynamicCommand(CommandString); + DynamicCommand = (EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *)ShellCommandFindDynamicCommand (CommandString); if (DynamicCommand == NULL) { return (NULL); } @@ -435,7 +454,7 @@ ShellCommandGetDynamicCommandHelp( // // TODO: how to get proper language? // - return DynamicCommand->GetHelp(DynamicCommand, "en"); + return DynamicCommand->GetHelp (DynamicCommand, "en"); } /** @@ -446,34 +465,38 @@ ShellCommandGetDynamicCommandHelp( @retval NULL No help text was found. @return String of help text. Caller reuiqred to free. **/ -CHAR16* -ShellCommandGetInternalCommandHelp( - IN CONST CHAR16 *CommandString +CHAR16 * +ShellCommandGetInternalCommandHelp ( + IN CONST CHAR16 *CommandString ) { - SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; + SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; // // assert for NULL parameter // - ASSERT(CommandString != NULL); + ASSERT (CommandString != NULL); // // check for the command // - for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode(&mCommandList.Link) - ; !IsNull(&mCommandList.Link, &Node->Link) - ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode(&mCommandList.Link, &Node->Link) - ){ - ASSERT(Node->CommandString != NULL); - if (gUnicodeCollation->StriColl( - gUnicodeCollation, - (CHAR16*)CommandString, - Node->CommandString) == 0 - ){ - return (HiiGetString(Node->HiiHandle, Node->ManFormatHelp, NULL)); + for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link) + ; !IsNull (&mCommandList.Link, &Node->Link) + ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode (&mCommandList.Link, &Node->Link) + ) + { + ASSERT (Node->CommandString != NULL); + if (gUnicodeCollation->StriColl ( + gUnicodeCollation, + (CHAR16 *)CommandString, + Node->CommandString + ) == 0 + ) + { + return (HiiGetString (Node->HiiHandle, Node->ManFormatHelp, NULL)); } } + return (NULL); } @@ -485,23 +508,23 @@ ShellCommandGetInternalCommandHelp( @retval NULL No help text was found. @return String of help text.Caller reuiqred to free. **/ -CHAR16* +CHAR16 * EFIAPI ShellCommandGetCommandHelp ( - IN CONST CHAR16 *CommandString + IN CONST CHAR16 *CommandString ) { - CHAR16 *HelpStr; - HelpStr = ShellCommandGetInternalCommandHelp(CommandString); + CHAR16 *HelpStr; + + HelpStr = ShellCommandGetInternalCommandHelp (CommandString); if (HelpStr == NULL) { - HelpStr = ShellCommandGetDynamicCommandHelp(CommandString); + HelpStr = ShellCommandGetDynamicCommandHelp (CommandString); } return HelpStr; } - /** Registers handlers of type SHELL_RUN_COMMAND and SHELL_GET_MAN_FILENAME for each shell command. @@ -552,82 +575,85 @@ ShellCommandGetCommandHelp ( RETURN_STATUS EFIAPI ShellCommandRegisterCommandName ( - IN CONST CHAR16 *CommandString, - IN SHELL_RUN_COMMAND CommandHandler, - IN SHELL_GET_MAN_FILENAME GetManFileName, - IN UINT32 ShellMinSupportLevel, - IN CONST CHAR16 *ProfileName, - IN CONST BOOLEAN CanAffectLE, - IN CONST EFI_HII_HANDLE HiiHandle, - IN CONST EFI_STRING_ID ManFormatHelp + IN CONST CHAR16 *CommandString, + IN SHELL_RUN_COMMAND CommandHandler, + IN SHELL_GET_MAN_FILENAME GetManFileName, + IN UINT32 ShellMinSupportLevel, + IN CONST CHAR16 *ProfileName, + IN CONST BOOLEAN CanAffectLE, + IN CONST EFI_HII_HANDLE HiiHandle, + IN CONST EFI_STRING_ID ManFormatHelp ) { - SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; - SHELL_COMMAND_INTERNAL_LIST_ENTRY *Command; - SHELL_COMMAND_INTERNAL_LIST_ENTRY *PrevCommand; - INTN LexicalMatchValue; + SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; + SHELL_COMMAND_INTERNAL_LIST_ENTRY *Command; + SHELL_COMMAND_INTERNAL_LIST_ENTRY *PrevCommand; + INTN LexicalMatchValue; // // Initialize local variables. // - Command = NULL; - PrevCommand = NULL; + Command = NULL; + PrevCommand = NULL; LexicalMatchValue = 0; // // ASSERTs for NULL parameters // - ASSERT(CommandString != NULL); - ASSERT(GetManFileName != NULL); - ASSERT(CommandHandler != NULL); - ASSERT(ProfileName != NULL); + ASSERT (CommandString != NULL); + ASSERT (GetManFileName != NULL); + ASSERT (CommandHandler != NULL); + ASSERT (ProfileName != NULL); // // check for shell support level // - if (PcdGet8(PcdShellSupportLevel) < ShellMinSupportLevel) { + if (PcdGet8 (PcdShellSupportLevel) < ShellMinSupportLevel) { return (RETURN_UNSUPPORTED); } // // check for already on the list // - if (ShellCommandIsCommandOnList(CommandString)) { + if (ShellCommandIsCommandOnList (CommandString)) { return (RETURN_ALREADY_STARTED); } // // allocate memory for new struct // - Node = AllocateZeroPool(sizeof(SHELL_COMMAND_INTERNAL_LIST_ENTRY)); + Node = AllocateZeroPool (sizeof (SHELL_COMMAND_INTERNAL_LIST_ENTRY)); if (Node == NULL) { return RETURN_OUT_OF_RESOURCES; } - Node->CommandString = AllocateCopyPool(StrSize(CommandString), CommandString); + + Node->CommandString = AllocateCopyPool (StrSize (CommandString), CommandString); if (Node->CommandString == NULL) { FreePool (Node); return RETURN_OUT_OF_RESOURCES; } - Node->GetManFileName = GetManFileName; - Node->CommandHandler = CommandHandler; - Node->LastError = CanAffectLE; - Node->HiiHandle = HiiHandle; - Node->ManFormatHelp = ManFormatHelp; - - if ( StrLen(ProfileName)>0 - && ((mProfileList != NULL - && StrStr(mProfileList, ProfileName) == NULL) || mProfileList == NULL) - ){ - ASSERT((mProfileList == NULL && mProfileListSize == 0) || (mProfileList != NULL)); + Node->GetManFileName = GetManFileName; + Node->CommandHandler = CommandHandler; + Node->LastError = CanAffectLE; + Node->HiiHandle = HiiHandle; + Node->ManFormatHelp = ManFormatHelp; + + if ( (StrLen (ProfileName) > 0) + && (( (mProfileList != NULL) + && (StrStr (mProfileList, ProfileName) == NULL)) || (mProfileList == NULL)) + ) + { + ASSERT ((mProfileList == NULL && mProfileListSize == 0) || (mProfileList != NULL)); if (mProfileList == NULL) { // // If this is the first make a leading ';' // - StrnCatGrow(&mProfileList, &mProfileListSize, L";", 0); + StrnCatGrow (&mProfileList, &mProfileListSize, L";", 0); } - StrnCatGrow(&mProfileList, &mProfileListSize, ProfileName, 0); - StrnCatGrow(&mProfileList, &mProfileListSize, L";", 0); + + StrnCatGrow (&mProfileList, &mProfileListSize, ProfileName, 0); + StrnCatGrow (&mProfileList, &mProfileListSize, L";", 0); } // @@ -639,10 +665,10 @@ ShellCommandRegisterCommandName ( // Move a new registered command to its sorted ordered location in the list // for (Command = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link), - PrevCommand = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link) - ; !IsNull (&mCommandList.Link, &Command->Link) - ; Command = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode (&mCommandList.Link, &Command->Link)) { - + PrevCommand = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link) + ; !IsNull (&mCommandList.Link, &Command->Link) + ; Command = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode (&mCommandList.Link, &Command->Link)) + { // // Get Lexical Comparison Value between PrevCommand and Command list entry // @@ -656,8 +682,8 @@ ShellCommandRegisterCommandName ( // Swap PrevCommand and Command list entry if PrevCommand list entry // is alphabetically greater than Command list entry // - if (LexicalMatchValue > 0){ - Command = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *) SwapListEntries (&PrevCommand->Link, &Command->Link); + if (LexicalMatchValue > 0) { + Command = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)SwapListEntries (&PrevCommand->Link, &Command->Link); } else if (LexicalMatchValue < 0) { // // PrevCommand entry is lexically lower than Command entry @@ -711,9 +737,9 @@ ShellCommandGetProfileList ( RETURN_STATUS EFIAPI ShellCommandRunCommandHandler ( - IN CONST CHAR16 *CommandString, - IN OUT SHELL_STATUS *RetVal, - IN OUT BOOLEAN *CanAffectLE OPTIONAL + IN CONST CHAR16 *CommandString, + IN OUT SHELL_STATUS *RetVal, + IN OUT BOOLEAN *CanAffectLE OPTIONAL ) { SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; @@ -722,29 +748,34 @@ ShellCommandRunCommandHandler ( // // assert for NULL parameters // - ASSERT(CommandString != NULL); + ASSERT (CommandString != NULL); // // check for the command // - for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode(&mCommandList.Link) - ; !IsNull(&mCommandList.Link, &Node->Link) - ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode(&mCommandList.Link, &Node->Link) - ){ - ASSERT(Node->CommandString != NULL); - if (gUnicodeCollation->StriColl( - gUnicodeCollation, - (CHAR16*)CommandString, - Node->CommandString) == 0 - ){ + for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link) + ; !IsNull (&mCommandList.Link, &Node->Link) + ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode (&mCommandList.Link, &Node->Link) + ) + { + ASSERT (Node->CommandString != NULL); + if (gUnicodeCollation->StriColl ( + gUnicodeCollation, + (CHAR16 *)CommandString, + Node->CommandString + ) == 0 + ) + { if (CanAffectLE != NULL) { *CanAffectLE = Node->LastError; } + if (RetVal != NULL) { - *RetVal = Node->CommandHandler(NULL, gST); + *RetVal = Node->CommandHandler (NULL, gST); } else { - Node->CommandHandler(NULL, gST); + Node->CommandHandler (NULL, gST); } + return (RETURN_SUCCESS); } } @@ -752,13 +783,14 @@ ShellCommandRunCommandHandler ( // // An internal command was not found, try to find a dynamic command // - DynamicCommand = (EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *)ShellCommandFindDynamicCommand(CommandString); + DynamicCommand = (EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *)ShellCommandFindDynamicCommand (CommandString); if (DynamicCommand != NULL) { if (RetVal != NULL) { - *RetVal = DynamicCommand->Handler(DynamicCommand, gST, gEfiShellParametersProtocol, gEfiShellProtocol); + *RetVal = DynamicCommand->Handler (DynamicCommand, gST, gEfiShellParametersProtocol, gEfiShellProtocol); } else { - DynamicCommand->Handler(DynamicCommand, gST, gEfiShellParametersProtocol, gEfiShellProtocol); + DynamicCommand->Handler (DynamicCommand, gST, gEfiShellParametersProtocol, gEfiShellProtocol); } + return (RETURN_SUCCESS); } @@ -778,35 +810,39 @@ ShellCommandRunCommandHandler ( @return other the name of the MAN file. @sa SHELL_GET_MAN_FILENAME **/ -CONST CHAR16* +CONST CHAR16 * EFIAPI ShellCommandGetManFileNameHandler ( - IN CONST CHAR16 *CommandString + IN CONST CHAR16 *CommandString ) { - SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; + SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node; // // assert for NULL parameters // - ASSERT(CommandString != NULL); + ASSERT (CommandString != NULL); // // check for the command // - for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode(&mCommandList.Link) - ; !IsNull(&mCommandList.Link, &Node->Link) - ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode(&mCommandList.Link, &Node->Link) - ){ - ASSERT(Node->CommandString != NULL); - if (gUnicodeCollation->StriColl( - gUnicodeCollation, - (CHAR16*)CommandString, - Node->CommandString) == 0 - ){ - return (Node->GetManFileName()); + for ( Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetFirstNode (&mCommandList.Link) + ; !IsNull (&mCommandList.Link, &Node->Link) + ; Node = (SHELL_COMMAND_INTERNAL_LIST_ENTRY *)GetNextNode (&mCommandList.Link, &Node->Link) + ) + { + ASSERT (Node->CommandString != NULL); + if (gUnicodeCollation->StriColl ( + gUnicodeCollation, + (CHAR16 *)CommandString, + Node->CommandString + ) == 0 + ) + { + return (Node->GetManFileName ()); } } + return (NULL); } @@ -819,16 +855,16 @@ ShellCommandGetManFileNameHandler ( @return a Linked list of all available shell commands. **/ -CONST COMMAND_LIST* +CONST COMMAND_LIST * EFIAPI ShellCommandGetCommandList ( - IN CONST BOOLEAN Sort + IN CONST BOOLEAN Sort ) { -// if (!Sort) { -// return ((COMMAND_LIST*)(&mCommandList)); -// } - return ((COMMAND_LIST*)(&mCommandList)); + // if (!Sort) { + // return ((COMMAND_LIST*)(&mCommandList)); + // } + return ((COMMAND_LIST *)(&mCommandList)); } /** @@ -847,34 +883,36 @@ ShellCommandGetCommandList ( RETURN_STATUS EFIAPI ShellCommandRegisterAlias ( - IN CONST CHAR16 *Command, - IN CONST CHAR16 *Alias + IN CONST CHAR16 *Command, + IN CONST CHAR16 *Alias ) { - ALIAS_LIST *Node; - ALIAS_LIST *CommandAlias; - ALIAS_LIST *PrevCommandAlias; - INTN LexicalMatchValue; + ALIAS_LIST *Node; + ALIAS_LIST *CommandAlias; + ALIAS_LIST *PrevCommandAlias; + INTN LexicalMatchValue; // // Asserts for NULL // - ASSERT(Command != NULL); - ASSERT(Alias != NULL); + ASSERT (Command != NULL); + ASSERT (Alias != NULL); // // allocate memory for new struct // - Node = AllocateZeroPool(sizeof(ALIAS_LIST)); + Node = AllocateZeroPool (sizeof (ALIAS_LIST)); if (Node == NULL) { return RETURN_OUT_OF_RESOURCES; } - Node->CommandString = AllocateCopyPool(StrSize(Command), Command); + + Node->CommandString = AllocateCopyPool (StrSize (Command), Command); if (Node->CommandString == NULL) { FreePool (Node); return RETURN_OUT_OF_RESOURCES; } - Node->Alias = AllocateCopyPool(StrSize(Alias), Alias); + + Node->Alias = AllocateCopyPool (StrSize (Alias), Alias); if (Node->Alias == NULL) { FreePool (Node->CommandString); FreePool (Node); @@ -887,9 +925,10 @@ ShellCommandRegisterAlias ( // Move a new pre-defined registered alias to its sorted ordered location in the list // for ( CommandAlias = (ALIAS_LIST *)GetFirstNode (&mAliasList.Link), - PrevCommandAlias = (ALIAS_LIST *)GetFirstNode (&mAliasList.Link) - ; !IsNull (&mAliasList.Link, &CommandAlias->Link) - ; CommandAlias = (ALIAS_LIST *) GetNextNode (&mAliasList.Link, &CommandAlias->Link) ) { + PrevCommandAlias = (ALIAS_LIST *)GetFirstNode (&mAliasList.Link) + ; !IsNull (&mAliasList.Link, &CommandAlias->Link) + ; CommandAlias = (ALIAS_LIST *)GetNextNode (&mAliasList.Link, &CommandAlias->Link)) + { // // Get Lexical comparison value between PrevCommandAlias and CommandAlias List Entry // @@ -904,7 +943,7 @@ ShellCommandRegisterAlias ( // is alphabetically greater than CommandAlias list entry // if (LexicalMatchValue > 0) { - CommandAlias = (ALIAS_LIST *) SwapListEntries (&PrevCommandAlias->Link, &CommandAlias->Link); + CommandAlias = (ALIAS_LIST *)SwapListEntries (&PrevCommandAlias->Link, &CommandAlias->Link); } else if (LexicalMatchValue < 0) { // // PrevCommandAlias entry is lexically lower than CommandAlias entry @@ -923,13 +962,13 @@ ShellCommandRegisterAlias ( @return a Linked list of all requested shell alias'. **/ -CONST ALIAS_LIST* +CONST ALIAS_LIST * EFIAPI ShellCommandGetInitAliasList ( VOID ) { - return (&mAliasList); + return (&mAliasList); } /** @@ -942,41 +981,48 @@ ShellCommandGetInitAliasList ( **/ BOOLEAN EFIAPI -ShellCommandIsOnAliasList( - IN CONST CHAR16 *Alias +ShellCommandIsOnAliasList ( + IN CONST CHAR16 *Alias ) { - ALIAS_LIST *Node; + ALIAS_LIST *Node; // // assert for NULL parameter // - ASSERT(Alias != NULL); + ASSERT (Alias != NULL); // // check for the Alias // - for ( Node = (ALIAS_LIST *)GetFirstNode(&mAliasList.Link) - ; !IsNull(&mAliasList.Link, &Node->Link) - ; Node = (ALIAS_LIST *)GetNextNode(&mAliasList.Link, &Node->Link) - ){ - ASSERT(Node->CommandString != NULL); - ASSERT(Node->Alias != NULL); - if (gUnicodeCollation->StriColl( - gUnicodeCollation, - (CHAR16*)Alias, - Node->CommandString) == 0 - ){ + for ( Node = (ALIAS_LIST *)GetFirstNode (&mAliasList.Link) + ; !IsNull (&mAliasList.Link, &Node->Link) + ; Node = (ALIAS_LIST *)GetNextNode (&mAliasList.Link, &Node->Link) + ) + { + ASSERT (Node->CommandString != NULL); + ASSERT (Node->Alias != NULL); + if (gUnicodeCollation->StriColl ( + gUnicodeCollation, + (CHAR16 *)Alias, + Node->CommandString + ) == 0 + ) + { return (TRUE); } - if (gUnicodeCollation->StriColl( - gUnicodeCollation, - (CHAR16*)Alias, - Node->Alias) == 0 - ){ + + if (gUnicodeCollation->StriColl ( + gUnicodeCollation, + (CHAR16 *)Alias, + Node->Alias + ) == 0 + ) + { return (TRUE); } } + return (FALSE); } @@ -989,7 +1035,7 @@ ShellCommandIsOnAliasList( **/ BOOLEAN EFIAPI -ShellCommandGetEchoState( +ShellCommandGetEchoState ( VOID ) { @@ -1007,8 +1053,8 @@ ShellCommandGetEchoState( **/ VOID EFIAPI -ShellCommandSetEchoState( - IN BOOLEAN State +ShellCommandSetEchoState ( + IN BOOLEAN State ) { mEchoState = State; @@ -1023,16 +1069,17 @@ ShellCommandSetEchoState( VOID EFIAPI ShellCommandRegisterExit ( - IN BOOLEAN ScriptOnly, - IN CONST UINT64 ErrorCode + IN BOOLEAN ScriptOnly, + IN CONST UINT64 ErrorCode ) { mExitRequested = (BOOLEAN)(!mExitRequested); if (mExitRequested) { - mExitScript = ScriptOnly; + mExitScript = ScriptOnly; } else { - mExitScript = FALSE; + mExitScript = FALSE; } + mExitCode = ErrorCode; } @@ -1066,6 +1113,7 @@ ShellCommandGetExitCode ( { return (mExitCode); } + /** Retrieve the Exit script indicator. @@ -1091,37 +1139,42 @@ ShellCommandGetScriptExit ( VOID EFIAPI DeleteScriptFileStruct ( - IN SCRIPT_FILE *Script + IN SCRIPT_FILE *Script ) { - UINT8 LoopVar; + UINT8 LoopVar; if (Script == NULL) { return; } - for (LoopVar = 0 ; LoopVar < Script->Argc ; LoopVar++) { - SHELL_FREE_NON_NULL(Script->Argv[LoopVar]); + for (LoopVar = 0; LoopVar < Script->Argc; LoopVar++) { + SHELL_FREE_NON_NULL (Script->Argv[LoopVar]); } + if (Script->Argv != NULL) { - SHELL_FREE_NON_NULL(Script->Argv); + SHELL_FREE_NON_NULL (Script->Argv); } + Script->CurrentCommand = NULL; while (!IsListEmpty (&Script->CommandList)) { - Script->CurrentCommand = (SCRIPT_COMMAND_LIST *)GetFirstNode(&Script->CommandList); + Script->CurrentCommand = (SCRIPT_COMMAND_LIST *)GetFirstNode (&Script->CommandList); if (Script->CurrentCommand != NULL) { - RemoveEntryList(&Script->CurrentCommand->Link); + RemoveEntryList (&Script->CurrentCommand->Link); if (Script->CurrentCommand->Cl != NULL) { - SHELL_FREE_NON_NULL(Script->CurrentCommand->Cl); + SHELL_FREE_NON_NULL (Script->CurrentCommand->Cl); } + if (Script->CurrentCommand->Data != NULL) { - SHELL_FREE_NON_NULL(Script->CurrentCommand->Data); + SHELL_FREE_NON_NULL (Script->CurrentCommand->Data); } - SHELL_FREE_NON_NULL(Script->CurrentCommand); + + SHELL_FREE_NON_NULL (Script->CurrentCommand); } } - SHELL_FREE_NON_NULL(Script->ScriptName); - SHELL_FREE_NON_NULL(Script); + + SHELL_FREE_NON_NULL (Script->ScriptName); + SHELL_FREE_NON_NULL (Script); } /** @@ -1130,17 +1183,19 @@ DeleteScriptFileStruct ( @retval NULL A script file is not currently running. @return A pointer to the current script file object. **/ -SCRIPT_FILE* +SCRIPT_FILE * EFIAPI ShellCommandGetCurrentScriptFile ( VOID ) { - SCRIPT_FILE_LIST *List; + SCRIPT_FILE_LIST *List; + if (IsListEmpty (&mScriptList.Link)) { return (NULL); } - List = ((SCRIPT_FILE_LIST*)GetFirstNode(&mScriptList.Link)); + + List = ((SCRIPT_FILE_LIST *)GetFirstNode (&mScriptList.Link)); return (List->Data); } @@ -1155,30 +1210,34 @@ ShellCommandGetCurrentScriptFile ( @return A pointer to the current running script file after this change. NULL if removing the final script. **/ -SCRIPT_FILE* +SCRIPT_FILE * EFIAPI ShellCommandSetNewScript ( - IN SCRIPT_FILE *Script OPTIONAL + IN SCRIPT_FILE *Script OPTIONAL ) { - SCRIPT_FILE_LIST *Node; + SCRIPT_FILE_LIST *Node; + if (Script == NULL) { if (IsListEmpty (&mScriptList.Link)) { return (NULL); } - Node = (SCRIPT_FILE_LIST *)GetFirstNode(&mScriptList.Link); - RemoveEntryList(&Node->Link); - DeleteScriptFileStruct(Node->Data); - FreePool(Node); + + Node = (SCRIPT_FILE_LIST *)GetFirstNode (&mScriptList.Link); + RemoveEntryList (&Node->Link); + DeleteScriptFileStruct (Node->Data); + FreePool (Node); } else { - Node = AllocateZeroPool(sizeof(SCRIPT_FILE_LIST)); + Node = AllocateZeroPool (sizeof (SCRIPT_FILE_LIST)); if (Node == NULL) { return (NULL); } + Node->Data = Script; - InsertHeadList(&mScriptList.Link, &Node->Link); + InsertHeadList (&mScriptList.Link, &Node->Link); } - return (ShellCommandGetCurrentScriptFile()); + + return (ShellCommandGetCurrentScriptFile ()); } /** @@ -1191,23 +1250,25 @@ ShellCommandSetNewScript ( @retval NULL a memory allocation failed. @return a new map name string **/ -CHAR16* +CHAR16 * EFIAPI -ShellCommandCreateNewMappingName( - IN CONST SHELL_MAPPING_TYPE Type +ShellCommandCreateNewMappingName ( + IN CONST SHELL_MAPPING_TYPE Type ) { CHAR16 *String; - ASSERT(Type < MappingTypeMax); + + ASSERT (Type < MappingTypeMax); String = NULL; - String = AllocateZeroPool(PcdGet8(PcdShellMapNameLength) * sizeof(String[0])); - UnicodeSPrint( + String = AllocateZeroPool (PcdGet8 (PcdShellMapNameLength) * sizeof (String[0])); + UnicodeSPrint ( String, - PcdGet8(PcdShellMapNameLength) * sizeof(String[0]), - Type == MappingTypeFileSystem?L"FS%d:":L"BLK%d:", - Type == MappingTypeFileSystem?mFsMaxCount++:mBlkMaxCount++); + PcdGet8 (PcdShellMapNameLength) * sizeof (String[0]), + Type == MappingTypeFileSystem ? L"FS%d:" : L"BLK%d:", + Type == MappingTypeFileSystem ? mFsMaxCount++ : mBlkMaxCount++ + ); return (String); } @@ -1231,11 +1292,11 @@ ShellCommandCreateNewMappingName( **/ EFI_STATUS EFIAPI -ShellCommandAddMapItemAndUpdatePath( - IN CONST CHAR16 *Name, - IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, - IN CONST UINT64 Flags, - IN CONST BOOLEAN Path +ShellCommandAddMapItemAndUpdatePath ( + IN CONST CHAR16 *Name, + IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, + IN CONST UINT64 Flags, + IN CONST BOOLEAN Path ) { EFI_STATUS Status; @@ -1244,56 +1305,61 @@ ShellCommandAddMapItemAndUpdatePath( CHAR16 *NewPath; UINTN NewPathSize; - NewPathSize = 0; - NewPath = NULL; + NewPathSize = 0; + NewPath = NULL; OriginalPath = NULL; - Status = EFI_SUCCESS; + Status = EFI_SUCCESS; - MapListNode = AllocateZeroPool(sizeof(SHELL_MAP_LIST)); + MapListNode = AllocateZeroPool (sizeof (SHELL_MAP_LIST)); if (MapListNode == NULL) { Status = EFI_OUT_OF_RESOURCES; } else { - MapListNode->Flags = Flags; - MapListNode->MapName = AllocateCopyPool(StrSize(Name), Name); - MapListNode->DevicePath = DuplicateDevicePath(DevicePath); - if ((MapListNode->MapName == NULL) || (MapListNode->DevicePath == NULL)){ + MapListNode->Flags = Flags; + MapListNode->MapName = AllocateCopyPool (StrSize (Name), Name); + MapListNode->DevicePath = DuplicateDevicePath (DevicePath); + if ((MapListNode->MapName == NULL) || (MapListNode->DevicePath == NULL)) { Status = EFI_OUT_OF_RESOURCES; } else { - InsertTailList(&gShellMapList.Link, &MapListNode->Link); + InsertTailList (&gShellMapList.Link, &MapListNode->Link); } } - if (EFI_ERROR(Status)) { + + if (EFI_ERROR (Status)) { if (MapListNode != NULL) { if (MapListNode->DevicePath != NULL) { - FreePool(MapListNode->DevicePath); + FreePool (MapListNode->DevicePath); } + if (MapListNode->MapName != NULL) { - FreePool(MapListNode->MapName); + FreePool (MapListNode->MapName); } - FreePool(MapListNode); + + FreePool (MapListNode); } } else if (Path) { // // Since there was no error and Path was TRUE // Now add the correct path for that mapping // - OriginalPath = gEfiShellProtocol->GetEnv(L"path"); - ASSERT((NewPath == NULL && NewPathSize == 0) || (NewPath != NULL)); + OriginalPath = gEfiShellProtocol->GetEnv (L"path"); + ASSERT ((NewPath == NULL && NewPathSize == 0) || (NewPath != NULL)); if (OriginalPath != NULL) { - StrnCatGrow(&NewPath, &NewPathSize, OriginalPath, 0); - StrnCatGrow(&NewPath, &NewPathSize, L";", 0); + StrnCatGrow (&NewPath, &NewPathSize, OriginalPath, 0); + StrnCatGrow (&NewPath, &NewPathSize, L";", 0); } - StrnCatGrow(&NewPath, &NewPathSize, Name, 0); - StrnCatGrow(&NewPath, &NewPathSize, L"\\efi\\tools\\;", 0); - StrnCatGrow(&NewPath, &NewPathSize, Name, 0); - StrnCatGrow(&NewPath, &NewPathSize, L"\\efi\\boot\\;", 0); - StrnCatGrow(&NewPath, &NewPathSize, Name, 0); - StrnCatGrow(&NewPath, &NewPathSize, L"\\", 0); - - Status = gEfiShellProtocol->SetEnv(L"path", NewPath, TRUE); - ASSERT_EFI_ERROR(Status); - FreePool(NewPath); + + StrnCatGrow (&NewPath, &NewPathSize, Name, 0); + StrnCatGrow (&NewPath, &NewPathSize, L"\\efi\\tools\\;", 0); + StrnCatGrow (&NewPath, &NewPathSize, Name, 0); + StrnCatGrow (&NewPath, &NewPathSize, L"\\efi\\boot\\;", 0); + StrnCatGrow (&NewPath, &NewPathSize, Name, 0); + StrnCatGrow (&NewPath, &NewPathSize, L"\\", 0); + + Status = gEfiShellProtocol->SetEnv (L"path", NewPath, TRUE); + ASSERT_EFI_ERROR (Status); + FreePool (NewPath); } + return (Status); } @@ -1316,7 +1382,7 @@ ShellCommandAddMapItemAndUpdatePath( **/ EFI_STATUS EFIAPI -ShellCommandCreateInitialMappingsAndPaths( +ShellCommandCreateInitialMappingsAndPaths ( VOID ) { @@ -1341,110 +1407,115 @@ ShellCommandCreateInitialMappingsAndPaths( // // Reset the static members back to zero // - mFsMaxCount = 0; + mFsMaxCount = 0; mBlkMaxCount = 0; - gEfiShellProtocol->SetEnv(L"path", L"", TRUE); + gEfiShellProtocol->SetEnv (L"path", L"", TRUE); // // First empty out the existing list. // - if (!IsListEmpty(&gShellMapList.Link)) { - for ( MapListNode = (SHELL_MAP_LIST *)GetFirstNode(&gShellMapList.Link) - ; !IsListEmpty(&gShellMapList.Link) - ; MapListNode = (SHELL_MAP_LIST *)GetFirstNode(&gShellMapList.Link) - ){ - RemoveEntryList(&MapListNode->Link); - SHELL_FREE_NON_NULL(MapListNode->DevicePath); - SHELL_FREE_NON_NULL(MapListNode->MapName); - SHELL_FREE_NON_NULL(MapListNode->CurrentDirectoryPath); - FreePool(MapListNode); + if (!IsListEmpty (&gShellMapList.Link)) { + for ( MapListNode = (SHELL_MAP_LIST *)GetFirstNode (&gShellMapList.Link) + ; !IsListEmpty (&gShellMapList.Link) + ; MapListNode = (SHELL_MAP_LIST *)GetFirstNode (&gShellMapList.Link) + ) + { + RemoveEntryList (&MapListNode->Link); + SHELL_FREE_NON_NULL (MapListNode->DevicePath); + SHELL_FREE_NON_NULL (MapListNode->MapName); + SHELL_FREE_NON_NULL (MapListNode->CurrentDirectoryPath); + FreePool (MapListNode); } // for loop } // // Find each handle with Simple File System // - HandleList = GetHandleListByProtocol(&gEfiSimpleFileSystemProtocolGuid); + HandleList = GetHandleListByProtocol (&gEfiSimpleFileSystemProtocolGuid); if (HandleList != NULL) { // // Do a count of the handles // - for (Count = 0 ; HandleList[Count] != NULL ; Count++); + for (Count = 0; HandleList[Count] != NULL; Count++) { + } // // Get all Device Paths // - DevicePathList = AllocateZeroPool(sizeof(EFI_DEVICE_PATH_PROTOCOL*) * Count); + DevicePathList = AllocateZeroPool (sizeof (EFI_DEVICE_PATH_PROTOCOL *) * Count); if (DevicePathList == NULL) { SHELL_FREE_NON_NULL (HandleList); return EFI_OUT_OF_RESOURCES; } - for (Count = 0 ; HandleList[Count] != NULL ; Count++) { - DevicePathList[Count] = DevicePathFromHandle(HandleList[Count]); + for (Count = 0; HandleList[Count] != NULL; Count++) { + DevicePathList[Count] = DevicePathFromHandle (HandleList[Count]); } // // Sort all DevicePaths // - PerformQuickSort(DevicePathList, Count, sizeof(EFI_DEVICE_PATH_PROTOCOL*), DevicePathCompare); + PerformQuickSort (DevicePathList, Count, sizeof (EFI_DEVICE_PATH_PROTOCOL *), DevicePathCompare); - ShellCommandConsistMappingInitialize(&ConsistMappingTable); + ShellCommandConsistMappingInitialize (&ConsistMappingTable); // // Assign new Mappings to all... // - for (Count = 0 ; HandleList[Count] != NULL ; Count++) { + for (Count = 0; HandleList[Count] != NULL; Count++) { // // Get default name first // - NewDefaultName = ShellCommandCreateNewMappingName(MappingTypeFileSystem); - ASSERT(NewDefaultName != NULL); - Status = ShellCommandAddMapItemAndUpdatePath(NewDefaultName, DevicePathList[Count], 0, TRUE); - ASSERT_EFI_ERROR(Status); - FreePool(NewDefaultName); + NewDefaultName = ShellCommandCreateNewMappingName (MappingTypeFileSystem); + ASSERT (NewDefaultName != NULL); + Status = ShellCommandAddMapItemAndUpdatePath (NewDefaultName, DevicePathList[Count], 0, TRUE); + ASSERT_EFI_ERROR (Status); + FreePool (NewDefaultName); // // Now do consistent name // - NewConsistName = ShellCommandConsistMappingGenMappingName(DevicePathList[Count], ConsistMappingTable); + NewConsistName = ShellCommandConsistMappingGenMappingName (DevicePathList[Count], ConsistMappingTable); if (NewConsistName != NULL) { - Status = ShellCommandAddMapItemAndUpdatePath(NewConsistName, DevicePathList[Count], 0, FALSE); - ASSERT_EFI_ERROR(Status); - FreePool(NewConsistName); + Status = ShellCommandAddMapItemAndUpdatePath (NewConsistName, DevicePathList[Count], 0, FALSE); + ASSERT_EFI_ERROR (Status); + FreePool (NewConsistName); } } - ShellCommandConsistMappingUnInitialize(ConsistMappingTable); + ShellCommandConsistMappingUnInitialize (ConsistMappingTable); - SHELL_FREE_NON_NULL(HandleList); - SHELL_FREE_NON_NULL(DevicePathList); + SHELL_FREE_NON_NULL (HandleList); + SHELL_FREE_NON_NULL (DevicePathList); HandleList = NULL; // - //gShellCurMapping point to node of current file system in the gShellMapList. When reset all mappings, - //all nodes in the gShellMapList will be free. Then gShellCurMapping will be a dangling pointer, So, - //after created new mappings, we should reset the gShellCurMapping pointer back to node of current file system. + // gShellCurMapping point to node of current file system in the gShellMapList. When reset all mappings, + // all nodes in the gShellMapList will be free. Then gShellCurMapping will be a dangling pointer, So, + // after created new mappings, we should reset the gShellCurMapping pointer back to node of current file system. // if (gShellCurMapping != NULL) { gShellCurMapping = NULL; - CurDir = gEfiShellProtocol->GetEnv(L"cwd"); + CurDir = gEfiShellProtocol->GetEnv (L"cwd"); if (CurDir != NULL) { - MapName = AllocateCopyPool (StrSize(CurDir), CurDir); + MapName = AllocateCopyPool (StrSize (CurDir), CurDir); if (MapName == NULL) { return EFI_OUT_OF_RESOURCES; } + SplitCurDir = StrStr (MapName, L":"); if (SplitCurDir == NULL) { SHELL_FREE_NON_NULL (MapName); return EFI_UNSUPPORTED; } + *(SplitCurDir + 1) = CHAR_NULL; - MapListItem = ShellCommandFindMapItem (MapName); + MapListItem = ShellCommandFindMapItem (MapName); if (MapListItem != NULL) { gShellCurMapping = MapListItem; } + SHELL_FREE_NON_NULL (MapName); } } @@ -1455,44 +1526,45 @@ ShellCommandCreateInitialMappingsAndPaths( // // Find each handle with Block Io // - HandleList = GetHandleListByProtocol(&gEfiBlockIoProtocolGuid); + HandleList = GetHandleListByProtocol (&gEfiBlockIoProtocolGuid); if (HandleList != NULL) { - for (Count = 0 ; HandleList[Count] != NULL ; Count++); + for (Count = 0; HandleList[Count] != NULL; Count++) { + } // // Get all Device Paths // - DevicePathList = AllocateZeroPool(sizeof(EFI_DEVICE_PATH_PROTOCOL*) * Count); + DevicePathList = AllocateZeroPool (sizeof (EFI_DEVICE_PATH_PROTOCOL *) * Count); if (DevicePathList == NULL) { SHELL_FREE_NON_NULL (HandleList); return EFI_OUT_OF_RESOURCES; } - for (Count = 0 ; HandleList[Count] != NULL ; Count++) { - DevicePathList[Count] = DevicePathFromHandle(HandleList[Count]); + for (Count = 0; HandleList[Count] != NULL; Count++) { + DevicePathList[Count] = DevicePathFromHandle (HandleList[Count]); } // // Sort all DevicePaths // - PerformQuickSort(DevicePathList, Count, sizeof(EFI_DEVICE_PATH_PROTOCOL*), DevicePathCompare); + PerformQuickSort (DevicePathList, Count, sizeof (EFI_DEVICE_PATH_PROTOCOL *), DevicePathCompare); // // Assign new Mappings to all... // - for (Count = 0 ; HandleList[Count] != NULL ; Count++) { + for (Count = 0; HandleList[Count] != NULL; Count++) { // // Get default name first // - NewDefaultName = ShellCommandCreateNewMappingName(MappingTypeBlockIo); - ASSERT(NewDefaultName != NULL); - Status = ShellCommandAddMapItemAndUpdatePath(NewDefaultName, DevicePathList[Count], 0, FALSE); - ASSERT_EFI_ERROR(Status); - FreePool(NewDefaultName); + NewDefaultName = ShellCommandCreateNewMappingName (MappingTypeBlockIo); + ASSERT (NewDefaultName != NULL); + Status = ShellCommandAddMapItemAndUpdatePath (NewDefaultName, DevicePathList[Count], 0, FALSE); + ASSERT_EFI_ERROR (Status); + FreePool (NewDefaultName); } - SHELL_FREE_NON_NULL(HandleList); - SHELL_FREE_NON_NULL(DevicePathList); + SHELL_FREE_NON_NULL (HandleList); + SHELL_FREE_NON_NULL (DevicePathList); } else if (Count == (UINTN)-1) { return (EFI_NOT_FOUND); } @@ -1519,8 +1591,8 @@ ShellCommandUpdateMapping ( CHAR16 *NewConsistName; EFI_DEVICE_PATH_PROTOCOL **ConsistMappingTable; - HandleList = NULL; - Status = EFI_SUCCESS; + HandleList = NULL; + Status = EFI_SUCCESS; // // remove mappings that represent removed devices. @@ -1529,46 +1601,48 @@ ShellCommandUpdateMapping ( // // Find each handle with Simple File System // - HandleList = GetHandleListByProtocol(&gEfiSimpleFileSystemProtocolGuid); + HandleList = GetHandleListByProtocol (&gEfiSimpleFileSystemProtocolGuid); if (HandleList != NULL) { // // Do a count of the handles // - for (Count = 0 ; HandleList[Count] != NULL ; Count++); + for (Count = 0; HandleList[Count] != NULL; Count++) { + } // // Get all Device Paths // - DevicePathList = AllocateZeroPool(sizeof(EFI_DEVICE_PATH_PROTOCOL*) * Count); + DevicePathList = AllocateZeroPool (sizeof (EFI_DEVICE_PATH_PROTOCOL *) * Count); if (DevicePathList == NULL) { return (EFI_OUT_OF_RESOURCES); } - for (Count = 0 ; HandleList[Count] != NULL ; Count++) { - DevicePathList[Count] = DevicePathFromHandle(HandleList[Count]); + for (Count = 0; HandleList[Count] != NULL; Count++) { + DevicePathList[Count] = DevicePathFromHandle (HandleList[Count]); } // // Sort all DevicePaths // - PerformQuickSort(DevicePathList, Count, sizeof(EFI_DEVICE_PATH_PROTOCOL*), DevicePathCompare); + PerformQuickSort (DevicePathList, Count, sizeof (EFI_DEVICE_PATH_PROTOCOL *), DevicePathCompare); - ShellCommandConsistMappingInitialize(&ConsistMappingTable); + ShellCommandConsistMappingInitialize (&ConsistMappingTable); // // Assign new Mappings to remainders // - for (Count = 0 ; !EFI_ERROR(Status) && HandleList[Count] != NULL && !EFI_ERROR(Status); Count++) { + for (Count = 0; !EFI_ERROR (Status) && HandleList[Count] != NULL && !EFI_ERROR (Status); Count++) { // // Skip ones that already have // - if (gEfiShellProtocol->GetMapFromDevicePath(&DevicePathList[Count]) != NULL) { + if (gEfiShellProtocol->GetMapFromDevicePath (&DevicePathList[Count]) != NULL) { continue; } + // // Get default name // - NewDefaultName = ShellCommandCreateNewMappingName(MappingTypeFileSystem); + NewDefaultName = ShellCommandCreateNewMappingName (MappingTypeFileSystem); if (NewDefaultName == NULL) { Status = EFI_OUT_OF_RESOURCES; break; @@ -1577,29 +1651,31 @@ ShellCommandUpdateMapping ( // // Call shell protocol SetMap function now... // - Status = gEfiShellProtocol->SetMap(DevicePathList[Count], NewDefaultName); + Status = gEfiShellProtocol->SetMap (DevicePathList[Count], NewDefaultName); - if (!EFI_ERROR(Status)) { + if (!EFI_ERROR (Status)) { // // Now do consistent name // - NewConsistName = ShellCommandConsistMappingGenMappingName(DevicePathList[Count], ConsistMappingTable); + NewConsistName = ShellCommandConsistMappingGenMappingName (DevicePathList[Count], ConsistMappingTable); if (NewConsistName != NULL) { - Status = gEfiShellProtocol->SetMap(DevicePathList[Count], NewConsistName); - FreePool(NewConsistName); + Status = gEfiShellProtocol->SetMap (DevicePathList[Count], NewConsistName); + FreePool (NewConsistName); } } - FreePool(NewDefaultName); + FreePool (NewDefaultName); } - ShellCommandConsistMappingUnInitialize(ConsistMappingTable); - SHELL_FREE_NON_NULL(HandleList); - SHELL_FREE_NON_NULL(DevicePathList); + + ShellCommandConsistMappingUnInitialize (ConsistMappingTable); + SHELL_FREE_NON_NULL (HandleList); + SHELL_FREE_NON_NULL (DevicePathList); HandleList = NULL; } else { Count = (UINTN)-1; } + // // Do it all over again for gEfiBlockIoProtocolGuid // @@ -1614,13 +1690,13 @@ ShellCommandUpdateMapping ( @return a EFI_FILE_PROTOCOL* representing the same file. **/ -EFI_FILE_PROTOCOL* +EFI_FILE_PROTOCOL * EFIAPI -ConvertShellHandleToEfiFileProtocol( - IN CONST SHELL_FILE_HANDLE Handle +ConvertShellHandleToEfiFileProtocol ( + IN CONST SHELL_FILE_HANDLE Handle ) { - return ((EFI_FILE_PROTOCOL*)(Handle)); + return ((EFI_FILE_PROTOCOL *)(Handle)); } /** @@ -1634,35 +1710,39 @@ ConvertShellHandleToEfiFileProtocol( **/ SHELL_FILE_HANDLE EFIAPI -ConvertEfiFileProtocolToShellHandle( - IN CONST EFI_FILE_PROTOCOL *Handle, - IN CONST CHAR16 *Path +ConvertEfiFileProtocolToShellHandle ( + IN CONST EFI_FILE_PROTOCOL *Handle, + IN CONST CHAR16 *Path ) { - SHELL_COMMAND_FILE_HANDLE *Buffer; - BUFFER_LIST *NewNode; + SHELL_COMMAND_FILE_HANDLE *Buffer; + BUFFER_LIST *NewNode; if (Path != NULL) { - Buffer = AllocateZeroPool(sizeof(SHELL_COMMAND_FILE_HANDLE)); + Buffer = AllocateZeroPool (sizeof (SHELL_COMMAND_FILE_HANDLE)); if (Buffer == NULL) { return (NULL); } - NewNode = AllocateZeroPool(sizeof(BUFFER_LIST)); + + NewNode = AllocateZeroPool (sizeof (BUFFER_LIST)); if (NewNode == NULL) { - SHELL_FREE_NON_NULL(Buffer); + SHELL_FREE_NON_NULL (Buffer); return (NULL); } - Buffer->FileHandle = (EFI_FILE_PROTOCOL*)Handle; - Buffer->Path = StrnCatGrow(&Buffer->Path, NULL, Path, 0); + + Buffer->FileHandle = (EFI_FILE_PROTOCOL *)Handle; + Buffer->Path = StrnCatGrow (&Buffer->Path, NULL, Path, 0); if (Buffer->Path == NULL) { - SHELL_FREE_NON_NULL(NewNode); - SHELL_FREE_NON_NULL(Buffer); + SHELL_FREE_NON_NULL (NewNode); + SHELL_FREE_NON_NULL (Buffer); return (NULL); } - NewNode->Buffer = Buffer; - InsertHeadList(&mFileHandleList.Link, &NewNode->Link); + NewNode->Buffer = Buffer; + + InsertHeadList (&mFileHandleList.Link, &NewNode->Link); } + return ((SHELL_FILE_HANDLE)(Handle)); } @@ -1673,22 +1753,24 @@ ConvertEfiFileProtocolToShellHandle( @return A pointer to the path for the file. **/ -CONST CHAR16* +CONST CHAR16 * EFIAPI -ShellFileHandleGetPath( - IN CONST SHELL_FILE_HANDLE Handle +ShellFileHandleGetPath ( + IN CONST SHELL_FILE_HANDLE Handle ) { - BUFFER_LIST *Node; - - for (Node = (BUFFER_LIST*)GetFirstNode(&mFileHandleList.Link) - ; !IsNull(&mFileHandleList.Link, &Node->Link) - ; Node = (BUFFER_LIST*)GetNextNode(&mFileHandleList.Link, &Node->Link) - ){ - if ((Node->Buffer) && (((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->FileHandle == Handle)){ + BUFFER_LIST *Node; + + for (Node = (BUFFER_LIST *)GetFirstNode (&mFileHandleList.Link) + ; !IsNull (&mFileHandleList.Link, &Node->Link) + ; Node = (BUFFER_LIST *)GetNextNode (&mFileHandleList.Link, &Node->Link) + ) + { + if ((Node->Buffer) && (((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->FileHandle == Handle)) { return (((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->Path); } } + return (NULL); } @@ -1702,24 +1784,26 @@ ShellFileHandleGetPath( **/ BOOLEAN EFIAPI -ShellFileHandleRemove( - IN CONST SHELL_FILE_HANDLE Handle +ShellFileHandleRemove ( + IN CONST SHELL_FILE_HANDLE Handle ) { - BUFFER_LIST *Node; - - for (Node = (BUFFER_LIST*)GetFirstNode(&mFileHandleList.Link) - ; !IsNull(&mFileHandleList.Link, &Node->Link) - ; Node = (BUFFER_LIST*)GetNextNode(&mFileHandleList.Link, &Node->Link) - ){ - if ((Node->Buffer) && (((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->FileHandle == Handle)){ - RemoveEntryList(&Node->Link); - SHELL_FREE_NON_NULL(((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->Path); - SHELL_FREE_NON_NULL(Node->Buffer); - SHELL_FREE_NON_NULL(Node); + BUFFER_LIST *Node; + + for (Node = (BUFFER_LIST *)GetFirstNode (&mFileHandleList.Link) + ; !IsNull (&mFileHandleList.Link, &Node->Link) + ; Node = (BUFFER_LIST *)GetNextNode (&mFileHandleList.Link, &Node->Link) + ) + { + if ((Node->Buffer) && (((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->FileHandle == Handle)) { + RemoveEntryList (&Node->Link); + SHELL_FREE_NON_NULL (((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->Path); + SHELL_FREE_NON_NULL (Node->Buffer); + SHELL_FREE_NON_NULL (Node); return (TRUE); } } + return (FALSE); } @@ -1737,22 +1821,22 @@ ShellFileHandleRemove( **/ BOOLEAN EFIAPI -ShellFileHandleEof( - IN SHELL_FILE_HANDLE Handle +ShellFileHandleEof ( + IN SHELL_FILE_HANDLE Handle ) { - EFI_FILE_INFO *Info; - UINT64 Pos; - BOOLEAN RetVal; + EFI_FILE_INFO *Info; + UINT64 Pos; + BOOLEAN RetVal; // // ASSERT if Handle is NULL // - ASSERT(Handle != NULL); + ASSERT (Handle != NULL); - gEfiShellProtocol->GetFilePosition(Handle, &Pos); + gEfiShellProtocol->GetFilePosition (Handle, &Pos); Info = gEfiShellProtocol->GetFileInfo (Handle); - gEfiShellProtocol->SetFilePosition(Handle, Pos); + gEfiShellProtocol->SetFilePosition (Handle, Pos); if (Info == NULL) { return (FALSE); @@ -1777,26 +1861,29 @@ ShellFileHandleEof( VOID EFIAPI FreeBufferList ( - IN BUFFER_LIST *List + IN BUFFER_LIST *List ) { - BUFFER_LIST *BufferListEntry; + BUFFER_LIST *BufferListEntry; - if (List == NULL){ + if (List == NULL) { return; } + // // enumerate through the buffer list and free all memory // - for ( BufferListEntry = ( BUFFER_LIST *)GetFirstNode(&List->Link) - ; !IsListEmpty (&List->Link) - ; BufferListEntry = (BUFFER_LIST *)GetFirstNode(&List->Link) - ){ - RemoveEntryList(&BufferListEntry->Link); + for ( BufferListEntry = (BUFFER_LIST *)GetFirstNode (&List->Link) + ; !IsListEmpty (&List->Link) + ; BufferListEntry = (BUFFER_LIST *)GetFirstNode (&List->Link) + ) + { + RemoveEntryList (&BufferListEntry->Link); if (BufferListEntry->Buffer != NULL) { - FreePool(BufferListEntry->Buffer); + FreePool (BufferListEntry->Buffer); } - FreePool(BufferListEntry); + + FreePool (BufferListEntry); } } @@ -1811,21 +1898,21 @@ FreeBufferList ( VOID EFIAPI DumpHex ( - IN UINTN Indent, - IN UINTN Offset, - IN UINTN DataSize, - IN VOID *UserData + IN UINTN Indent, + IN UINTN Offset, + IN UINTN DataSize, + IN VOID *UserData ) { - UINT8 *Data; + UINT8 *Data; - CHAR8 Val[50]; + CHAR8 Val[50]; - CHAR8 Str[20]; + CHAR8 Str[20]; - UINT8 TempByte; - UINTN Size; - UINTN Index; + UINT8 TempByte; + UINTN Size; + UINTN Index; Data = UserData; while (DataSize != 0) { @@ -1835,19 +1922,19 @@ DumpHex ( } for (Index = 0; Index < Size; Index += 1) { - TempByte = Data[Index]; - Val[Index * 3 + 0] = Hex[TempByte >> 4]; - Val[Index * 3 + 1] = Hex[TempByte & 0xF]; - Val[Index * 3 + 2] = (CHAR8) ((Index == 7) ? '-' : ' '); - Str[Index] = (CHAR8) ((TempByte < ' ' || TempByte > '~') ? '.' : TempByte); + TempByte = Data[Index]; + Val[Index * 3 + 0] = Hex[TempByte >> 4]; + Val[Index * 3 + 1] = Hex[TempByte & 0xF]; + Val[Index * 3 + 2] = (CHAR8)((Index == 7) ? '-' : ' '); + Str[Index] = (CHAR8)((TempByte < ' ' || TempByte > '~') ? '.' : TempByte); } - Val[Index * 3] = 0; - Str[Index] = 0; - ShellPrintEx(-1, -1, L"%*a%08X: %-48a *%a*\r\n", Indent, "", Offset, Val, Str); + Val[Index * 3] = 0; + Str[Index] = 0; + ShellPrintEx (-1, -1, L"%*a%08X: %-48a *%a*\r\n", Indent, "", Offset, Val, Str); - Data += Size; - Offset += Size; + Data += Size; + Offset += Size; DataSize -= Size; } } @@ -1861,7 +1948,7 @@ DumpHex ( @param[in] DataSize The size in bytes of UserData. @param[in] UserData The data to print out. **/ -CHAR16* +CHAR16 * EFIAPI CatSDumpHex ( IN CHAR16 *Buffer, @@ -1880,7 +1967,7 @@ CatSDumpHex ( CHAR16 *RetVal; CHAR16 *TempRetVal; - Data = UserData; + Data = UserData; RetVal = Buffer; while (DataSize != 0) { Size = 16; @@ -1889,21 +1976,21 @@ CatSDumpHex ( } for (Index = 0; Index < Size; Index += 1) { - TempByte = Data[Index]; - Val[Index * 3 + 0] = Hex[TempByte >> 4]; - Val[Index * 3 + 1] = Hex[TempByte & 0xF]; - Val[Index * 3 + 2] = (CHAR8) ((Index == 7) ? '-' : ' '); - Str[Index] = (CHAR8) ((TempByte < ' ' || TempByte > 'z') ? '.' : TempByte); + TempByte = Data[Index]; + Val[Index * 3 + 0] = Hex[TempByte >> 4]; + Val[Index * 3 + 1] = Hex[TempByte & 0xF]; + Val[Index * 3 + 2] = (CHAR8)((Index == 7) ? '-' : ' '); + Str[Index] = (CHAR8)((TempByte < ' ' || TempByte > 'z') ? '.' : TempByte); } - Val[Index * 3] = 0; - Str[Index] = 0; - TempRetVal = CatSPrint (RetVal, L"%*a%08X: %-48a *%a*\r\n", Indent, "", Offset, Val, Str); + Val[Index * 3] = 0; + Str[Index] = 0; + TempRetVal = CatSPrint (RetVal, L"%*a%08X: %-48a *%a*\r\n", Indent, "", Offset, Val, Str); SHELL_FREE_NON_NULL (RetVal); RetVal = TempRetVal; - Data += Size; - Offset += Size; + Data += Size; + Offset += Size; DataSize -= Size; } @@ -1929,12 +2016,12 @@ STATIC INTN EFIAPI UniqueNameCompare ( - IN CONST VOID *Unique1AsVoid, - IN CONST VOID *Unique2AsVoid + IN CONST VOID *Unique1AsVoid, + IN CONST VOID *Unique2AsVoid ) { - CONST SHELL_SORT_UNIQUE_NAME *Unique1; - CONST SHELL_SORT_UNIQUE_NAME *Unique2; + CONST SHELL_SORT_UNIQUE_NAME *Unique1; + CONST SHELL_SORT_UNIQUE_NAME *Unique2; Unique1 = Unique1AsVoid; Unique2 = Unique2AsVoid; @@ -1968,12 +2055,12 @@ STATIC INTN EFIAPI UniqueNameAliasCompare ( - IN CONST VOID *UniqueAliasAsVoid, - IN CONST VOID *UniqueAsVoid + IN CONST VOID *UniqueAliasAsVoid, + IN CONST VOID *UniqueAsVoid ) { - CONST CHAR16 *UniqueAlias; - CONST SHELL_SORT_UNIQUE_NAME *Unique; + CONST CHAR16 *UniqueAlias; + CONST SHELL_SORT_UNIQUE_NAME *Unique; UniqueAlias = UniqueAliasAsVoid; Unique = UniqueAsVoid; @@ -2047,24 +2134,24 @@ UniqueNameAliasCompare ( EFI_STATUS EFIAPI ShellSortFileList ( - IN OUT EFI_SHELL_FILE_INFO **FileList, - OUT EFI_SHELL_FILE_INFO **Duplicates OPTIONAL, - IN SHELL_SORT_FILE_LIST Order + IN OUT EFI_SHELL_FILE_INFO **FileList, + OUT EFI_SHELL_FILE_INFO **Duplicates OPTIONAL, + IN SHELL_SORT_FILE_LIST Order ) { - LIST_ENTRY *FilesHead; - ORDERED_COLLECTION *Sort; - LIST_ENTRY *FileEntry; - EFI_SHELL_FILE_INFO *FileInfo; - SHELL_SORT_UNIQUE_NAME *Unique; - EFI_STATUS Status; - EFI_SHELL_FILE_INFO *Dupes; - LIST_ENTRY *NextFileEntry; - CONST CHAR16 *Alias; - ORDERED_COLLECTION_ENTRY *SortEntry; - LIST_ENTRY *TargetFileList; - ORDERED_COLLECTION_ENTRY *NextSortEntry; - VOID *UniqueAsVoid; + LIST_ENTRY *FilesHead; + ORDERED_COLLECTION *Sort; + LIST_ENTRY *FileEntry; + EFI_SHELL_FILE_INFO *FileInfo; + SHELL_SORT_UNIQUE_NAME *Unique; + EFI_STATUS Status; + EFI_SHELL_FILE_INFO *Dupes; + LIST_ENTRY *NextFileEntry; + CONST CHAR16 *Alias; + ORDERED_COLLECTION_ENTRY *SortEntry; + LIST_ENTRY *TargetFileList; + ORDERED_COLLECTION_ENTRY *NextSortEntry; + VOID *UniqueAsVoid; if ((UINTN)Order >= (UINTN)ShellSortFileListMax) { return EFI_INVALID_PARAMETER; @@ -2077,12 +2164,14 @@ ShellSortFileList ( if (Duplicates != NULL) { *Duplicates = NULL; } + return EFI_SUCCESS; } if (*FileList == NULL) { return EFI_INVALID_PARAMETER; } + FilesHead = &(*FileList)->Link; // @@ -2104,6 +2193,7 @@ ShellSortFileList ( Status = EFI_OUT_OF_RESOURCES; goto UninitSort; } + Unique->Alias = ((Order == ShellSortFileListByFileName) ? FileInfo->FileName : FileInfo->FullName); @@ -2124,6 +2214,7 @@ ShellSortFileList ( if (Status == EFI_OUT_OF_RESOURCES) { goto UninitSort; } + ASSERT (Status == EFI_ALREADY_STARTED); } } @@ -2143,6 +2234,7 @@ ShellSortFileList ( Status = EFI_OUT_OF_RESOURCES; goto UninitSort; } + InitializeListHead (&Dupes->Link); } @@ -2176,7 +2268,8 @@ ShellSortFileList ( // for (SortEntry = OrderedCollectionMin (Sort); SortEntry != NULL; - SortEntry = OrderedCollectionNext (SortEntry)) { + SortEntry = OrderedCollectionNext (SortEntry)) + { Unique = OrderedCollectionUserStruct (SortEntry); // // The first FileInfo encountered for each unique name goes back on @@ -2207,6 +2300,7 @@ ShellSortFileList ( *Duplicates = Dupes; } } + Status = EFI_SUCCESS; // @@ -2215,13 +2309,15 @@ ShellSortFileList ( UninitSort: for (SortEntry = OrderedCollectionMin (Sort); SortEntry != NULL; - SortEntry = NextSortEntry) { + SortEntry = NextSortEntry) + { NextSortEntry = OrderedCollectionNext (SortEntry); OrderedCollectionDelete (Sort, SortEntry, &UniqueAsVoid); Unique = UniqueAsVoid; ASSERT (IsListEmpty (&Unique->SameNameList)); FreePool (Unique); } + OrderedCollectionUninit (Sort); return Status; diff --git a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.h b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.h index 0ca291e..beffdd6 100644 --- a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.h +++ b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.h @@ -41,24 +41,24 @@ #include #include -typedef struct{ - LIST_ENTRY Link; - CHAR16 *CommandString; - SHELL_GET_MAN_FILENAME GetManFileName; - SHELL_RUN_COMMAND CommandHandler; - BOOLEAN LastError; - EFI_HII_HANDLE HiiHandle; - EFI_STRING_ID ManFormatHelp; +typedef struct { + LIST_ENTRY Link; + CHAR16 *CommandString; + SHELL_GET_MAN_FILENAME GetManFileName; + SHELL_RUN_COMMAND CommandHandler; + BOOLEAN LastError; + EFI_HII_HANDLE HiiHandle; + EFI_STRING_ID ManFormatHelp; } SHELL_COMMAND_INTERNAL_LIST_ENTRY; typedef struct { - LIST_ENTRY Link; - SCRIPT_FILE *Data; + LIST_ENTRY Link; + SCRIPT_FILE *Data; } SCRIPT_FILE_LIST; typedef struct { - EFI_FILE_PROTOCOL *FileHandle; - CHAR16 *Path; + EFI_FILE_PROTOCOL *FileHandle; + CHAR16 *Path; } SHELL_COMMAND_FILE_HANDLE; // @@ -72,13 +72,12 @@ typedef struct { // instead, it *aliases* the FileName or FullName field of the // EFI_SHELL_FILE_INFO object that was first encountered with this name. // - CONST CHAR16 *Alias; + CONST CHAR16 *Alias; // // A list of EFI_SHELL_FILE_INFO objects whose FileName or FullName fields // compare equal to Alias, according to gUnicodeCollation->StriColl(). // - LIST_ENTRY SameNameList; + LIST_ENTRY SameNameList; } SHELL_SORT_UNIQUE_NAME; #endif //_UEFI_COMMAND_LIB_INTERNAL_HEADER_ - -- cgit v1.1