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/UefiShellLevel3CommandsLib/Touch.c

    r85718 r99404  
    2222EFI_STATUS
    2323TouchFileByHandle (
    24   IN SHELL_FILE_HANDLE Handle
     24  IN SHELL_FILE_HANDLE  Handle
    2525  )
    2626{
    27   EFI_STATUS    Status;
    28   EFI_FILE_INFO *FileInfo;
    29 
    30   FileInfo = gEfiShellProtocol->GetFileInfo(Handle);
    31   if ((FileInfo->Attribute & EFI_FILE_READ_ONLY) != 0){
     27  EFI_STATUS     Status;
     28  EFI_FILE_INFO  *FileInfo;
     29
     30  FileInfo = gEfiShellProtocol->GetFileInfo (Handle);
     31  if ((FileInfo->Attribute & EFI_FILE_READ_ONLY) != 0) {
    3232    return (EFI_ACCESS_DENIED);
    3333  }
    34   Status = gRT->GetTime(&FileInfo->ModificationTime, NULL);
    35   if (EFI_ERROR(Status)) {
    36     ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"gRT->GetTime", Status);
     34
     35  Status = gRT->GetTime (&FileInfo->ModificationTime, NULL);
     36  if (EFI_ERROR (Status)) {
     37    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"gRT->GetTime", Status);
    3738    return (SHELL_DEVICE_ERROR);
    3839  }
    3940
    40   CopyMem(&FileInfo->LastAccessTime, &FileInfo->ModificationTime, sizeof(EFI_TIME));
    41 
    42   Status = gEfiShellProtocol->SetFileInfo(Handle, FileInfo);
    43 
    44   FreePool(FileInfo);
     41  CopyMem (&FileInfo->LastAccessTime, &FileInfo->ModificationTime, sizeof (EFI_TIME));
     42
     43  Status = gEfiShellProtocol->SetFileInfo (Handle, FileInfo);
     44
     45  FreePool (FileInfo);
    4546
    4647  return (Status);
     
    6667  )
    6768{
    68   EFI_STATUS          Status;
    69   EFI_SHELL_FILE_INFO *FileList;
    70   EFI_SHELL_FILE_INFO *Walker;
    71   CHAR16              *TempSpot;
    72 
    73   Status      = EFI_SUCCESS;
    74   FileList    = NULL;
    75   Walker      = NULL;
     69  EFI_STATUS           Status;
     70  EFI_SHELL_FILE_INFO  *FileList;
     71  EFI_SHELL_FILE_INFO  *Walker;
     72  CHAR16               *TempSpot;
     73
     74  Status   = EFI_SUCCESS;
     75  FileList = NULL;
     76  Walker   = NULL;
    7677
    7778  if (FS == NULL) {
    78     FS = StrnCatGrow(&FS, NULL, Name, 0);
     79    FS = StrnCatGrow (&FS, NULL, Name, 0);
    7980    if (FS != NULL) {
    80       TempSpot = StrStr(FS, L"\\");
     81      TempSpot = StrStr (FS, L"\\");
    8182      if (TempSpot != NULL) {
    8283        *TempSpot = CHAR_NULL;
     
    8485    }
    8586  }
     87
    8688  if (FS == NULL) {
    8789    return (EFI_INVALID_PARAMETER);
     
    9193  // do it
    9294  //
    93   Status = TouchFileByHandle(Handle);
    94   if (EFI_ERROR(Status)) {
    95     ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Name);
     95  Status = TouchFileByHandle (Handle);
     96  if (EFI_ERROR (Status)) {
     97    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Name);
    9698    return (Status);
    9799  }
     
    100102  // if it's a directory recurse...
    101103  //
    102   if (FileHandleIsDirectory(Handle) == EFI_SUCCESS && Rec) {
     104  if ((FileHandleIsDirectory (Handle) == EFI_SUCCESS) && Rec) {
    103105    //
    104106    // get each file under this directory
    105107    //
    106     if (EFI_ERROR(gEfiShellProtocol->FindFilesInDir(Handle, &FileList))) {
     108    if (EFI_ERROR (gEfiShellProtocol->FindFilesInDir (Handle, &FileList))) {
    107109      Status = EFI_INVALID_PARAMETER;
    108110    }
     
    111113    // recurse on each
    112114    //
    113     for (Walker = (EFI_SHELL_FILE_INFO *)GetFirstNode(&FileList->Link)
    114       ;  FileList != NULL && !IsNull(&FileList->Link, &Walker->Link) && !EFI_ERROR(Status)
    115       ;  Walker = (EFI_SHELL_FILE_INFO *)GetNextNode(&FileList->Link, &Walker->Link)
    116      ){
    117       if ( (StrCmp(Walker->FileName, L".") != 0)
    118         && (StrCmp(Walker->FileName, L"..") != 0)
    119        ){
     115    for (Walker = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
     116         ; FileList != NULL && !IsNull (&FileList->Link, &Walker->Link) && !EFI_ERROR (Status)
     117         ; Walker = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Walker->Link)
     118         )
     119    {
     120      if (  (StrCmp (Walker->FileName, L".") != 0)
     121         && (StrCmp (Walker->FileName, L"..") != 0)
     122            )
     123      {
    120124        //
    121125        // Open the file since we need that handle.
    122126        //
    123127        Status = gEfiShellProtocol->OpenFileByName (Walker->FullName, &Walker->Handle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE);
    124         if (EFI_ERROR(Status)) {
    125           ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Walker->FullName);
     128        if (EFI_ERROR (Status)) {
     129          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Walker->FullName);
    126130          Status = EFI_ACCESS_DENIED;
    127131        } else {
    128           Status = DoTouchByHandle(Walker->FullName, FS, Walker->Handle, TRUE);
    129           gEfiShellProtocol->CloseFile(Walker->Handle);
     132          Status = DoTouchByHandle (Walker->FullName, FS, Walker->Handle, TRUE);
     133          gEfiShellProtocol->CloseFile (Walker->Handle);
    130134          Walker->Handle = NULL;
    131135        }
     
    136140    // free stuff
    137141    //
    138     if (FileList != NULL && EFI_ERROR(gEfiShellProtocol->FreeFileList(&FileList))) {
     142    if ((FileList != NULL) && EFI_ERROR (gEfiShellProtocol->FreeFileList (&FileList))) {
    139143      Status = EFI_INVALID_PARAMETER;
    140144    }
     
    144148}
    145149
    146 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
    147   {L"-r", TypeFlag},
    148   {NULL, TypeMax}
    149   };
     150STATIC CONST SHELL_PARAM_ITEM  ParamList[] = {
     151  { L"-r", TypeFlag },
     152  { NULL,  TypeMax  }
     153};
    150154
    151155/**
     
    162166  )
    163167{
    164   EFI_STATUS          Status;
    165   LIST_ENTRY          *Package;
    166   CHAR16              *ProblemParam;
    167   CONST CHAR16        *Param;
    168   SHELL_STATUS        ShellStatus;
    169   UINTN               ParamCount;
    170   EFI_SHELL_FILE_INFO *FileList;
    171   EFI_SHELL_FILE_INFO *Node;
    172 
    173   ProblemParam        = NULL;
    174   ShellStatus         = SHELL_SUCCESS;
    175   ParamCount          = 0;
    176   FileList            = NULL;
     168  EFI_STATUS           Status;
     169  LIST_ENTRY           *Package;
     170  CHAR16               *ProblemParam;
     171  CONST CHAR16         *Param;
     172  SHELL_STATUS         ShellStatus;
     173  UINTN                ParamCount;
     174  EFI_SHELL_FILE_INFO  *FileList;
     175  EFI_SHELL_FILE_INFO  *Node;
     176
     177  ProblemParam = NULL;
     178  ShellStatus  = SHELL_SUCCESS;
     179  ParamCount   = 0;
     180  FileList     = NULL;
    177181
    178182  //
    179183  // initialize the shell lib (we must be in non-auto-init...)
    180184  //
    181   Status = ShellInitialize();
    182   ASSERT_EFI_ERROR(Status);
    183 
    184   Status = CommandInit();
    185   ASSERT_EFI_ERROR(Status);
     185  Status = ShellInitialize ();
     186  ASSERT_EFI_ERROR (Status);
     187
     188  Status = CommandInit ();
     189  ASSERT_EFI_ERROR (Status);
    186190
    187191  //
     
    189193  //
    190194  Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
    191   if (EFI_ERROR(Status)) {
    192     if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
    193       ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"touch", ProblemParam);
    194       FreePool(ProblemParam);
     195  if (EFI_ERROR (Status)) {
     196    if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
     197      ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"touch", ProblemParam);
     198      FreePool (ProblemParam);
    195199      ShellStatus = SHELL_INVALID_PARAMETER;
    196200    } else {
    197       ASSERT(FALSE);
     201      ASSERT (FALSE);
    198202    }
    199203  } else {
     
    201205    // check for "-?"
    202206    //
    203     if (ShellCommandLineGetFlag(Package, L"-?")) {
    204       ASSERT(FALSE);
    205     }
    206     if (ShellCommandLineGetRawValue(Package, 1) == NULL) {
     207    if (ShellCommandLineGetFlag (Package, L"-?")) {
     208      ASSERT (FALSE);
     209    }
     210
     211    if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
    207212      //
    208213      // we insufficient parameters
    209214      //
    210       ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"touch");
     215      ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"touch");
    211216      ShellStatus = SHELL_INVALID_PARAMETER;
    212217    } else {
     
    215220      // if parameter is a directory then add all the files below it to the list
    216221      //
    217       for ( ParamCount = 1, Param = ShellCommandLineGetRawValue(Package, ParamCount)
    218           ; Param != NULL
    219           ; ParamCount++, Param = ShellCommandLineGetRawValue(Package, ParamCount)
    220          ){
    221         Status = ShellOpenFileMetaArg((CHAR16*)Param, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, &FileList);
    222         if (EFI_ERROR(Status)) {
    223           ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16*)Param);
     222      for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
     223            ; Param != NULL
     224            ; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
     225            )
     226      {
     227        Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, &FileList);
     228        if (EFI_ERROR (Status)) {
     229          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16 *)Param);
    224230          ShellStatus = SHELL_NOT_FOUND;
    225231          break;
    226232        }
     233
    227234        //
    228235        // make sure we completed the param parsing sucessfully...
     
    233240          // check that we have at least 1 file
    234241          //
    235           if (FileList == NULL || IsListEmpty(&FileList->Link)) {
    236             ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
     242          if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
     243            ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
    237244            continue;
    238245          } else {
     
    240247            // loop through the list and make sure we are not aborting...
    241248            //
    242             for ( Node = (EFI_SHELL_FILE_INFO*)GetFirstNode(&FileList->Link)
    243                 ; !IsNull(&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag()
    244                 ; Node = (EFI_SHELL_FILE_INFO*)GetNextNode(&FileList->Link, &Node->Link)
    245                ){
     249            for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
     250                  ; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()
     251                  ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)
     252                  )
     253            {
    246254              //
    247255              // make sure the file opened ok
    248256              //
    249               if (EFI_ERROR(Node->Status)){
    250                 ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
     257              if (EFI_ERROR (Node->Status)) {
     258                ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
    251259                ShellStatus = SHELL_NOT_FOUND;
    252260                continue;
    253261              }
    254262
    255               Status = DoTouchByHandle(Node->FullName, NULL, Node->Handle, ShellCommandLineGetFlag(Package, L"-r"));
    256               if (EFI_ERROR(Status) && Status != EFI_ACCESS_DENIED) {
    257                 ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
     263              Status = DoTouchByHandle (Node->FullName, NULL, Node->Handle, ShellCommandLineGetFlag (Package, L"-r"));
     264              if (EFI_ERROR (Status) && (Status != EFI_ACCESS_DENIED)) {
     265                ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
    258266                ShellStatus = SHELL_NOT_FOUND;
    259267              }
     
    261269          }
    262270        }
     271
    263272        //
    264273        // Free the fileList
    265274        //
    266         if (FileList != NULL && !IsListEmpty(&FileList->Link)) {
    267           Status = ShellCloseFileMetaArg(&FileList);
    268           ASSERT_EFI_ERROR(Status);
    269         }
     275        if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
     276          Status = ShellCloseFileMetaArg (&FileList);
     277          ASSERT_EFI_ERROR (Status);
     278        }
     279
    270280        FileList = NULL;
    271281      }
     
    278288  }
    279289
    280   if (ShellGetExecutionBreakFlag()) {
     290  if (ShellGetExecutionBreakFlag ()) {
    281291    return (SHELL_ABORTED);
    282292  }
     
    284294  return (ShellStatus);
    285295}
    286 
Note: See TracChangeset for help on using the changeset viewer.

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