VirtualBox

Ignore:
Timestamp:
Apr 14, 2023 3:17:44 PM (22 months ago)
Author:
vboxsync
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/IScsiDhcp6.c

    r85718 r99404  
    88
    99#include "IScsiImpl.h"
    10 
    1110
    1211/**
     
    3029  IN     CHAR8                        *RootPath,
    3130  IN     UINT16                       Length,
    32   IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
     31  IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA  *ConfigData
    3332  )
    3433{
    35   EFI_STATUS                  Status;
    36   UINT16                      IScsiRootPathIdLen;
    37   CHAR8                       *TmpStr;
    38   ISCSI_ROOT_PATH_FIELD       Fields[RP_FIELD_IDX_MAX];
    39   ISCSI_ROOT_PATH_FIELD       *Field;
    40   UINT32                      FieldIndex;
    41   UINT8                       Index;
    42   ISCSI_SESSION_CONFIG_NVDATA *ConfigNvData;
    43   EFI_IP_ADDRESS              Ip;
    44   UINT8                       IpMode;
    45 
    46   ConfigNvData = &ConfigData->SessionConfigData;
     34  EFI_STATUS                   Status;
     35  UINT16                       IScsiRootPathIdLen;
     36  CHAR8                        *TmpStr;
     37  ISCSI_ROOT_PATH_FIELD        Fields[RP_FIELD_IDX_MAX];
     38  ISCSI_ROOT_PATH_FIELD        *Field;
     39  UINT32                       FieldIndex;
     40  UINT8                        Index;
     41  ISCSI_SESSION_CONFIG_NVDATA  *ConfigNvData;
     42  EFI_IP_ADDRESS               Ip;
     43  UINT8                        IpMode;
     44
     45  ConfigNvData          = &ConfigData->SessionConfigData;
    4746  ConfigNvData->DnsMode = FALSE;
    4847  //
    4948  // "iscsi:"<servername>":"<protocol>":"<port>":"<LUN>":"<targetname>
    5049  //
    51   IScsiRootPathIdLen = (UINT16) AsciiStrLen (ISCSI_ROOT_PATH_ID);
     50  IScsiRootPathIdLen = (UINT16)AsciiStrLen (ISCSI_ROOT_PATH_ID);
    5251
    5352  if ((Length <= IScsiRootPathIdLen) ||
    54       (CompareMem (RootPath, ISCSI_ROOT_PATH_ID, IScsiRootPathIdLen) != 0)) {
     53      (CompareMem (RootPath, ISCSI_ROOT_PATH_ID, IScsiRootPathIdLen) != 0))
     54  {
    5555    return EFI_NOT_FOUND;
    5656  }
     57
    5758  //
    5859  // Skip the iSCSI RootPath ID "iscsi:".
    5960  //
    6061  RootPath = RootPath + IScsiRootPathIdLen;
    61   Length   = (UINT16) (Length - IScsiRootPathIdLen);
    62 
    63   TmpStr   = (CHAR8 *) AllocatePool (Length + 1);
     62  Length   = (UINT16)(Length - IScsiRootPathIdLen);
     63
     64  TmpStr = (CHAR8 *)AllocatePool (Length + 1);
    6465  if (TmpStr == NULL) {
    6566    return EFI_OUT_OF_RESOURCES;
     
    6768
    6869  CopyMem (TmpStr, RootPath, Length);
    69   TmpStr[Length]  = '\0';
    70 
    71   Index           = 0;
    72   FieldIndex      = 0;
     70  TmpStr[Length] = '\0';
     71
     72  Index      = 0;
     73  FieldIndex = 0;
    7374  ZeroMem (&Fields[0], sizeof (Fields));
    7475
     
    8889
    8990  if (!ConfigNvData->DnsMode) {
    90     while ((TmpStr[Index] != ISCSI_ROOT_PATH_ADDR_END_DELIMITER)&& (Index < Length)) {
     91    while ((TmpStr[Index] != ISCSI_ROOT_PATH_ADDR_END_DELIMITER) && (Index < Length)) {
    9192      Index++;
    9293    }
     
    9697    //
    9798    TmpStr[Index] = '\0';
    98     Index += 2;
     99    Index        += 2;
    99100  } else {
    100101    while ((TmpStr[Index] != ISCSI_ROOT_PATH_FIELD_DELIMITER) && (Index < Length)) {
    101102      Index++;
    102103    }
     104
    103105    //
    104106    // Skip ':'.
    105107    //
    106108    TmpStr[Index] = '\0';
    107     Index += 1;
    108   }
    109 
    110   Fields[RP_FIELD_IDX_SERVERNAME].Len = (UINT8) AsciiStrLen (Fields[RP_FIELD_IDX_SERVERNAME].Str);
     109    Index        += 1;
     110  }
     111
     112  Fields[RP_FIELD_IDX_SERVERNAME].Len = (UINT8)AsciiStrLen (Fields[RP_FIELD_IDX_SERVERNAME].Str);
    111113
    112114  //
     
    114116  //
    115117  for (FieldIndex = 1; (FieldIndex < RP_FIELD_IDX_MAX) && (Index < Length); FieldIndex++) {
    116 
    117118    if (TmpStr[Index] != ISCSI_ROOT_PATH_FIELD_DELIMITER) {
    118119      Fields[FieldIndex].Str = &TmpStr[Index];
     
    130131
    131132      if (Fields[FieldIndex].Str != NULL) {
    132         Fields[FieldIndex].Len = (UINT8) AsciiStrLen (Fields[FieldIndex].Str);
     133        Fields[FieldIndex].Len = (UINT8)AsciiStrLen (Fields[FieldIndex].Str);
    133134      }
    134135    }
     
    143144      (Fields[RP_FIELD_IDX_TARGETNAME].Str == NULL) ||
    144145      (Fields[RP_FIELD_IDX_PROTOCOL].Len > 1)
    145       ) {
    146 
     146      )
     147  {
    147148    Status = EFI_INVALID_PARAMETER;
    148149    goto ON_EXIT;
    149150  }
     151
    150152  //
    151153  // Get the IP address of the target.
    152154  //
    153   Field   = &Fields[RP_FIELD_IDX_SERVERNAME];
     155  Field = &Fields[RP_FIELD_IDX_SERVERNAME];
    154156  if (ConfigNvData->IpMode < IP_MODE_AUTOCONFIG) {
    155157    IpMode = ConfigNvData->IpMode;
     
    165167      return EFI_INVALID_PARAMETER;
    166168    }
     169
    167170    CopyMem (&ConfigNvData->TargetUrl, Field->Str, Field->Len);
    168171    ConfigNvData->TargetUrl[Field->Len + 1] = '\0';
    169172  } else {
    170     ZeroMem(&ConfigNvData->TargetUrl, sizeof (ConfigNvData->TargetUrl));
     173    ZeroMem (&ConfigNvData->TargetUrl, sizeof (ConfigNvData->TargetUrl));
    171174    Status = IScsiAsciiStrToIp (Field->Str, IpMode, &Ip);
    172175    CopyMem (&ConfigNvData->TargetIp, &Ip, sizeof (EFI_IP_ADDRESS));
     
    185188    goto ON_EXIT;
    186189  }
     190
    187191  //
    188192  // Get the port of the iSCSI target.
     
    190194  Field = &Fields[RP_FIELD_IDX_PORT];
    191195  if (Field->Str != NULL) {
    192     ConfigNvData->TargetPort = (UINT16) AsciiStrDecimalToUintn (Field->Str);
     196    ConfigNvData->TargetPort = (UINT16)AsciiStrDecimalToUintn (Field->Str);
    193197  } else {
    194198    ConfigNvData->TargetPort = ISCSI_WELL_KNOWN_PORT;
    195199  }
     200
    196201  //
    197202  // Get the LUN.
     
    206211    ZeroMem (ConfigNvData->BootLun, sizeof (ConfigNvData->BootLun));
    207212  }
     213
    208214  //
    209215  // Get the target iSCSI Name.
     
    215221    goto ON_EXIT;
    216222  }
     223
    217224  //
    218225  // Validate the iSCSI name.
     
    259266EFIAPI
    260267IScsiDhcp6ParseReply (
    261   IN EFI_DHCP6_PROTOCOL          *This,
    262   IN VOID                        *Context,
    263   IN EFI_DHCP6_PACKET            *Packet
     268  IN EFI_DHCP6_PROTOCOL  *This,
     269  IN VOID                *Context,
     270  IN EFI_DHCP6_PACKET    *Packet
    264271  )
    265272{
    266   EFI_STATUS                  Status;
    267   UINT32                      Index;
    268   UINT32                      OptionCount;
    269   EFI_DHCP6_PACKET_OPTION     *BootFileOpt;
    270   EFI_DHCP6_PACKET_OPTION     **OptionList;
    271   ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData;
    272   UINT16                      ParaLen;
     273  EFI_STATUS                   Status;
     274  UINT32                       Index;
     275  UINT32                       OptionCount;
     276  EFI_DHCP6_PACKET_OPTION      *BootFileOpt;
     277  EFI_DHCP6_PACKET_OPTION      **OptionList;
     278  ISCSI_ATTEMPT_CONFIG_NVDATA  *ConfigData;
     279  UINT16                       ParaLen;
    273280
    274281  OptionCount = 0;
    275282  BootFileOpt = NULL;
    276283
    277   Status      = This->Parse (This, Packet, &OptionCount, NULL);
     284  Status = This->Parse (This, Packet, &OptionCount, NULL);
    278285  if (Status != EFI_BUFFER_TOO_SMALL) {
    279286    return EFI_NOT_READY;
     
    291298  }
    292299
    293   ConfigData = (ISCSI_ATTEMPT_CONFIG_NVDATA *) Context;
     300  ConfigData = (ISCSI_ATTEMPT_CONFIG_NVDATA *)Context;
    294301
    295302  for (Index = 0; Index < OptionCount; Index++) {
     
    301308    //
    302309    if (OptionList[Index]->OpCode == DHCP6_OPT_DNS_SERVERS) {
    303 
    304310      if (((OptionList[Index]->OpLen & 0xf) != 0) || (OptionList[Index]->OpLen == 0)) {
    305311        Status = EFI_UNSUPPORTED;
    306312        goto Exit;
    307313      }
     314
    308315      //
    309316      // Primary DNS server address.
     
    317324        CopyMem (&ConfigData->SecondaryDns, &OptionList[Index]->Data[16], sizeof (EFI_IPv6_ADDRESS));
    318325      }
    319 
    320326    } else if (OptionList[Index]->OpCode == DHCP6_OPT_BOOT_FILE_URL) {
    321327      //
     
    331337        goto Exit;
    332338      }
     339
    333340      //
    334341      // Check param-len 1, should be 16 bytes.
     
    353360  //
    354361  Status = IScsiDhcp6ExtractRootPath (
    355              (CHAR8 *) BootFileOpt->Data,
     362             (CHAR8 *)BootFileOpt->Data,
    356363             BootFileOpt->OpLen,
    357364             ConfigData
     
    363370  return Status;
    364371}
    365 
    366372
    367373/**
     
    384390EFI_STATUS
    385391IScsiDoDhcp6 (
    386   IN     EFI_HANDLE                  Image,
    387   IN     EFI_HANDLE                  Controller,
    388   IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData
     392  IN     EFI_HANDLE                   Image,
     393  IN     EFI_HANDLE                   Controller,
     394  IN OUT ISCSI_ATTEMPT_CONFIG_NVDATA  *ConfigData
    389395  )
    390396{
     
    436442                  Dhcp6Handle,
    437443                  &gEfiDhcp6ProtocolGuid,
    438                   (VOID **) &Dhcp6,
     444                  (VOID **)&Dhcp6,
    439445                  Image,
    440446                  Controller,
     
    494500
    495501    do {
    496 
    497502      TimerStatus = gBS->CheckEvent (Timer);
    498503
     
    510515                          );
    511516      }
    512 
    513517    } while (TimerStatus == EFI_NOT_READY);
    514 
    515518  }
    516519
     
    543546  return Status;
    544547}
    545 
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