]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcMtftp.c
MdeModulePkg: Delete UefiPxeBcDxe in MdeModulePkg.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcMtftp.c
diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcMtftp.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcMtftp.c
deleted file mode 100644 (file)
index 88767c8..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-/** @file\r
-  PxeBc MTFTP functions.\r
-\r
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#include "PxeBcImpl.h"\r
-\r
-CHAR8 *mMtftpOptions[PXE_MTFTP_OPTION_MAXIMUM_INDEX] = {\r
-  "blksize",\r
-  "timeout",\r
-  "tsize",\r
-  "multicast"\r
-};\r
-\r
-\r
-/**\r
-  This is a callback function when packets received/transmitted in Mtftp driver.\r
-\r
-  A callback function that is provided by the caller to intercept\r
-  the EFI_MTFTP4_OPCODE_DATA or EFI_MTFTP4_OPCODE_DATA8 packets processed in the\r
-  EFI_MTFTP4_PROTOCOL.ReadFile() function, and alternatively to intercept\r
-  EFI_MTFTP4_OPCODE_OACK or EFI_MTFTP4_OPCODE_ERROR packets during a call to\r
-  EFI_MTFTP4_PROTOCOL.ReadFile(), WriteFile() or ReadDirectory().\r
-\r
-  @param  This           Pointer to Mtftp protocol instance\r
-  @param  Token          Pointer to Mtftp token\r
-  @param  PacketLen      Length of Mtftp packet\r
-  @param  Packet         Pointer to Mtftp packet\r
-\r
-  @retval EFI_SUCCESS    Operation sucess\r
-  @retval EFI_ABORTED    Abort transfer process\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PxeBcCheckPacket (\r
-  IN EFI_MTFTP4_PROTOCOL        *This,\r
-  IN EFI_MTFTP4_TOKEN           *Token,\r
-  IN UINT16                     PacketLen,\r
-  IN EFI_MTFTP4_PACKET          *Packet\r
-  )\r
-{\r
-  PXEBC_PRIVATE_DATA                  *Private;\r
-  EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *Callback;\r
-  EFI_STATUS                          Status;\r
-\r
-  Private   = (PXEBC_PRIVATE_DATA *) Token->Context;\r
-  Callback  = Private->PxeBcCallback;\r
-  Status    = EFI_SUCCESS;\r
-\r
-  if (Packet->OpCode == EFI_MTFTP4_OPCODE_ERROR) {\r
-    Private->Mode.TftpErrorReceived = TRUE;\r
-    Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
-    AsciiStrnCpyS (Private->Mode.TftpError.ErrorString, PXE_MTFTP_ERROR_STRING_LENGTH, (CHAR8 *) Packet->Error.ErrorMessage, PXE_MTFTP_ERROR_STRING_LENGTH - 1);\r
-    Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';\r
-  }\r
-\r
-  if (Callback != NULL) {\r
-\r
-    Status = Callback->Callback (\r
-                        Callback,\r
-                        Private->Function,\r
-                        TRUE,\r
-                        PacketLen,\r
-                        (EFI_PXE_BASE_CODE_PACKET *) Packet\r
-                        );\r
-    if (Status != EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE) {\r
-\r
-      Status = EFI_ABORTED;\r
-    } else {\r
-\r
-      Status = EFI_SUCCESS;\r
-    }\r
-  }\r
-\r
-  return Status;\r
-}\r
-\r
-\r
-/**\r
-  This function is to get size of a file by Tftp.\r
-\r
-  @param  Private        Pointer to PxeBc private data\r
-  @param  Config         Pointer to Mtftp configuration data\r
-  @param  Filename       Pointer to file name\r
-  @param  BlockSize      Pointer to block size\r
-  @param  BufferSize     Pointer to buffer size\r
-\r
-  @retval EFI_SUCCESS        Get the size of file success\r
-  @retval EFI_NOT_FOUND      Parse the tftp ptions failed.\r
-  @retval EFI_DEVICE_ERROR   The network device encountered an error during this operation.\r
-  @retval Other              Has not get the size of the file.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcTftpGetFileSize (\r
-  IN PXEBC_PRIVATE_DATA         *Private,\r
-  IN EFI_MTFTP4_CONFIG_DATA     *Config,\r
-  IN UINT8                      *Filename,\r
-  IN UINTN                      *BlockSize,\r
-  IN OUT UINT64                 *BufferSize\r
-  )\r
-{\r
-  EFI_MTFTP4_PROTOCOL *Mtftp4;\r
-  EFI_MTFTP4_OPTION   ReqOpt[2];\r
-  EFI_MTFTP4_PACKET   *Packet;\r
-  EFI_MTFTP4_OPTION   *Option;\r
-  UINT32              PktLen;\r
-  UINT8               OptBuf[128];\r
-  UINT32              OptCnt;\r
-  EFI_STATUS          Status;\r
-\r
-  *BufferSize               = 0;\r
-  Status                    = EFI_DEVICE_ERROR;\r
-  Mtftp4                    = Private->Mtftp4;\r
-  Packet                    = NULL;\r
-  Option                    = NULL;\r
-  PktLen                    = 0;\r
-  OptCnt                    = 1;\r
-  Config->InitialServerPort = PXEBC_BS_DOWNLOAD_PORT;\r
-\r
-  Status = Mtftp4->Configure (Mtftp4, Config);\r
-  if (EFI_ERROR (Status)) {\r
-\r
-    return Status;\r
-  }\r
-\r
-  ReqOpt[0].OptionStr = (UINT8*)mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];\r
-  UtoA10 (0, (CHAR8 *) OptBuf, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
-  ReqOpt[0].ValueStr = OptBuf;\r
-\r
-  if (BlockSize != NULL) {\r
-    ReqOpt[1].OptionStr = (UINT8*)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
-    ReqOpt[1].ValueStr  = ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1;\r
-    UtoA10 (*BlockSize, (CHAR8 *) ReqOpt[1].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX - (AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1));\r
-    OptCnt++;\r
-  }\r
-\r
-  Status = Mtftp4->GetInfo (\r
-                    Mtftp4,\r
-                    NULL,\r
-                    Filename,\r
-                    NULL,\r
-                    (UINT8) OptCnt,\r
-                    ReqOpt,\r
-                    &PktLen,\r
-                    &Packet\r
-                    );\r
-\r
-  if (EFI_ERROR (Status)) {\r
-    if (Status == EFI_TFTP_ERROR) {\r
-      Private->Mode.TftpErrorReceived = TRUE;\r
-      Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
-      AsciiStrnCpyS (\r
-        Private->Mode.TftpError.ErrorString,\r
-        PXE_MTFTP_ERROR_STRING_LENGTH,\r
-        (CHAR8 *) Packet->Error.ErrorMessage,\r
-        PXE_MTFTP_ERROR_STRING_LENGTH - 1\r
-        );\r
-      Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';\r
-    }\r
-    goto ON_ERROR;\r
-  }\r
-\r
-  OptCnt = 0;\r
-\r
-  Status = Mtftp4->ParseOptions (\r
-                    Mtftp4,\r
-                    PktLen,\r
-                    Packet,\r
-                    (UINT32 *) &OptCnt,\r
-                    &Option\r
-                    );\r
-\r
-  if (EFI_ERROR (Status)) {\r
-\r
-    goto ON_ERROR;\r
-  }\r
-\r
-  Status = EFI_NOT_FOUND;\r
-\r
-  while (OptCnt != 0) {\r
-\r
-    if (AsciiStrnCmp ((CHAR8 *) Option[OptCnt - 1].OptionStr, "tsize", 5) == 0) {\r
-\r
-      *BufferSize = AtoU64 (Option[OptCnt - 1].ValueStr);\r
-      Status      = EFI_SUCCESS;\r
-    }\r
-\r
-    OptCnt--;\r
-  }\r
-\r
-  FreePool (Option);\r
-\r
-ON_ERROR:\r
-\r
-  if (Packet != NULL) {\r
-    FreePool (Packet);\r
-  }\r
-\r
-  Mtftp4->Configure (Mtftp4, NULL);\r
-\r
-  return Status;\r
-}\r
-\r
-\r
-/**\r
-  This function is to get data of a file by Tftp.\r
-\r
-  @param  Private        Pointer to PxeBc private data\r
-  @param  Config         Pointer to Mtftp configuration data\r
-  @param  Filename       Pointer to file name\r
-  @param  BlockSize      Pointer to block size\r
-  @param  BufferPtr      Pointer to buffer\r
-  @param  BufferSize     Pointer to buffer size\r
-  @param  DontUseBuffer  Indicate whether with a receive buffer\r
-\r
-  @retval EFI_SUCCESS        Read the data success from the special file.\r
-  @retval EFI_DEVICE_ERROR   The network device encountered an error during this operation.\r
-  @retval other              Read data from file failed.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcTftpReadFile (\r
-  IN PXEBC_PRIVATE_DATA         *Private,\r
-  IN EFI_MTFTP4_CONFIG_DATA     *Config,\r
-  IN UINT8                      *Filename,\r
-  IN UINTN                      *BlockSize,\r
-  IN UINT8                      *BufferPtr,\r
-  IN OUT UINT64                 *BufferSize,\r
-  IN BOOLEAN                    DontUseBuffer\r
-  )\r
-{\r
-  EFI_MTFTP4_PROTOCOL *Mtftp4;\r
-  EFI_MTFTP4_TOKEN    Token;\r
-  EFI_MTFTP4_OPTION   ReqOpt[1];\r
-  UINT32              OptCnt;\r
-  UINT8               OptBuf[128];\r
-  EFI_STATUS          Status;\r
-\r
-  Status                    = EFI_DEVICE_ERROR;\r
-  Mtftp4                    = Private->Mtftp4;\r
-  OptCnt                    = 0;\r
-  Config->InitialServerPort = PXEBC_BS_DOWNLOAD_PORT;\r
-\r
-  Status = Mtftp4->Configure (Mtftp4, Config);\r
-  if (EFI_ERROR (Status)) {\r
-\r
-    return Status;\r
-  }\r
-\r
-  if (BlockSize != NULL) {\r
-\r
-    ReqOpt[0].OptionStr = (UINT8*) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
-    ReqOpt[0].ValueStr  = OptBuf;\r
-    UtoA10 (*BlockSize, (CHAR8 *) ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
-    OptCnt++;\r
-  }\r
-\r
-  Token.Event         = NULL;\r
-  Token.OverrideData  = NULL;\r
-  Token.Filename      = Filename;\r
-  Token.ModeStr       = NULL;\r
-  Token.OptionCount   = OptCnt;\r
-  Token.OptionList    = ReqOpt;\r
-  Token.Context       = Private;\r
-\r
-  if (DontUseBuffer) {\r
-    Token.BufferSize  = 0;\r
-    Token.Buffer      = NULL;\r
-  } else {\r
-    Token.BufferSize  = *BufferSize;\r
-    Token.Buffer      = BufferPtr;\r
-  }\r
-\r
-  Token.CheckPacket     = PxeBcCheckPacket;\r
-  Token.TimeoutCallback = NULL;\r
-  Token.PacketNeeded    = NULL;\r
-\r
-  Status = Mtftp4->ReadFile (Mtftp4, &Token);\r
-\r
-  *BufferSize = Token.BufferSize;\r
-\r
-  Mtftp4->Configure (Mtftp4, NULL);\r
-\r
-  return Status;\r
-}\r
-\r
-\r
-/**\r
-  This function is put data of a file by Tftp.\r
-\r
-  @param  Private        Pointer to PxeBc private data\r
-  @param  Config         Pointer to Mtftp configuration data\r
-  @param  Filename       Pointer to file name\r
-  @param  Overwrite      Indicate whether with overwrite attribute\r
-  @param  BlockSize      Pointer to block size\r
-  @param  BufferPtr      Pointer to buffer\r
-  @param  BufferSize     Pointer to buffer size\r
-\r
-  @retval EFI_SUCCESS        Write the data success into the special file.\r
-  @retval EFI_DEVICE_ERROR   The network device encountered an error during this operation.\r
-  @retval other              Write data into file failed.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcTftpWriteFile (\r
-  IN PXEBC_PRIVATE_DATA         *Private,\r
-  IN EFI_MTFTP4_CONFIG_DATA     *Config,\r
-  IN UINT8                      *Filename,\r
-  IN BOOLEAN                    Overwrite,\r
-  IN UINTN                      *BlockSize,\r
-  IN UINT8                      *BufferPtr,\r
-  IN OUT UINT64                 *BufferSize\r
-  )\r
-{\r
-  EFI_MTFTP4_PROTOCOL *Mtftp4;\r
-  EFI_MTFTP4_TOKEN    Token;\r
-  EFI_MTFTP4_OPTION   ReqOpt[1];\r
-  UINT32              OptCnt;\r
-  UINT8               OptBuf[128];\r
-  EFI_STATUS          Status;\r
-\r
-  Status                    = EFI_DEVICE_ERROR;\r
-  Mtftp4                    = Private->Mtftp4;\r
-  OptCnt                    = 0;\r
-  Config->InitialServerPort = PXEBC_BS_DOWNLOAD_PORT;\r
-\r
-  Status  = Mtftp4->Configure (Mtftp4, Config);\r
-  if (EFI_ERROR (Status)) {\r
-\r
-    return Status;\r
-  }\r
-\r
-  if (BlockSize != NULL) {\r
-\r
-    ReqOpt[0].OptionStr = (UINT8*) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
-    ReqOpt[0].ValueStr  = OptBuf;\r
-    UtoA10 (*BlockSize, (CHAR8 *) ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
-    OptCnt++;\r
-  }\r
-\r
-  Token.Event           = NULL;\r
-  Token.OverrideData    = NULL;\r
-  Token.Filename        = Filename;\r
-  Token.ModeStr         = NULL;\r
-  Token.OptionCount     = OptCnt;\r
-  Token.OptionList      = ReqOpt;\r
-  Token.BufferSize      = *BufferSize;\r
-  Token.Buffer          = BufferPtr;\r
-  Token.CheckPacket     = PxeBcCheckPacket;\r
-  Token.TimeoutCallback = NULL;\r
-  Token.PacketNeeded    = NULL;\r
-\r
-  Status      = Mtftp4->WriteFile (Mtftp4, &Token);\r
-  *BufferSize = Token.BufferSize;\r
-\r
-  Mtftp4->Configure (Mtftp4, NULL);\r
-\r
-  return Status;\r
-}\r
-\r
-\r
-/**\r
-  This function is to get data(file) from a directory(may be a server) by Tftp.\r
-\r
-  @param  Private        Pointer to PxeBc private data.\r
-  @param  Config         Pointer to Mtftp configuration data.\r
-  @param  Filename       Pointer to file name.\r
-  @param  BlockSize      Pointer to block size.\r
-  @param  BufferPtr      Pointer to buffer.\r
-  @param  BufferSize     Pointer to buffer size.\r
-  @param  DontUseBuffer  Indicate whether with a receive buffer.\r
-\r
-  @retval EFI_SUCCES         Get the data from the file included in directory success.\r
-  @retval EFI_DEVICE_ERROR   The network device encountered an error during this operation.\r
-  @retval other              Operation failed.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcTftpReadDirectory (\r
-  IN PXEBC_PRIVATE_DATA            *Private,\r
-  IN EFI_MTFTP4_CONFIG_DATA        *Config,\r
-  IN UINT8                         *Filename,\r
-  IN UINTN                         *BlockSize,\r
-  IN UINT8                         *BufferPtr,\r
-  IN OUT UINT64                    *BufferSize,\r
-  IN BOOLEAN                       DontUseBuffer\r
-  )\r
-{\r
-  EFI_MTFTP4_PROTOCOL *Mtftp4;\r
-  EFI_MTFTP4_TOKEN    Token;\r
-  EFI_MTFTP4_OPTION   ReqOpt[1];\r
-  UINT32              OptCnt;\r
-  UINT8               OptBuf[128];\r
-  EFI_STATUS          Status;\r
-\r
-  Status                    = EFI_DEVICE_ERROR;\r
-  Mtftp4                    = Private->Mtftp4;\r
-  OptCnt                    = 0;\r
-  Config->InitialServerPort = PXEBC_BS_DOWNLOAD_PORT;\r
-\r
-  Status = Mtftp4->Configure (Mtftp4, Config);\r
-  if (EFI_ERROR (Status)) {\r
-\r
-    return Status;\r
-  }\r
-\r
-  if (BlockSize != NULL) {\r
-\r
-    ReqOpt[0].OptionStr = (UINT8*) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
-    ReqOpt[0].ValueStr  = OptBuf;\r
-    UtoA10 (*BlockSize, (CHAR8 *) ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
-    OptCnt++;\r
-  }\r
-\r
-  Token.Event         = NULL;\r
-  Token.OverrideData  = NULL;\r
-  Token.Filename      = Filename;\r
-  Token.ModeStr       = NULL;\r
-  Token.OptionCount   = OptCnt;\r
-  Token.OptionList    = ReqOpt;\r
-  Token.Context       = Private;\r
-\r
-  if (DontUseBuffer) {\r
-    Token.BufferSize  = 0;\r
-    Token.Buffer      = NULL;\r
-  } else {\r
-    Token.BufferSize  = *BufferSize;\r
-    Token.Buffer      = BufferPtr;\r
-  }\r
-\r
-  Token.CheckPacket     = PxeBcCheckPacket;\r
-  Token.TimeoutCallback = NULL;\r
-  Token.PacketNeeded    = NULL;\r
-\r
-  Status = Mtftp4->ReadDirectory (Mtftp4, &Token);\r
-\r
-  *BufferSize = Token.BufferSize;\r
-\r
-  Mtftp4->Configure (Mtftp4, NULL);\r
-\r
-  return Status;\r
-}\r
-\r