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/FatPkg/EnhancedFatDxe/FileName.c

    r85718 r99404  
    2424BOOLEAN
    2525FatCheckIs8Dot3Name (
    26   IN  CHAR16    *FileName,
    27   OUT CHAR8     *File8Dot3Name
    28   )
    29 {
    30   BOOLEAN PossibleShortName;
    31   CHAR16  *TempName;
    32   CHAR16  *ExtendName;
    33   CHAR16  *SeparateDot;
    34   UINTN   MainNameLen;
    35   UINTN   ExtendNameLen;
     26  IN  CHAR16  *FileName,
     27  OUT CHAR8   *File8Dot3Name
     28  )
     29{
     30  BOOLEAN  PossibleShortName;
     31  CHAR16   *TempName;
     32  CHAR16   *ExtendName;
     33  CHAR16   *SeparateDot;
     34  UINTN    MainNameLen;
     35  UINTN    ExtendNameLen;
    3636
    3737  PossibleShortName = TRUE;
     
    5959    ExtendNameLen = TempName - ExtendName;
    6060  }
     61
    6162  //
    6263  // We scan the filename for the second time
     
    6465  //
    6566  while (--TempName >= FileName) {
    66     if ((*TempName == L'.' || *TempName == L' ') && (TempName != SeparateDot)) {
     67    if (((*TempName == L'.') || (*TempName == L' ')) && (TempName != SeparateDot)) {
    6768      //
    6869      // There exist extra blanks and dots
     
    110111UINTN
    111112FatTrimAsciiTrailingBlanks (
    112   IN CHAR8        *Name,
    113   IN UINTN        Len
     113  IN CHAR8  *Name,
     114  IN UINTN  Len
    114115  )
    115116{
     
    134135VOID
    135136FatNameToStr (
    136   IN  CHAR8            *FatName,
    137   IN  UINTN            Len,
    138   IN  UINTN            LowerCase,
    139   OUT CHAR16           *Str
     137  IN  CHAR8   *FatName,
     138  IN  UINTN   Len,
     139  IN  UINTN   LowerCase,
     140  OUT CHAR16  *Str
    140141  )
    141142{
     
    167168VOID
    168169FatCreate8Dot3Name (
    169   IN FAT_OFILE    *Parent,
    170   IN FAT_DIRENT   *DirEnt
    171   )
    172 {
    173   CHAR8 *ShortName;
    174   CHAR8 *ShortNameChar;
    175   UINTN BaseTagLen;
    176   UINTN Index;
    177   UINTN Retry;
    178   UINT8 Segment;
     170  IN FAT_OFILE   *Parent,
     171  IN FAT_DIRENT  *DirEnt
     172  )
     173{
     174  CHAR8  *ShortName;
     175  CHAR8  *ShortNameChar;
     176  UINTN  BaseTagLen;
     177  UINTN  Index;
     178  UINTN  Retry;
     179  UINT8  Segment;
     180
    179181  union {
    180     UINT32  Crc;
     182    UINT32    Crc;
    181183    struct HEX_DATA {
    182       UINT8 Segment : HASH_VALUE_TAG_LEN;
     184      UINT8    Segment : HASH_VALUE_TAG_LEN;
    183185    } Hex[HASH_VALUE_TAG_LEN];
    184186  } HashValue;
     
    196198    BaseTagLen = SPEC_BASE_TAG_LEN;
    197199  }
     200
    198201  //
    199202  // We first use the algorithm described by spec.
    200203  //
    201   ShortNameChar     = ShortName + BaseTagLen;
    202   *ShortNameChar++  = '~';
    203   *ShortNameChar    = '1';
    204   Retry = 0;
     204  ShortNameChar    = ShortName + BaseTagLen;
     205  *ShortNameChar++ = '~';
     206  *ShortNameChar   = '1';
     207  Retry            = 0;
    205208  while (*FatShortNameHashSearch (Parent->ODir, ShortName) != NULL) {
    206209    *ShortNameChar = (CHAR8)(*ShortNameChar + 1);
     
    226229      }
    227230
    228       *ShortNameChar++  = '~';
    229       *ShortNameChar    = '1';
     231      *ShortNameChar++ = '~';
     232      *ShortNameChar   = '1';
    230233    }
    231234  }
     
    246249UINT8
    247250FatCheckNameCase (
    248   IN CHAR16           *Str,
    249   IN UINT8            InCaseFlag
     251  IN CHAR16  *Str,
     252  IN UINT8   InCaseFlag
    250253  )
    251254{
     
    266269    OutCaseFlag = InCaseFlag;
    267270  }
     271
    268272  //
    269273  // Upper case a copy of the string, if it matches the
     
    288292VOID
    289293FatSetCaseFlag (
    290   IN FAT_DIRENT   *DirEnt
     294  IN FAT_DIRENT  *DirEnt
    291295  )
    292296{
     
    343347VOID
    344348FatGetFileNameViaCaseFlag (
    345   IN     FAT_DIRENT   *DirEnt,
    346   IN OUT CHAR16       *FileString,
    347   IN     UINTN        FileStringMax
     349  IN     FAT_DIRENT  *DirEnt,
     350  IN OUT CHAR16      *FileString,
     351  IN     UINTN       FileStringMax
    348352  )
    349353{
     
    351355  CHAR8   *File8Dot3Name;
    352356  CHAR16  TempExt[1 + FAT_EXTEND_NAME_LEN + 1];
     357
    353358  //
    354359  // Store file extension like ".txt"
     
    379384  )
    380385{
    381   UINTN ShortNameLen;
    382   UINT8 Sum;
     386  UINTN  ShortNameLen;
     387  UINT8  Sum;
     388
    383389  Sum = 0;
    384390  for (ShortNameLen = FAT_NAME_LEN; ShortNameLen != 0; ShortNameLen--) {
     
    403409CHAR16 *
    404410FatGetNextNameComponent (
    405   IN  CHAR16      *Path,
    406   OUT CHAR16      *Name
     411  IN  CHAR16  *Path,
     412  OUT CHAR16  *Name
    407413  )
    408414{
     
    410416    *Name++ = *Path++;
    411417  }
     418
    412419  *Name = 0;
    413420  //
     
    442449  CHAR16  *TempNamePointer;
    443450  CHAR16  TempChar;
     451
    444452  //
    445453  // Trim Leading blanks
     
    453461    *TempNamePointer++ = *InputFileName++;
    454462  }
     463
    455464  //
    456465  // Trim Trailing blanks and dots
     
    458467  while (TempNamePointer > OutputFileName) {
    459468    TempChar = *(TempNamePointer - 1);
    460     if (TempChar != L' ' && TempChar != L'.') {
     469    if ((TempChar != L' ') && (TempChar != L'.')) {
    461470      break;
    462471    }
     
    476485    return FALSE;
    477486  }
     487
    478488  //
    479489  // See if there is any illegal characters within the name
    480490  //
    481491  do {
    482     if (*OutputFileName < 0x20 ||
    483         *OutputFileName == '\"' ||
    484         *OutputFileName == '*' ||
    485         *OutputFileName == '/' ||
    486         *OutputFileName == ':' ||
    487         *OutputFileName == '<' ||
    488         *OutputFileName == '>' ||
    489         *OutputFileName == '?' ||
    490         *OutputFileName == '\\' ||
    491         *OutputFileName == '|'
    492         ) {
     492    if ((*OutputFileName < 0x20) ||
     493        (*OutputFileName == '\"') ||
     494        (*OutputFileName == '*') ||
     495        (*OutputFileName == '/') ||
     496        (*OutputFileName == ':') ||
     497        (*OutputFileName == '<') ||
     498        (*OutputFileName == '>') ||
     499        (*OutputFileName == '?') ||
     500        (*OutputFileName == '\\') ||
     501        (*OutputFileName == '|')
     502        )
     503    {
    493504      return FALSE;
    494505    }
     
    496507    OutputFileName++;
    497508  } while (*OutputFileName != 0);
     509
    498510  return TRUE;
    499511}
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