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/OvmfPkg/XenPvBlkDxe/BlockIo.c

    r85718 r99404  
    4747};
    4848
    49 
    50 
    51 
    5249/**
    5350  Read/Write BufferSize bytes from Lba into Buffer.
     
    7774  )
    7875{
    79   XEN_BLOCK_FRONT_IO IoData;
    80   EFI_BLOCK_IO_MEDIA *Media = This->Media;
    81   UINTN Sector;
    82   EFI_STATUS Status;
     76  XEN_BLOCK_FRONT_IO  IoData;
     77  EFI_BLOCK_IO_MEDIA  *Media = This->Media;
     78  UINTN               Sector;
     79  EFI_STATUS          Status;
    8380
    8481  if (Buffer == NULL) {
    8582    return EFI_INVALID_PARAMETER;
    8683  }
     84
    8785  if (BufferSize == 0) {
    8886    return EFI_SUCCESS;
     
    9088
    9189  if (BufferSize % Media->BlockSize != 0) {
    92     DEBUG ((DEBUG_ERROR, "XenPvBlkDxe: Bad buffer size: 0x%Lx\n",
    93       (UINT64)BufferSize));
     90    DEBUG ((
     91      DEBUG_ERROR,
     92      "XenPvBlkDxe: Bad buffer size: 0x%Lx\n",
     93      (UINT64)BufferSize
     94      ));
    9495    return EFI_BAD_BUFFER_SIZE;
    9596  }
    9697
    97   if (Lba > Media->LastBlock ||
    98       (BufferSize / Media->BlockSize) - 1 > Media->LastBlock - Lba) {
    99     DEBUG ((DEBUG_ERROR,
     98  if ((Lba > Media->LastBlock) ||
     99      ((BufferSize / Media->BlockSize) - 1 > Media->LastBlock - Lba))
     100  {
     101    DEBUG ((
     102      DEBUG_ERROR,
    100103      "XenPvBlkDxe: %a with invalid LBA: 0x%Lx, size: 0x%Lx\n",
    101       IsWrite ? "Write" : "Read", Lba, (UINT64)BufferSize));
     104      IsWrite ? "Write" : "Read",
     105      Lba,
     106      (UINT64)BufferSize
     107      ));
    102108    return EFI_INVALID_PARAMETER;
    103109  }
     
    112118    // buffer here.
    113119    //
    114     VOID *NewBuffer;
     120    VOID  *NewBuffer;
    115121
    116122    //
    117123    // Try again with a properly aligned buffer.
    118124    //
    119     NewBuffer = AllocateAlignedPages((BufferSize + EFI_PAGE_SIZE) / EFI_PAGE_SIZE,
    120                                      Media->IoAlign);
     125    NewBuffer = AllocateAlignedPages (
     126                  (BufferSize + EFI_PAGE_SIZE) / EFI_PAGE_SIZE,
     127                  Media->IoAlign
     128                  );
    121129    if (!IsWrite) {
    122       Status = XenPvBlkDxeBlockIoReadBlocks (This, MediaId,
    123                                              Lba, BufferSize, NewBuffer);
     130      Status = XenPvBlkDxeBlockIoReadBlocks (
     131                 This,
     132                 MediaId,
     133                 Lba,
     134                 BufferSize,
     135                 NewBuffer
     136                 );
    124137      CopyMem (Buffer, NewBuffer, BufferSize);
    125138    } else {
    126139      CopyMem (NewBuffer, Buffer, BufferSize);
    127       Status = XenPvBlkDxeBlockIoWriteBlocks (This, MediaId,
    128                                               Lba, BufferSize, NewBuffer);
     140      Status = XenPvBlkDxeBlockIoWriteBlocks (
     141                 This,
     142                 MediaId,
     143                 Lba,
     144                 BufferSize,
     145                 NewBuffer
     146                 );
    129147    }
     148
    130149    FreeAlignedPages (NewBuffer, (BufferSize + EFI_PAGE_SIZE) / EFI_PAGE_SIZE);
    131150    return Status;
     
    133152
    134153  IoData.Dev = XEN_BLOCK_FRONT_FROM_BLOCK_IO (This);
    135   Sector = (UINTN)MultU64x32 (Lba, Media->BlockSize / 512);
     154  Sector     = (UINTN)MultU64x32 (Lba, Media->BlockSize / 512);
    136155
    137156  while (BufferSize > 0) {
    138157    if (((UINTN)Buffer & EFI_PAGE_MASK) == 0) {
    139       IoData.Size = MIN (BLKIF_MAX_SEGMENTS_PER_REQUEST * EFI_PAGE_SIZE,
    140                          BufferSize);
     158      IoData.Size = MIN (
     159                      BLKIF_MAX_SEGMENTS_PER_REQUEST * EFI_PAGE_SIZE,
     160                      BufferSize
     161                      );
    141162    } else {
    142       IoData.Size = MIN ((BLKIF_MAX_SEGMENTS_PER_REQUEST - 1) * EFI_PAGE_SIZE,
    143                          BufferSize);
     163      IoData.Size = MIN (
     164                      (BLKIF_MAX_SEGMENTS_PER_REQUEST - 1) * EFI_PAGE_SIZE,
     165                      BufferSize
     166                      );
    144167    }
    145168
    146169    IoData.Buffer = Buffer;
    147170    IoData.Sector = Sector;
    148     BufferSize -= IoData.Size;
    149     Buffer = (VOID*) ((UINTN) Buffer + IoData.Size);
    150     Sector += IoData.Size / 512;
    151     Status = XenPvBlockIo (&IoData, IsWrite);
     171    BufferSize   -= IoData.Size;
     172    Buffer        = (VOID *)((UINTN)Buffer + IoData.Size);
     173    Sector       += IoData.Size / 512;
     174    Status        = XenPvBlockIo (&IoData, IsWrite);
    152175    if (EFI_ERROR (Status)) {
    153       DEBUG ((DEBUG_ERROR, "XenPvBlkDxe: Error during %a operation.\n",
    154               IsWrite ? "write" : "read"));
     176      DEBUG ((
     177        DEBUG_ERROR,
     178        "XenPvBlkDxe: Error during %a operation.\n",
     179        IsWrite ? "write" : "read"
     180        ));
    155181      return Status;
    156182    }
    157183  }
     184
    158185  return EFI_SUCCESS;
    159186}
    160 
    161187
    162188/**
     
    182208EFIAPI
    183209XenPvBlkDxeBlockIoReadBlocks (
    184   IN  EFI_BLOCK_IO_PROTOCOL         *This,
    185   IN  UINT32                        MediaId,
    186   IN  EFI_LBA                       Lba,
    187   IN  UINTN                         BufferSize,
    188   OUT VOID                          *Buffer
    189   )
    190 {
    191   return XenPvBlkDxeBlockIoReadWriteBlocks (This,
    192       MediaId, Lba, BufferSize, Buffer, FALSE);
     210  IN  EFI_BLOCK_IO_PROTOCOL  *This,
     211  IN  UINT32                 MediaId,
     212  IN  EFI_LBA                Lba,
     213  IN  UINTN                  BufferSize,
     214  OUT VOID                   *Buffer
     215  )
     216{
     217  return XenPvBlkDxeBlockIoReadWriteBlocks (
     218           This,
     219           MediaId,
     220           Lba,
     221           BufferSize,
     222           Buffer,
     223           FALSE
     224           );
    193225}
    194226
     
    216248EFIAPI
    217249XenPvBlkDxeBlockIoWriteBlocks (
    218   IN EFI_BLOCK_IO_PROTOCOL          *This,
    219   IN UINT32                         MediaId,
    220   IN EFI_LBA                        Lba,
    221   IN UINTN                          BufferSize,
    222   IN VOID                           *Buffer
    223   )
    224 {
    225   return XenPvBlkDxeBlockIoReadWriteBlocks (This,
    226       MediaId, Lba, BufferSize, Buffer, TRUE);
     250  IN EFI_BLOCK_IO_PROTOCOL  *This,
     251  IN UINT32                 MediaId,
     252  IN EFI_LBA                Lba,
     253  IN UINTN                  BufferSize,
     254  IN VOID                   *Buffer
     255  )
     256{
     257  return XenPvBlkDxeBlockIoReadWriteBlocks (
     258           This,
     259           MediaId,
     260           Lba,
     261           BufferSize,
     262           Buffer,
     263           TRUE
     264           );
    227265}
    228266
     
    259297EFIAPI
    260298XenPvBlkDxeBlockIoReset (
    261   IN EFI_BLOCK_IO_PROTOCOL   *This,
    262   IN BOOLEAN                 ExtendedVerification
     299  IN EFI_BLOCK_IO_PROTOCOL  *This,
     300  IN BOOLEAN                ExtendedVerification
    263301  )
    264302{
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