VirtualBox

Ignore:
Timestamp:
Apr 14, 2023 3:17:44 PM (23 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156854
Message:

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

Location:
trunk/src/VBox/Devices/EFI/FirmwareNew
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/FirmwareNew

  • trunk/src/VBox/Devices/EFI/FirmwareNew/ShellPkg/Library/UefiShellLevel2CommandsLib/Parse.c

    r80721 r99404  
    2323  )
    2424{
    25   SHELL_FILE_HANDLE FileHandle;
    26   EFI_STATUS        Status;
    27   CHAR16            CharBuffer;
    28   UINTN             CharSize;
    29   UINT64            OriginalFilePosition;
     25  SHELL_FILE_HANDLE  FileHandle;
     26  EFI_STATUS         Status;
     27  CHAR16             CharBuffer;
     28  UINTN              CharSize;
     29  UINT64             OriginalFilePosition;
    3030
    3131  Status               = EFI_SUCCESS;
     
    3434
    3535  if (ShellOpenFileByName (L">i", &FileHandle, EFI_FILE_MODE_READ, 0) == EFI_SUCCESS) {
    36     CharSize = sizeof(CHAR16);
     36    CharSize = sizeof (CHAR16);
    3737    gEfiShellProtocol->GetFilePosition (FileHandle, &OriginalFilePosition);
    3838    Status = gEfiShellProtocol->ReadFile (FileHandle, &CharSize, &CharBuffer);
    39     if (EFI_ERROR (Status) || (CharSize != sizeof(CHAR16))) {
     39    if (EFI_ERROR (Status) || (CharSize != sizeof (CHAR16))) {
    4040      return FALSE;
    4141    }
    42     gEfiShellProtocol->SetFilePosition(FileHandle, OriginalFilePosition);
     42
     43    gEfiShellProtocol->SetFilePosition (FileHandle, OriginalFilePosition);
    4344  }
    4445
     
    7980    return NULL;
    8081  }
     82
    8183  ReturnStr = NewStr;
    8284  StrWalker = String;
    8385  while (*StrWalker != CHAR_NULL) {
    84     if (*StrWalker == L'^' && (*(StrWalker + 1) == L'^' || *(StrWalker + 1) == L'"')) {
     86    if ((*StrWalker == L'^') && ((*(StrWalker + 1) == L'^') || (*(StrWalker + 1) == L'"'))) {
    8587      *NewStr = *(StrWalker + 1);
    8688      StrWalker++;
     
    8890      *NewStr = *StrWalker;
    8991    }
     92
    9093    StrWalker++;
    9194    NewStr++;
     
    9497  return ReturnStr;
    9598}
    96 
    9799
    98100/**
     
    111113**/
    112114SHELL_STATUS
    113 PerformParsing(
    114   IN CONST CHAR16 *FileName,
    115   IN CONST CHAR16 *TableName,
    116   IN CONST UINTN  ColumnIndex,
    117   IN CONST UINTN  TableNameInstance,
    118   IN CONST UINTN  ShellCommandInstance,
    119   IN BOOLEAN      StreamingUnicode
     115PerformParsing (
     116  IN CONST CHAR16  *FileName,
     117  IN CONST CHAR16  *TableName,
     118  IN CONST UINTN   ColumnIndex,
     119  IN CONST UINTN   TableNameInstance,
     120  IN CONST UINTN   ShellCommandInstance,
     121  IN BOOLEAN       StreamingUnicode
    120122  )
    121123{
    122   SHELL_FILE_HANDLE FileHandle;
    123   EFI_STATUS        Status;
    124   BOOLEAN           Ascii;
    125   UINTN             LoopVariable;
    126   UINTN             ColumnLoop;
    127   CHAR16            *TempLine;
    128   CHAR16            *ColumnPointer;
    129   SHELL_STATUS      ShellStatus;
    130   CHAR16            *TempSpot;
    131   CHAR16            *SfoString;
    132 
    133   ASSERT(FileName   != NULL);
    134   ASSERT(TableName  != NULL);
    135 
    136   ShellStatus       = SHELL_SUCCESS;
    137 
    138   Status = ShellOpenFileByName(FileName, &FileHandle, EFI_FILE_MODE_READ, 0);
    139   if (EFI_ERROR(Status)) {
    140     ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, L"parse", FileName);
     124  SHELL_FILE_HANDLE  FileHandle;
     125  EFI_STATUS         Status;
     126  BOOLEAN            Ascii;
     127  UINTN              LoopVariable;
     128  UINTN              ColumnLoop;
     129  CHAR16             *TempLine;
     130  CHAR16             *ColumnPointer;
     131  SHELL_STATUS       ShellStatus;
     132  CHAR16             *TempSpot;
     133  CHAR16             *SfoString;
     134
     135  ASSERT (FileName   != NULL);
     136  ASSERT (TableName  != NULL);
     137
     138  ShellStatus = SHELL_SUCCESS;
     139
     140  Status = ShellOpenFileByName (FileName, &FileHandle, EFI_FILE_MODE_READ, 0);
     141  if (EFI_ERROR (Status)) {
     142    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, L"parse", FileName);
    141143    ShellStatus = SHELL_NOT_FOUND;
    142144  } else if (!EFI_ERROR (FileHandleIsDirectory (FileHandle))) {
     
    144146    ShellStatus = SHELL_NOT_FOUND;
    145147  } else {
    146     for (LoopVariable = 0 ; LoopVariable < ShellCommandInstance && !ShellFileHandleEof(FileHandle);) {
    147      TempLine = ShellFileHandleReturnLine (FileHandle, &Ascii);
    148 
    149       if ((TempLine == NULL) || (*TempLine == CHAR_NULL && StreamingUnicode)) {
    150          break;
     148    for (LoopVariable = 0; LoopVariable < ShellCommandInstance && !ShellFileHandleEof (FileHandle);) {
     149      TempLine = ShellFileHandleReturnLine (FileHandle, &Ascii);
     150
     151      if ((TempLine == NULL) || ((*TempLine == CHAR_NULL) && StreamingUnicode)) {
     152        break;
    151153      }
    152154
     
    159161        LoopVariable++;
    160162      }
    161       SHELL_FREE_NON_NULL(TempLine);
    162     }
     163
     164      SHELL_FREE_NON_NULL (TempLine);
     165    }
     166
    163167    if (LoopVariable == ShellCommandInstance) {
    164168      LoopVariable = 0;
    165       while(1) {
     169      while (1) {
    166170        TempLine = ShellFileHandleReturnLine (FileHandle, &Ascii);
    167         if (TempLine == NULL
    168             || *TempLine == CHAR_NULL
    169             || StrStr (TempLine, L"ShellCommand,") == TempLine) {
    170           SHELL_FREE_NON_NULL(TempLine);
     171        if (  (TempLine == NULL)
     172           || (*TempLine == CHAR_NULL)
     173           || (StrStr (TempLine, L"ShellCommand,") == TempLine))
     174        {
     175          SHELL_FREE_NON_NULL (TempLine);
    171176          break;
    172177        }
     178
    173179        if (StrStr (TempLine, TableName) == TempLine) {
    174180          LoopVariable++;
    175           if (LoopVariable == TableNameInstance
    176               || (TableNameInstance == (UINTN)-1)) {
     181          if (  (LoopVariable == TableNameInstance)
     182             || (TableNameInstance == (UINTN)-1))
     183          {
    177184            for (ColumnLoop = 1, ColumnPointer = TempLine; ColumnLoop < ColumnIndex && ColumnPointer != NULL && *ColumnPointer != CHAR_NULL; ColumnLoop++) {
    178185              ColumnPointer = StrStr (ColumnPointer, L",\"");
    179               if (ColumnPointer != NULL && *ColumnPointer != CHAR_NULL){
     186              if ((ColumnPointer != NULL) && (*ColumnPointer != CHAR_NULL)) {
    180187                ColumnPointer++;
    181188              }
    182189            }
     190
    183191            if (ColumnLoop == ColumnIndex) {
    184192              if (ColumnPointer == NULL) {
    185                 ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"parse", L"Column Index");
     193                ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"parse", L"Column Index");
    186194                ShellStatus = SHELL_INVALID_PARAMETER;
    187195              } else {
     
    190198                  *TempSpot = CHAR_NULL;
    191199                }
    192                 while (ColumnPointer != NULL && *ColumnPointer != CHAR_NULL && ColumnPointer[0] == L' '){
     200
     201                while (ColumnPointer != NULL && *ColumnPointer != CHAR_NULL && ColumnPointer[0] == L' ') {
    193202                  ColumnPointer++;
    194203                }
    195                 if (ColumnPointer != NULL && *ColumnPointer != CHAR_NULL && ColumnPointer[0] == L'\"'){
     204
     205                if ((ColumnPointer != NULL) && (*ColumnPointer != CHAR_NULL) && (ColumnPointer[0] == L'\"')) {
    196206                  ColumnPointer++;
    197207                }
    198                 if (ColumnPointer != NULL && *ColumnPointer != CHAR_NULL && ColumnPointer[StrLen (ColumnPointer) - 1] == L'\"'){
     208
     209                if ((ColumnPointer != NULL) && (*ColumnPointer != CHAR_NULL) && (ColumnPointer[StrLen (ColumnPointer) - 1] == L'\"')) {
    199210                  ColumnPointer[StrLen (ColumnPointer) - 1] = CHAR_NULL;
    200211                }
     212
    201213                SfoString = HandleStringWithEscapeCharForParse (ColumnPointer);
    202214                if (SfoString != NULL) {
     
    208220          }
    209221        }
    210         SHELL_FREE_NON_NULL(TempLine);
    211       }
    212     }
    213   }
     222
     223        SHELL_FREE_NON_NULL (TempLine);
     224      }
     225    }
     226  }
     227
    214228  return (ShellStatus);
    215229}
    216230
    217 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
    218   {L"-i", TypeValue},
    219   {L"-s", TypeValue},
    220   {NULL, TypeMax}
    221   };
     231STATIC CONST SHELL_PARAM_ITEM  ParamList[] = {
     232  { L"-i", TypeValue },
     233  { L"-s", TypeValue },
     234  { NULL,  TypeMax   }
     235};
    222236
    223237/**
     
    234248  )
    235249{
    236   EFI_STATUS          Status;
    237   LIST_ENTRY          *Package;
    238   CHAR16              *ProblemParam;
    239   CONST CHAR16        *FileName;
    240   CONST CHAR16        *TableName;
    241   CONST CHAR16        *ColumnString;
    242   SHELL_STATUS        ShellStatus;
    243   UINTN               ShellCommandInstance;
    244   UINTN               TableNameInstance;
    245   BOOLEAN             StreamingUnicode;
     250  EFI_STATUS    Status;
     251  LIST_ENTRY    *Package;
     252  CHAR16        *ProblemParam;
     253  CONST CHAR16  *FileName;
     254  CONST CHAR16  *TableName;
     255  CONST CHAR16  *ColumnString;
     256  SHELL_STATUS  ShellStatus;
     257  UINTN         ShellCommandInstance;
     258  UINTN         TableNameInstance;
     259  BOOLEAN       StreamingUnicode;
    246260
    247261  ShellStatus      = SHELL_SUCCESS;
     
    252266  // initialize the shell lib (we must be in non-auto-init...)
    253267  //
    254   Status = ShellInitialize();
    255   ASSERT_EFI_ERROR(Status);
     268  Status = ShellInitialize ();
     269  ASSERT_EFI_ERROR (Status);
    256270
    257271  //
     
    259273  //
    260274  Status = ShellCommandLineParseEx (ParamList, &Package, &ProblemParam, TRUE, FALSE);
    261   if (EFI_ERROR(Status)) {
    262     if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
    263       ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, L"parse", ProblemParam);
    264       FreePool(ProblemParam);
     275  if (EFI_ERROR (Status)) {
     276    if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
     277      ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, L"parse", ProblemParam);
     278      FreePool (ProblemParam);
    265279      ShellStatus = SHELL_INVALID_PARAMETER;
    266280    } else {
    267       ASSERT(FALSE);
     281      ASSERT (FALSE);
    268282    }
    269283  } else {
    270284    StreamingUnicode = IsStdInDataAvailable ();
    271     if ((!StreamingUnicode && (ShellCommandLineGetCount(Package) < 4)) ||
    272         (ShellCommandLineGetCount(Package) < 3)) {
    273       ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"parse");
     285    if ((!StreamingUnicode && (ShellCommandLineGetCount (Package) < 4)) ||
     286        (ShellCommandLineGetCount (Package) < 3))
     287    {
     288      ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"parse");
    274289      ShellStatus = SHELL_INVALID_PARAMETER;
    275     } else if ((StreamingUnicode && (ShellCommandLineGetCount(Package) > 3)) ||
    276                 (ShellCommandLineGetCount(Package) > 4)) {
    277       ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"parse");
     290    } else if ((StreamingUnicode && (ShellCommandLineGetCount (Package) > 3)) ||
     291               (ShellCommandLineGetCount (Package) > 4))
     292    {
     293      ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"parse");
    278294      ShellStatus = SHELL_INVALID_PARAMETER;
    279295    } else {
    280296      if (StreamingUnicode) {
    281         FileName         = L">i";
    282         TableName        = ShellCommandLineGetRawValue(Package, 1);
    283         ColumnString     = ShellCommandLineGetRawValue(Package, 2);
     297        FileName     = L">i";
     298        TableName    = ShellCommandLineGetRawValue (Package, 1);
     299        ColumnString = ShellCommandLineGetRawValue (Package, 2);
    284300      } else {
    285         FileName         = ShellCommandLineGetRawValue(Package, 1);
    286         TableName        = ShellCommandLineGetRawValue(Package, 2);
    287         ColumnString     = ShellCommandLineGetRawValue(Package, 3);
    288       }
    289       if (ShellCommandLineGetValue(Package, L"-i") == NULL) {
     301        FileName     = ShellCommandLineGetRawValue (Package, 1);
     302        TableName    = ShellCommandLineGetRawValue (Package, 2);
     303        ColumnString = ShellCommandLineGetRawValue (Package, 3);
     304      }
     305
     306      if (ShellCommandLineGetValue (Package, L"-i") == NULL) {
    290307        TableNameInstance = (UINTN)-1;
    291308      } else {
    292         TableNameInstance = ShellStrToUintn(ShellCommandLineGetValue(Package, L"-i"));
    293       }
    294       if (ShellCommandLineGetValue(Package, L"-s") == NULL) {
     309        TableNameInstance = ShellStrToUintn (ShellCommandLineGetValue (Package, L"-i"));
     310      }
     311
     312      if (ShellCommandLineGetValue (Package, L"-s") == NULL) {
    295313        ShellCommandInstance = 1;
    296314      } else {
    297         ShellCommandInstance = ShellStrToUintn(ShellCommandLineGetValue(Package, L"-s"));
    298       }
    299 
    300       ShellStatus = PerformParsing(FileName, TableName, ShellStrToUintn(ColumnString), TableNameInstance, ShellCommandInstance, StreamingUnicode);
     315        ShellCommandInstance = ShellStrToUintn (ShellCommandLineGetValue (Package, L"-s"));
     316      }
     317
     318      ShellStatus = PerformParsing (FileName, TableName, ShellStrToUintn (ColumnString), TableNameInstance, ShellCommandInstance, StreamingUnicode);
    301319    }
    302320  }
     
    309327  return (ShellStatus);
    310328}
    311 
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette