VirtualBox

Ignore:
Timestamp:
Apr 14, 2023 3:17:44 PM (2 years 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/NetworkPkg/IScsiDxe/IScsiDhcp.c

    r85718 r99404  
    88
    99#include "IScsiImpl.h"
    10 
    1110
    1211/**
     
    2827  IN      CHAR8                        *RootPath,
    2928  IN      UINT8                        Length,
    30   IN OUT  ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
     29  IN OUT  ISCSI_ATTEMPT_CONFIG_NVDATA  *ConfigData
    3130  )
    3231{
    33   EFI_STATUS                  Status;
    34   UINT8                       IScsiRootPathIdLen;
    35   CHAR8                       *TmpStr;
    36   ISCSI_ROOT_PATH_FIELD       Fields[RP_FIELD_IDX_MAX];
    37   ISCSI_ROOT_PATH_FIELD       *Field;
    38   UINT32                      FieldIndex;
    39   UINT8                       Index;
    40   ISCSI_SESSION_CONFIG_NVDATA *ConfigNvData;
    41   EFI_IP_ADDRESS              Ip;
    42   UINT8                       IpMode;
     32  EFI_STATUS                   Status;
     33  UINT8                        IScsiRootPathIdLen;
     34  CHAR8                        *TmpStr;
     35  ISCSI_ROOT_PATH_FIELD        Fields[RP_FIELD_IDX_MAX];
     36  ISCSI_ROOT_PATH_FIELD        *Field;
     37  UINT32                       FieldIndex;
     38  UINT8                        Index;
     39  ISCSI_SESSION_CONFIG_NVDATA  *ConfigNvData;
     40  EFI_IP_ADDRESS               Ip;
     41  UINT8                        IpMode;
    4342
    4443  ConfigNvData = &ConfigData->SessionConfigData;
     
    4746  // "iscsi:"<servername>":"<protocol>":"<port>":"<LUN>":"<targetname>
    4847  //
    49   IScsiRootPathIdLen = (UINT8) AsciiStrLen (ISCSI_ROOT_PATH_ID);
     48  IScsiRootPathIdLen = (UINT8)AsciiStrLen (ISCSI_ROOT_PATH_ID);
    5049
    5150  if ((Length <= IScsiRootPathIdLen) || (CompareMem (RootPath, ISCSI_ROOT_PATH_ID, IScsiRootPathIdLen) != 0)) {
    5251    return EFI_NOT_FOUND;
    5352  }
     53
    5454  //
    5555  // Skip the iSCSI RootPath ID "iscsi:".
    5656  //
    5757  RootPath += IScsiRootPathIdLen;
    58   Length  = (UINT8) (Length - IScsiRootPathIdLen);
    59 
    60   TmpStr  = (CHAR8 *) AllocatePool (Length + 1);
     58  Length    = (UINT8)(Length - IScsiRootPathIdLen);
     59
     60  TmpStr = (CHAR8 *)AllocatePool (Length + 1);
    6161  if (TmpStr == NULL) {
    6262    return EFI_OUT_OF_RESOURCES;
     
    6464
    6565  CopyMem (TmpStr, RootPath, Length);
    66   TmpStr[Length]  = '\0';
    67 
    68   Index           = 0;
    69   FieldIndex      = RP_FIELD_IDX_SERVERNAME;
     66  TmpStr[Length] = '\0';
     67
     68  Index      = 0;
     69  FieldIndex = RP_FIELD_IDX_SERVERNAME;
    7070  ZeroMem (&Fields[0], sizeof (Fields));
    7171
     
    8989
    9090      if (Fields[FieldIndex].Str != NULL) {
    91         Fields[FieldIndex].Len = (UINT8) AsciiStrLen (Fields[FieldIndex].Str);
     91        Fields[FieldIndex].Len = (UINT8)AsciiStrLen (Fields[FieldIndex].Str);
    9292      }
    9393    }
     
    102102      (Fields[RP_FIELD_IDX_TARGETNAME].Str == NULL) ||
    103103      (Fields[RP_FIELD_IDX_PROTOCOL].Len > 1)
    104       ) {
    105 
     104      )
     105  {
    106106    Status = EFI_INVALID_PARAMETER;
    107107    goto ON_EXIT;
    108108  }
     109
    109110  //
    110111  // Get the IP address of the target.
    111112  //
    112   Field   = &Fields[RP_FIELD_IDX_SERVERNAME];
     113  Field = &Fields[RP_FIELD_IDX_SERVERNAME];
    113114
    114115  if (ConfigNvData->IpMode < IP_MODE_AUTOCONFIG) {
     
    126127      return EFI_INVALID_PARAMETER;
    127128    }
     129
    128130    CopyMem (&ConfigNvData->TargetUrl, Field->Str, Field->Len);
    129131    ConfigNvData->TargetUrl[Field->Len + 1] = '\0';
    130132  } else {
    131133    ConfigNvData->DnsMode = FALSE;
    132     ZeroMem(ConfigNvData->TargetUrl, sizeof (ConfigNvData->TargetUrl));
     134    ZeroMem (ConfigNvData->TargetUrl, sizeof (ConfigNvData->TargetUrl));
    133135    Status = IScsiAsciiStrToIp (Field->Str, IpMode, &Ip);
    134136    CopyMem (&ConfigNvData->TargetIp, &Ip, sizeof (EFI_IP_ADDRESS));
     
    138140    }
    139141  }
     142
    140143  //
    141144  // Check the protocol type.
     
    146149    goto ON_EXIT;
    147150  }
     151
    148152  //
    149153  // Get the port of the iSCSI target.
     
    151155  Field = &Fields[RP_FIELD_IDX_PORT];
    152156  if (Field->Str != NULL) {
    153     ConfigNvData->TargetPort = (UINT16) AsciiStrDecimalToUintn (Field->Str);
     157    ConfigNvData->TargetPort = (UINT16)AsciiStrDecimalToUintn (Field->Str);
    154158  } else {
    155159    ConfigNvData->TargetPort = ISCSI_WELL_KNOWN_PORT;
    156160  }
     161
    157162  //
    158163  // Get the LUN.
     
    167172    ZeroMem (ConfigNvData->BootLun, sizeof (ConfigNvData->BootLun));
    168173  }
     174
    169175  //
    170176  // Get the target iSCSI Name.
     
    176182    goto ON_EXIT;
    177183  }
     184
    178185  //
    179186  // Validate the iSCSI name.
     
    217224  IN  EFI_DHCP4_STATE     CurrentState,
    218225  IN  EFI_DHCP4_EVENT     Dhcp4Event,
    219   IN  EFI_DHCP4_PACKET    *Packet, OPTIONAL
     226  IN  EFI_DHCP4_PACKET    *Packet  OPTIONAL,
    220227  OUT EFI_DHCP4_PACKET    **NewPacket OPTIONAL
    221228  )
    222229{
    223   EFI_STATUS              Status;
    224   UINT32                  OptionCount;
    225   EFI_DHCP4_PACKET_OPTION **OptionList;
    226   UINT32                  Index;
     230  EFI_STATUS               Status;
     231  UINT32                   OptionCount;
     232  EFI_DHCP4_PACKET_OPTION  **OptionList;
     233  UINT32                   Index;
    227234
    228235  if ((Dhcp4Event != Dhcp4RcvdOffer) && (Dhcp4Event != Dhcp4SelectOffer)) {
     
    232239  OptionCount = 0;
    233240
    234   Status      = This->Parse (This, Packet, &OptionCount, NULL);
     241  Status = This->Parse (This, Packet, &OptionCount, NULL);
    235242  if (Status != EFI_BUFFER_TOO_SMALL) {
    236243    return EFI_NOT_READY;
     
    254261
    255262    Status = IScsiDhcpExtractRootPath (
    256                (CHAR8 *) &OptionList[Index]->Data[0],
     263               (CHAR8 *)&OptionList[Index]->Data[0],
    257264               OptionList[Index]->Length,
    258                (ISCSI_ATTEMPT_CONFIG_NVDATA *) Context
     265               (ISCSI_ATTEMPT_CONFIG_NVDATA *)Context
    259266               );
    260267
     
    286293EFI_STATUS
    287294IScsiParseDhcpAck (
    288   IN     EFI_DHCP4_PROTOCOL          *Dhcp4,
    289   IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
     295  IN     EFI_DHCP4_PROTOCOL           *Dhcp4,
     296  IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA  *ConfigData
    290297  )
    291298{
    292   EFI_STATUS                    Status;
    293   EFI_DHCP4_MODE_DATA           Dhcp4ModeData;
    294   UINT32                        OptionCount;
    295   EFI_DHCP4_PACKET_OPTION       **OptionList;
    296   UINT32                        Index;
    297   ISCSI_SESSION_CONFIG_NVDATA   *NvData;
     299  EFI_STATUS                   Status;
     300  EFI_DHCP4_MODE_DATA          Dhcp4ModeData;
     301  UINT32                       OptionCount;
     302  EFI_DHCP4_PACKET_OPTION      **OptionList;
     303  UINT32                       Index;
     304  ISCSI_SESSION_CONFIG_NVDATA  *NvData;
    298305
    299306  Status = Dhcp4->GetModeData (Dhcp4, &Dhcp4ModeData);
     
    315322  OptionList  = NULL;
    316323
    317   Status      = Dhcp4->Parse (Dhcp4, Dhcp4ModeData.ReplyPacket, &OptionCount, OptionList);
     324  Status = Dhcp4->Parse (Dhcp4, Dhcp4ModeData.ReplyPacket, &OptionCount, OptionList);
    318325  if (Status != EFI_BUFFER_TOO_SMALL) {
    319326    return EFI_DEVICE_ERROR;
     
    336343    //
    337344    if (OptionList[Index]->OpCode == DHCP4_TAG_DNS_SERVER) {
    338 
    339345      if (((OptionList[Index]->Length & 0x3) != 0) || (OptionList[Index]->Length == 0)) {
    340346        Status = EFI_INVALID_PARAMETER;
    341347        break;
    342348      }
     349
    343350      //
    344351      // Primary DNS server address.
     
    378385EFI_STATUS
    379386IScsiSetIp4Policy (
    380   IN EFI_IP4_CONFIG2_PROTOCOL        *Ip4Config2
     387  IN EFI_IP4_CONFIG2_PROTOCOL  *Ip4Config2
    381388  )
    382389{
    383   EFI_IP4_CONFIG2_POLICY          Policy;
    384   EFI_STATUS                      Status;
    385   UINTN                           DataSize;
     390  EFI_IP4_CONFIG2_POLICY  Policy;
     391  EFI_STATUS              Status;
     392  UINTN                   DataSize;
    386393
    387394  DataSize = sizeof (EFI_IP4_CONFIG2_POLICY);
    388   Status = Ip4Config2->GetData (
    389                          Ip4Config2,
    390                          Ip4Config2DataTypePolicy,
    391                          &DataSize,
    392                          &Policy
    393                          );
     395  Status   = Ip4Config2->GetData (
     396                           Ip4Config2,
     397                           Ip4Config2DataTypePolicy,
     398                           &DataSize,
     399                           &Policy
     400                           );
    394401  if (EFI_ERROR (Status)) {
    395402    return Status;
     
    398405  if (Policy != Ip4Config2PolicyStatic) {
    399406    Policy = Ip4Config2PolicyStatic;
    400     Status= Ip4Config2->SetData (
    401                           Ip4Config2,
    402                           Ip4Config2DataTypePolicy,
    403                           sizeof (EFI_IP4_CONFIG2_POLICY),
    404                           &Policy
    405                           );
     407    Status = Ip4Config2->SetData (
     408                           Ip4Config2,
     409                           Ip4Config2DataTypePolicy,
     410                           sizeof (EFI_IP4_CONFIG2_POLICY),
     411                           &Policy
     412                           );
    406413    if (EFI_ERROR (Status)) {
    407414      return Status;
     
    427434EFI_STATUS
    428435IScsiDoDhcp (
    429   IN     EFI_HANDLE                  Image,
    430   IN     EFI_HANDLE                  Controller,
    431   IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
     436  IN     EFI_HANDLE                   Image,
     437  IN     EFI_HANDLE                   Controller,
     438  IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA  *ConfigData
    432439  )
    433440{
    434   EFI_HANDLE                    Dhcp4Handle;
    435   EFI_IP4_CONFIG2_PROTOCOL      *Ip4Config2;
    436   EFI_DHCP4_PROTOCOL            *Dhcp4;
    437   EFI_STATUS                    Status;
    438   EFI_DHCP4_PACKET_OPTION       *ParaList;
    439   EFI_DHCP4_CONFIG_DATA         Dhcp4ConfigData;
    440   ISCSI_SESSION_CONFIG_NVDATA   *NvData;
    441   EFI_STATUS                    MediaStatus;
     441  EFI_HANDLE                   Dhcp4Handle;
     442  EFI_IP4_CONFIG2_PROTOCOL     *Ip4Config2;
     443  EFI_DHCP4_PROTOCOL           *Dhcp4;
     444  EFI_STATUS                   Status;
     445  EFI_DHCP4_PACKET_OPTION      *ParaList;
     446  EFI_DHCP4_CONFIG_DATA        Dhcp4ConfigData;
     447  ISCSI_SESSION_CONFIG_NVDATA  *NvData;
     448  EFI_STATUS                   MediaStatus;
    442449
    443450  Dhcp4Handle = NULL;
     
    451458  MediaStatus = EFI_SUCCESS;
    452459  NetLibDetectMediaWaitTimeout (Controller, ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus);
    453   if (MediaStatus!= EFI_SUCCESS) {
     460  if (MediaStatus != EFI_SUCCESS) {
    454461    AsciiPrint ("\n  Error: Could not detect network connection.\n");
    455462    return EFI_NO_MEDIA;
     
    463470  // So, we need to switch its policy to static.
    464471  //
    465   Status = gBS->HandleProtocol (Controller, &gEfiIp4Config2ProtocolGuid, (VOID **) &Ip4Config2);
     472  Status = gBS->HandleProtocol (Controller, &gEfiIp4Config2ProtocolGuid, (VOID **)&Ip4Config2);
    466473  if (!EFI_ERROR (Status)) {
    467474    Status = IScsiSetIp4Policy (Ip4Config2);
     
    487494                  Dhcp4Handle,
    488495                  &gEfiDhcp4ProtocolGuid,
    489                   (VOID **) &Dhcp4,
     496                  (VOID **)&Dhcp4,
    490497                  Image,
    491498                  Controller,
     
    496503  }
    497504
    498   NvData   = &ConfigData->SessionConfigData;
     505  NvData = &ConfigData->SessionConfigData;
    499506
    500507  ParaList = AllocatePool (sizeof (EFI_DHCP4_PACKET_OPTION) + 3);
     
    508515  //
    509516  ParaList->OpCode  = DHCP4_TAG_PARA_LIST;
    510   ParaList->Length  = (UINT8) (NvData->TargetInfoFromDhcp ? 4 : 3);
     517  ParaList->Length  = (UINT8)(NvData->TargetInfoFromDhcp ? 4 : 3);
    511518  ParaList->Data[0] = DHCP4_TAG_NETMASK;
    512519  ParaList->Data[1] = DHCP4_TAG_ROUTER;
     
    535542    goto ON_EXIT;
    536543  }
     544
    537545  //
    538546  // Parse the ACK to get required information.
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