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/Mtftp6Dxe/Mtftp6Support.c

    r85718 r99404  
    1010#include "Mtftp6Impl.h"
    1111
    12 
    1312/**
    1413  Allocate a MTFTP block range, then init it to the range of [Start, End].
     
    2221MTFTP6_BLOCK_RANGE *
    2322Mtftp6AllocateRange (
    24   IN UINT16                 Start,
    25   IN UINT16                 End
    26   )
    27 {
    28   MTFTP6_BLOCK_RANGE        *Range;
     23  IN UINT16  Start,
     24  IN UINT16  End
     25  )
     26{
     27  MTFTP6_BLOCK_RANGE  *Range;
    2928
    3029  Range = AllocateZeroPool (sizeof (MTFTP6_BLOCK_RANGE));
     
    3534
    3635  InitializeListHead (&Range->Link);
    37   Range->Start  = Start;
    38   Range->End    = End;
    39   Range->Bound  = End;
     36  Range->Start = Start;
     37  Range->End   = End;
     38  Range->Bound = End;
    4039
    4140  return Range;
    4241}
    43 
    4442
    4543/**
     
    6563EFI_STATUS
    6664Mtftp6InitBlockRange (
    67   IN LIST_ENTRY             *Head,
    68   IN UINT16                 Start,
    69   IN UINT16                 End
    70   )
    71 {
    72   MTFTP6_BLOCK_RANGE        *Range;
     65  IN LIST_ENTRY  *Head,
     66  IN UINT16      Start,
     67  IN UINT16      End
     68  )
     69{
     70  MTFTP6_BLOCK_RANGE  *Range;
    7371
    7472  Range = Mtftp6AllocateRange (Start, End);
     
    8280}
    8381
    84 
    8582/**
    8683  Get the first valid block number on the range list.
     
    9491INTN
    9592Mtftp6GetNextBlockNum (
    96   IN LIST_ENTRY              *Head
     93  IN LIST_ENTRY  *Head
    9794  )
    9895{
     
    106103  return Range->Start;
    107104}
    108 
    109105
    110106/**
     
    121117VOID
    122118Mtftp6SetLastBlockNum (
    123   IN LIST_ENTRY             *Head,
    124   IN UINT16                 Last
    125   )
    126 {
    127   MTFTP6_BLOCK_RANGE        *Range;
     119  IN LIST_ENTRY  *Head,
     120  IN UINT16      Last
     121  )
     122{
     123  MTFTP6_BLOCK_RANGE  *Range;
    128124
    129125  //
     
    143139      Range->End = Last;
    144140    }
    145     return ;
    146   }
    147 }
    148 
     141
     142    return;
     143  }
     144}
    149145
    150146/**
     
    163159EFI_STATUS
    164160Mtftp6RemoveBlockNum (
    165   IN LIST_ENTRY             *Head,
    166   IN UINT16                 Num,
    167   IN BOOLEAN                Completed,
    168   OUT UINT64                *BlockCounter
    169   )
    170 {
    171   MTFTP6_BLOCK_RANGE        *Range;
    172   MTFTP6_BLOCK_RANGE        *NewRange;
    173   LIST_ENTRY                *Entry;
     161  IN LIST_ENTRY  *Head,
     162  IN UINT16      Num,
     163  IN BOOLEAN     Completed,
     164  OUT UINT64     *BlockCounter
     165  )
     166{
     167  MTFTP6_BLOCK_RANGE  *Range;
     168  MTFTP6_BLOCK_RANGE  *NewRange;
     169  LIST_ENTRY          *Entry;
    174170
    175171  NET_LIST_FOR_EACH (Entry, Head) {
    176 
    177172    //
    178173    // Each block represents a hole [Start, End] in the file,
     
    203198    if (Range->Start > Num) {
    204199      return EFI_NOT_FOUND;
    205 
    206200    } else if (Range->Start == Num) {
    207201      Range->Start++;
     
    215209      // this solution.
    216210      //
    217       *BlockCounter  = Num;
     211      *BlockCounter = Num;
    218212
    219213      if (Range->Round > 0) {
     
    223217      if (Range->Start > Range->Bound) {
    224218        Range->Start = 0;
    225         Range->Round ++;
     219        Range->Round++;
    226220      }
    227221
     
    232226
    233227      return EFI_SUCCESS;
    234 
    235228    } else {
    236229      if (Range->End == Num) {
    237230        Range->End--;
    238231      } else {
    239         NewRange = Mtftp6AllocateRange ((UINT16) (Num + 1), (UINT16) Range->End);
     232        NewRange = Mtftp6AllocateRange ((UINT16)(Num + 1), (UINT16)Range->End);
    240233
    241234        if (NewRange == NULL) {
     
    254247}
    255248
    256 
    257249/**
    258250  Configure the opened Udp6 instance until the corresponding Ip6 instance
     
    269261EFI_STATUS
    270262Mtftp6GetMapping (
    271   IN UDP_IO                 *UdpIo,
    272   IN EFI_UDP6_CONFIG_DATA   *UdpCfgData
    273   )
    274 {
    275   EFI_IP6_MODE_DATA         Ip6Mode;
    276   EFI_UDP6_PROTOCOL         *Udp6;
    277   EFI_STATUS                Status;
    278   EFI_EVENT                 Event;
    279 
    280   Event  = NULL;
    281   Udp6   = UdpIo->Protocol.Udp6;
     263  IN UDP_IO                *UdpIo,
     264  IN EFI_UDP6_CONFIG_DATA  *UdpCfgData
     265  )
     266{
     267  EFI_IP6_MODE_DATA  Ip6Mode;
     268  EFI_UDP6_PROTOCOL  *Udp6;
     269  EFI_STATUS         Status;
     270  EFI_EVENT          Event;
     271
     272  Event = NULL;
     273  Udp6  = UdpIo->Protocol.Udp6;
    282274
    283275  //
     
    308300  //
    309301  while (EFI_ERROR (gBS->CheckEvent (Event))) {
    310 
    311302    Udp6->Poll (Udp6);
    312303
     
    338329      }
    339330
    340       if  (Ip6Mode.IsConfigured) {
     331      if (Ip6Mode.IsConfigured) {
    341332        //
    342333        // Continue to configure the Udp6 instance.
     
    358349}
    359350
    360 
    361351/**
    362352  The dummy configure routine for create a new Udp6 Io.
     
    371361EFIAPI
    372362Mtftp6ConfigDummyUdpIo (
    373   IN UDP_IO                 *UdpIo,
    374   IN VOID                   *Context
     363  IN UDP_IO  *UdpIo,
     364  IN VOID    *Context
    375365  )
    376366{
    377367  return EFI_SUCCESS;
    378368}
    379 
    380369
    381370/**
     
    395384EFI_STATUS
    396385Mtftp6ConfigUdpIo (
    397   IN UDP_IO                 *UdpIo,
    398   IN EFI_IPv6_ADDRESS       *ServerIp,
    399   IN UINT16                 ServerPort,
    400   IN EFI_IPv6_ADDRESS       *LocalIp,
    401   IN UINT16                 LocalPort
    402   )
    403 {
    404   EFI_STATUS                Status;
    405   EFI_UDP6_PROTOCOL         *Udp6;
    406   EFI_UDP6_CONFIG_DATA      *Udp6Cfg;
     386  IN UDP_IO            *UdpIo,
     387  IN EFI_IPv6_ADDRESS  *ServerIp,
     388  IN UINT16            ServerPort,
     389  IN EFI_IPv6_ADDRESS  *LocalIp,
     390  IN UINT16            LocalPort
     391  )
     392{
     393  EFI_STATUS            Status;
     394  EFI_UDP6_PROTOCOL     *Udp6;
     395  EFI_UDP6_CONFIG_DATA  *Udp6Cfg;
    407396
    408397  Udp6    = UdpIo->Protocol.Udp6;
     
    442431
    443432  if (Status == EFI_NO_MAPPING) {
    444 
    445433    return Mtftp6GetMapping (UdpIo, Udp6Cfg);
    446434  }
     
    448436  return Status;
    449437}
    450 
    451438
    452439/**
     
    463450EFI_STATUS
    464451Mtftp6SendRequest (
    465   IN MTFTP6_INSTANCE        *Instance,
    466   IN UINT16                 Operation
    467   )
    468 {
    469   EFI_MTFTP6_PACKET         *Packet;
    470   EFI_MTFTP6_OPTION         *Options;
    471   EFI_MTFTP6_TOKEN          *Token;
    472   RETURN_STATUS             Status;
    473   NET_BUF                   *Nbuf;
    474   UINT8                     *Mode;
    475   UINT8                     *Cur;
    476   UINTN                     Index;
    477   UINT32                    BufferLength;
    478   UINTN                     FileNameLength;
    479   UINTN                     ModeLength;
    480   UINTN                     OptionStrLength;
    481   UINTN                     ValueStrLength;
     452  IN MTFTP6_INSTANCE  *Instance,
     453  IN UINT16           Operation
     454  )
     455{
     456  EFI_MTFTP6_PACKET  *Packet;
     457  EFI_MTFTP6_OPTION  *Options;
     458  EFI_MTFTP6_TOKEN   *Token;
     459  RETURN_STATUS      Status;
     460  NET_BUF            *Nbuf;
     461  UINT8              *Mode;
     462  UINT8              *Cur;
     463  UINTN              Index;
     464  UINT32             BufferLength;
     465  UINTN              FileNameLength;
     466  UINTN              ModeLength;
     467  UINTN              OptionStrLength;
     468  UINTN              ValueStrLength;
    482469
    483470  Token   = Instance->Token;
     
    486473
    487474  if (Mode == NULL) {
    488     Mode = (UINT8 *) "octet";
     475    Mode = (UINT8 *)"octet";
    489476  }
    490477
     
    508495  // Compute the size of new Mtftp6 packet.
    509496  //
    510   FileNameLength = AsciiStrLen ((CHAR8 *) Token->Filename);
    511   ModeLength     = AsciiStrLen ((CHAR8 *) Mode);
    512   BufferLength   = (UINT32) FileNameLength + (UINT32) ModeLength + 4;
     497  FileNameLength = AsciiStrLen ((CHAR8 *)Token->Filename);
     498  ModeLength     = AsciiStrLen ((CHAR8 *)Mode);
     499  BufferLength   = (UINT32)FileNameLength + (UINT32)ModeLength + 4;
    513500
    514501  for (Index = 0; Index < Token->OptionCount; Index++) {
    515     OptionStrLength = AsciiStrLen ((CHAR8 *) Options[Index].OptionStr);
    516     ValueStrLength  = AsciiStrLen ((CHAR8 *) Options[Index].ValueStr);
    517     BufferLength   += (UINT32) OptionStrLength + (UINT32) ValueStrLength + 2;
     502    OptionStrLength = AsciiStrLen ((CHAR8 *)Options[Index].OptionStr);
     503    ValueStrLength  = AsciiStrLen ((CHAR8 *)Options[Index].ValueStr);
     504    BufferLength   += (UINT32)OptionStrLength + (UINT32)ValueStrLength + 2;
    518505  }
    519506
     
    528515  // Copy the opcode, filename and mode into packet.
    529516  //
    530   Packet         = (EFI_MTFTP6_PACKET *) NetbufAllocSpace (Nbuf, BufferLength, FALSE);
     517  Packet = (EFI_MTFTP6_PACKET *)NetbufAllocSpace (Nbuf, BufferLength, FALSE);
    531518  ASSERT (Packet != NULL);
    532519
     
    534521  BufferLength  -= sizeof (Packet->OpCode);
    535522
    536   Cur            = Packet->Rrq.Filename;
    537   Status         = AsciiStrCpyS ((CHAR8 *) Cur, BufferLength, (CHAR8 *) Token->Filename);
     523  Cur    = Packet->Rrq.Filename;
     524  Status = AsciiStrCpyS ((CHAR8 *)Cur, BufferLength, (CHAR8 *)Token->Filename);
    538525  ASSERT_EFI_ERROR (Status);
    539   BufferLength  -= (UINT32) (FileNameLength + 1);
    540   Cur           += FileNameLength + 1;
    541   Status         = AsciiStrCpyS ((CHAR8 *) Cur, BufferLength, (CHAR8 *) Mode);
     526  BufferLength -= (UINT32)(FileNameLength + 1);
     527  Cur          += FileNameLength + 1;
     528  Status        = AsciiStrCpyS ((CHAR8 *)Cur, BufferLength, (CHAR8 *)Mode);
    542529  ASSERT_EFI_ERROR (Status);
    543   BufferLength  -= (UINT32) (ModeLength + 1);
    544   Cur           += ModeLength + 1;
     530  BufferLength -= (UINT32)(ModeLength + 1);
     531  Cur          += ModeLength + 1;
    545532
    546533  //
     
    548535  //
    549536  for (Index = 0; Index < Token->OptionCount; ++Index) {
    550     OptionStrLength = AsciiStrLen ((CHAR8 *) Options[Index].OptionStr);
    551     ValueStrLength  = AsciiStrLen ((CHAR8 *) Options[Index].ValueStr);
    552 
    553     Status          = AsciiStrCpyS ((CHAR8 *) Cur, BufferLength, (CHAR8 *) Options[Index].OptionStr);
     537    OptionStrLength = AsciiStrLen ((CHAR8 *)Options[Index].OptionStr);
     538    ValueStrLength  = AsciiStrLen ((CHAR8 *)Options[Index].ValueStr);
     539
     540    Status = AsciiStrCpyS ((CHAR8 *)Cur, BufferLength, (CHAR8 *)Options[Index].OptionStr);
    554541    ASSERT_EFI_ERROR (Status);
    555     BufferLength   -= (UINT32) (OptionStrLength + 1);
    556     Cur            += OptionStrLength + 1;
    557 
    558     Status          = AsciiStrCpyS ((CHAR8 *) Cur, BufferLength, (CHAR8 *) Options[Index].ValueStr);
     542    BufferLength -= (UINT32)(OptionStrLength + 1);
     543    Cur          += OptionStrLength + 1;
     544
     545    Status = AsciiStrCpyS ((CHAR8 *)Cur, BufferLength, (CHAR8 *)Options[Index].ValueStr);
    559546    ASSERT_EFI_ERROR (Status);
    560     BufferLength   -= (UINT32) (ValueStrLength + 1);
    561     Cur            += ValueStrLength + 1;
    562 
     547    BufferLength -= (UINT32)(ValueStrLength + 1);
     548    Cur          += ValueStrLength + 1;
    563549  }
    564550
     
    575561  return Mtftp6TransmitPacket (Instance, Nbuf);
    576562}
    577 
    578563
    579564/**
     
    591576EFI_STATUS
    592577Mtftp6SendError (
    593   IN MTFTP6_INSTANCE        *Instance,
    594   IN UINT16                 ErrCode,
    595   IN UINT8*                 ErrInfo
    596   )
    597 {
    598   NET_BUF                   *Nbuf;
    599   EFI_MTFTP6_PACKET         *TftpError;
    600   UINT32                    Len;
     578  IN MTFTP6_INSTANCE  *Instance,
     579  IN UINT16           ErrCode,
     580  IN UINT8            *ErrInfo
     581  )
     582{
     583  NET_BUF            *Nbuf;
     584  EFI_MTFTP6_PACKET  *TftpError;
     585  UINT32             Len;
    601586
    602587  //
    603588  // Allocate a packet then copy the data.
    604589  //
    605   Len  = (UINT32) (AsciiStrLen ((CHAR8 *) ErrInfo) + sizeof (EFI_MTFTP6_ERROR_HEADER));
     590  Len  = (UINT32)(AsciiStrLen ((CHAR8 *)ErrInfo) + sizeof (EFI_MTFTP6_ERROR_HEADER));
    606591  Nbuf = NetbufAlloc (Len);
    607592
     
    610595  }
    611596
    612   TftpError = (EFI_MTFTP6_PACKET *) NetbufAllocSpace (Nbuf, Len, FALSE);
     597  TftpError = (EFI_MTFTP6_PACKET *)NetbufAllocSpace (Nbuf, Len, FALSE);
    613598
    614599  if (TftpError == NULL) {
     
    620605  TftpError->Error.ErrorCode = HTONS (ErrCode);
    621606
    622   AsciiStrCpyS ((CHAR8 *) TftpError->Error.ErrorMessage, AsciiStrLen ((CHAR8 *) ErrInfo) + 1 , (CHAR8 *) ErrInfo);
     607  AsciiStrCpyS ((CHAR8 *)TftpError->Error.ErrorMessage, AsciiStrLen ((CHAR8 *)ErrInfo) + 1, (CHAR8 *)ErrInfo);
    623608
    624609  //
     
    634619  return Mtftp6TransmitPacket (Instance, Nbuf);
    635620}
    636 
    637621
    638622/**
     
    648632EFIAPI
    649633Mtftp6OnPacketSent (
    650   IN NET_BUF                   *Packet,
    651   IN UDP_END_POINT             *UdpEpt,
    652   IN EFI_STATUS                IoStatus,
    653   IN VOID                      *Context
     634  IN NET_BUF        *Packet,
     635  IN UDP_END_POINT  *UdpEpt,
     636  IN EFI_STATUS     IoStatus,
     637  IN VOID           *Context
    654638  )
    655639{
    656640  NetbufFree (Packet);
    657   *(BOOLEAN *) Context = TRUE;
    658 }
    659 
     641  *(BOOLEAN *)Context = TRUE;
     642}
    660643
    661644/**
     
    671654EFI_STATUS
    672655Mtftp6TransmitPacket (
    673   IN MTFTP6_INSTANCE        *Instance,
    674   IN NET_BUF                *Packet
    675   )
    676 {
    677   EFI_UDP6_PROTOCOL         *Udp6;
    678   EFI_UDP6_CONFIG_DATA      Udp6CfgData;
    679   EFI_STATUS                Status;
    680   UINT16                    *Temp;
    681   UINT16                    Value;
    682   UINT16                    OpCode;
    683 
    684   ZeroMem (&Udp6CfgData, sizeof(EFI_UDP6_CONFIG_DATA));
     656  IN MTFTP6_INSTANCE  *Instance,
     657  IN NET_BUF          *Packet
     658  )
     659{
     660  EFI_UDP6_PROTOCOL     *Udp6;
     661  EFI_UDP6_CONFIG_DATA  Udp6CfgData;
     662  EFI_STATUS            Status;
     663  UINT16                *Temp;
     664  UINT16                Value;
     665  UINT16                OpCode;
     666
     667  ZeroMem (&Udp6CfgData, sizeof (EFI_UDP6_CONFIG_DATA));
    685668  Udp6 = Instance->UdpIo->Protocol.Udp6;
    686669
     
    690673  Instance->PacketToLive = Instance->IsMaster ? Instance->Timeout : (Instance->Timeout * 2);
    691674
    692   Temp   = (UINT16 *) NetbufGetByte (Packet, 0, NULL);
     675  Temp = (UINT16 *)NetbufGetByte (Packet, 0, NULL);
    693676  ASSERT (Temp != NULL);
    694677
     
    696679  OpCode = NTOHS (Value);
    697680
    698   if (OpCode == EFI_MTFTP6_OPCODE_RRQ || OpCode == EFI_MTFTP6_OPCODE_DIR || OpCode == EFI_MTFTP6_OPCODE_WRQ) {
     681  if ((OpCode == EFI_MTFTP6_OPCODE_RRQ) || (OpCode == EFI_MTFTP6_OPCODE_DIR) || (OpCode == EFI_MTFTP6_OPCODE_WRQ)) {
    699682    //
    700683    // For the Rrq, Dir, Wrq requests of the operation, configure the Udp6Io as
     
    787770
    788771    if (Udp6CfgData.RemotePort != Instance->ServerDataPort) {
    789 
    790772      Status = Udp6->Configure (Udp6, NULL);
    791773
     
    839821}
    840822
    841 
    842823/**
    843824  Check packet for GetInfo callback routine.
     
    857838EFIAPI
    858839Mtftp6CheckPacket (
    859   IN EFI_MTFTP6_PROTOCOL    *This,
    860   IN EFI_MTFTP6_TOKEN       *Token,
    861   IN UINT16                 PacketLen,
    862   IN EFI_MTFTP6_PACKET      *Packet
    863   )
    864 {
    865   MTFTP6_GETINFO_CONTEXT    *Context;
    866   UINT16                    OpCode;
    867 
    868   Context = (MTFTP6_GETINFO_CONTEXT *) Token->Context;
     840  IN EFI_MTFTP6_PROTOCOL  *This,
     841  IN EFI_MTFTP6_TOKEN     *Token,
     842  IN UINT16               PacketLen,
     843  IN EFI_MTFTP6_PACKET    *Packet
     844  )
     845{
     846  MTFTP6_GETINFO_CONTEXT  *Context;
     847  UINT16                  OpCode;
     848
     849  Context = (MTFTP6_GETINFO_CONTEXT *)Token->Context;
    869850  OpCode  = NTOHS (Packet->OpCode);
    870851
     
    873854  //
    874855  switch (OpCode) {
    875   case EFI_MTFTP6_OPCODE_ERROR:
    876     Context->Status = EFI_TFTP_ERROR;
    877     break;
    878 
    879   case EFI_MTFTP6_OPCODE_OACK:
    880     Context->Status = EFI_SUCCESS;
    881     break;
    882 
    883   default:
    884     Context->Status = EFI_PROTOCOL_ERROR;
     856    case EFI_MTFTP6_OPCODE_ERROR:
     857      Context->Status = EFI_TFTP_ERROR;
     858      break;
     859
     860    case EFI_MTFTP6_OPCODE_OACK:
     861      Context->Status = EFI_SUCCESS;
     862      break;
     863
     864    default:
     865      Context->Status = EFI_PROTOCOL_ERROR;
    885866  }
    886867
     
    902883}
    903884
    904 
    905885/**
    906886  Clean up the current Mtftp6 operation.
     
    912892VOID
    913893Mtftp6OperationClean (
    914   IN MTFTP6_INSTANCE        *Instance,
    915   IN EFI_STATUS             Result
    916   )
    917 {
    918   LIST_ENTRY                *Entry;
    919   LIST_ENTRY                *Next;
    920   MTFTP6_BLOCK_RANGE        *Block;
     894  IN MTFTP6_INSTANCE  *Instance,
     895  IN EFI_STATUS       Result
     896  )
     897{
     898  LIST_ENTRY          *Entry;
     899  LIST_ENTRY          *Next;
     900  MTFTP6_BLOCK_RANGE  *Block;
    921901
    922902  //
     
    928908      gBS->SignalEvent (Instance->Token->Event);
    929909    }
     910
    930911    Instance->Token = NULL;
    931912  }
     
    986967}
    987968
    988 
    989969/**
    990970  Start the Mtftp6 instance to perform the operation, such as read file,
     
    1003983EFI_STATUS
    1004984Mtftp6OperationStart (
    1005   IN EFI_MTFTP6_PROTOCOL    *This,
    1006   IN EFI_MTFTP6_TOKEN       *Token,
    1007   IN UINT16                 OpCode
    1008   )
    1009 {
    1010   MTFTP6_INSTANCE           *Instance;
    1011   EFI_STATUS                Status;
    1012 
    1013   if (This == NULL ||
    1014       Token == NULL ||
    1015       Token->Filename == NULL ||
    1016       (Token->OptionCount != 0 && Token->OptionList == NULL) ||
    1017       (Token->OverrideData != NULL && !NetIp6IsValidUnicast (&Token->OverrideData->ServerIp))
    1018       ) {
     985  IN EFI_MTFTP6_PROTOCOL  *This,
     986  IN EFI_MTFTP6_TOKEN     *Token,
     987  IN UINT16               OpCode
     988  )
     989{
     990  MTFTP6_INSTANCE  *Instance;
     991  EFI_STATUS       Status;
     992
     993  if ((This == NULL) ||
     994      (Token == NULL) ||
     995      (Token->Filename == NULL) ||
     996      ((Token->OptionCount != 0) && (Token->OptionList == NULL)) ||
     997      ((Token->OverrideData != NULL) && !NetIp6IsValidUnicast (&Token->OverrideData->ServerIp))
     998      )
     999  {
    10191000    return EFI_INVALID_PARAMETER;
    10201001  }
     
    10231004  // At least define one method to collect the data for download.
    10241005  //
    1025   if ((OpCode == EFI_MTFTP6_OPCODE_RRQ || OpCode == EFI_MTFTP6_OPCODE_DIR) &&
    1026       Token->Buffer == NULL &&
    1027       Token->CheckPacket == NULL
    1028       ) {
     1006  if (((OpCode == EFI_MTFTP6_OPCODE_RRQ) || (OpCode == EFI_MTFTP6_OPCODE_DIR)) &&
     1007      (Token->Buffer == NULL) &&
     1008      (Token->CheckPacket == NULL)
     1009      )
     1010  {
    10291011    return EFI_INVALID_PARAMETER;
    10301012  }
     
    10331015  // At least define one method to provide the data for upload.
    10341016  //
    1035   if (OpCode == EFI_MTFTP6_OPCODE_WRQ && Token->Buffer == NULL && Token->PacketNeeded == NULL) {
     1017  if ((OpCode == EFI_MTFTP6_OPCODE_WRQ) && (Token->Buffer == NULL) && (Token->PacketNeeded == NULL)) {
    10361018    return EFI_INVALID_PARAMETER;
    10371019  }
     
    10561038  //
    10571039  if (Token->OptionCount != 0) {
    1058 
    10591040    Status = Mtftp6ParseExtensionOption (
    10601041               Token->OptionList,
     
    10731054  // Initialize runtime data from config data or override data.
    10741055  //
    1075   Instance->Token           = Token;
    1076   Instance->ServerCmdPort   = Instance->Config->InitialServerPort;
    1077   Instance->ServerDataPort  = 0;
    1078   Instance->MaxRetry        = Instance->Config->TryCount;
    1079   Instance->Timeout         = Instance->Config->TimeoutValue;
    1080   Instance->IsMaster        = TRUE;
     1056  Instance->Token          = Token;
     1057  Instance->ServerCmdPort  = Instance->Config->InitialServerPort;
     1058  Instance->ServerDataPort = 0;
     1059  Instance->MaxRetry       = Instance->Config->TryCount;
     1060  Instance->Timeout        = Instance->Config->TimeoutValue;
     1061  Instance->IsMaster       = TRUE;
    10811062
    10821063  CopyMem (
     
    11041085    Instance->ServerCmdPort = MTFTP6_DEFAULT_SERVER_CMD_PORT;
    11051086  }
     1087
    11061088  if (Instance->BlkSize == 0) {
    11071089    Instance->BlkSize = MTFTP6_DEFAULT_BLK_SIZE;
    11081090  }
     1091
    11091092  if (Instance->WindowSize == 0) {
    11101093    Instance->WindowSize = MTFTP6_DEFAULT_WINDOWSIZE;
    11111094  }
     1095
    11121096  if (Instance->MaxRetry == 0) {
    11131097    Instance->MaxRetry = MTFTP6_DEFAULT_MAX_RETRY;
    11141098  }
     1099
    11151100  if (Instance->Timeout == 0) {
    11161101    Instance->Timeout = MTFTP6_DEFAULT_TIMEOUT;
     
    11231108  //
    11241109  switch (OpCode) {
    1125   case EFI_MTFTP6_OPCODE_RRQ:
    1126     Status = Mtftp6RrqStart (Instance, OpCode);
    1127     break;
    1128 
    1129   case EFI_MTFTP6_OPCODE_DIR:
    1130     Status = Mtftp6RrqStart (Instance, OpCode);
    1131     break;
    1132 
    1133   case EFI_MTFTP6_OPCODE_WRQ:
    1134     Status = Mtftp6WrqStart (Instance, OpCode);
    1135     break;
    1136 
    1137   default:
    1138     Status = EFI_DEVICE_ERROR;
    1139     goto ON_ERROR;
     1110    case EFI_MTFTP6_OPCODE_RRQ:
     1111      Status = Mtftp6RrqStart (Instance, OpCode);
     1112      break;
     1113
     1114    case EFI_MTFTP6_OPCODE_DIR:
     1115      Status = Mtftp6RrqStart (Instance, OpCode);
     1116      break;
     1117
     1118    case EFI_MTFTP6_OPCODE_WRQ:
     1119      Status = Mtftp6WrqStart (Instance, OpCode);
     1120      break;
     1121
     1122    default:
     1123      Status = EFI_DEVICE_ERROR;
     1124      goto ON_ERROR;
    11401125  }
    11411126
     
    11531138      This->Poll (This);
    11541139    }
     1140
    11551141    return Token->Status;
    11561142  }
     
    11651151  return Status;
    11661152}
    1167 
    11681153
    11691154/**
     
    11771162EFIAPI
    11781163Mtftp6OnTimerTick (
    1179   IN EFI_EVENT              Event,
    1180   IN VOID                   *Context
    1181   )
    1182 {
    1183   MTFTP6_SERVICE            *Service;
    1184   MTFTP6_INSTANCE           *Instance;
    1185   LIST_ENTRY                *Entry;
    1186   LIST_ENTRY                *Next;
    1187   EFI_MTFTP6_TOKEN          *Token;
    1188   EFI_STATUS                Status;
    1189 
    1190   Service = (MTFTP6_SERVICE *) Context;
     1164  IN EFI_EVENT  Event,
     1165  IN VOID       *Context
     1166  )
     1167{
     1168  MTFTP6_SERVICE    *Service;
     1169  MTFTP6_INSTANCE   *Instance;
     1170  LIST_ENTRY        *Entry;
     1171  LIST_ENTRY        *Next;
     1172  EFI_MTFTP6_TOKEN  *Token;
     1173  EFI_STATUS        Status;
     1174
     1175  Service = (MTFTP6_SERVICE *)Context;
    11911176
    11921177  //
     
    11951180  //
    11961181  NET_LIST_FOR_EACH_SAFE (Entry, Next, &Service->Children) {
    1197 
    11981182    Instance = NET_LIST_USER_STRUCT (Entry, MTFTP6_INSTANCE, Link);
    11991183
     
    12181202      if (EFI_ERROR (Status)) {
    12191203        Mtftp6SendError (
    1220            Instance,
    1221            EFI_MTFTP6_ERRORCODE_REQUEST_DENIED,
    1222            (UINT8 *) "User aborted the transfer in time out"
    1223            );
     1204          Instance,
     1205          EFI_MTFTP6_ERRORCODE_REQUEST_DENIED,
     1206          (UINT8 *)"User aborted the transfer in time out"
     1207          );
    12241208        Mtftp6OperationClean (Instance, EFI_ABORTED);
    12251209        continue;
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