-/** @file
-
-Copyright (c) 2007, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
- PxeBcMtftp.h
-
-Abstract:
-
- Mtftp routines for PxeBc
-
-
-**/
-
-#ifndef __EFI_PXEBC_MTFTP_H__
-#define __EFI_PXEBC_MTFTP_H__
-
-enum {
- PXE_MTFTP_OPTION_BLKSIZE_INDEX,
- PXE_MTFTP_OPTION_TIMEOUT_INDEX,
- PXE_MTFTP_OPTION_TSIZE_INDEX,
- PXE_MTFTP_OPTION_MULTICAST_INDEX,
- PXE_MTFTP_OPTION_MAXIMUM_INDEX
-};
-
-
-/**
- This function is to get size of a file by Tftp.
-
- @param Private Pointer to PxeBc private data
- @param Config Pointer to Mtftp configuration data
- @param Filename Pointer to file name
- @param BlockSize Pointer to block size
- @param BufferSize Pointer to buffer size
-
- @return EFI_SUCCESS
- @return EFI_NOT_FOUND
- @return EFI_DEVICE_ERROR
-
-**/
-EFI_STATUS
-PxeBcTftpGetFileSize (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN OUT UINT64 *BufferSize
- )
-;
-
-
-/**
- This function is to get data of a file by Tftp.
-
- @param Private Pointer to PxeBc private data
- @param Config Pointer to Mtftp configuration data
- @param Filename Pointer to file name
- @param BlockSize Pointer to block size
- @param BufferPtr Pointer to buffer
- @param BufferSize Pointer to buffer size
- @param DontUseBuffer Indicate whether with a receive buffer
-
- @return EFI_SUCCESS
- @return EFI_DEVICE_ERROR
-
-**/
-EFI_STATUS
-PxeBcTftpReadFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
- )
-;
-
-
-/**
- This function is put data of a file by Tftp.
-
- @param Private Pointer to PxeBc private data
- @param Config Pointer to Mtftp configuration data
- @param Filename Pointer to file name
- @param Overwrite Indicate whether with overwrite attribute
- @param BlockSize Pointer to block size
- @param BufferPtr Pointer to buffer
- @param BufferSize Pointer to buffer size
-
- @return EFI_SUCCESS
- @return EFI_DEVICE_ERROR
-
-**/
-EFI_STATUS
-PxeBcTftpWriteFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN BOOLEAN Overwrite,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize
- )
-;
-
-
-/**
- This function is to get data of a directory by Tftp.
-
- @param Private Pointer to PxeBc private data
- @param Config Pointer to Mtftp configuration data
- @param Filename Pointer to file name
- @param BlockSize Pointer to block size
- @param BufferPtr Pointer to buffer
- @param BufferSize Pointer to buffer size
- @param DontUseBuffer Indicate whether with a receive buffer
-
- @return EFI_SUCCES
- @return EFI_DEVICE_ERROR
-
-**/
-EFI_STATUS
-PxeBcTftpReadDirectory (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
- )
-;
-
-#endif
-
+/** @file\r
+ Mtftp routines for PxeBc.\r
+ \r
+Copyright (c) 2007 - 2015, 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
+#ifndef __EFI_PXEBC_MTFTP_H__\r
+#define __EFI_PXEBC_MTFTP_H__\r
+\r
+#define PXE_MTFTP_OPTION_BLKSIZE_INDEX 0\r
+#define PXE_MTFTP_OPTION_TIMEOUT_INDEX 1\r
+#define PXE_MTFTP_OPTION_TSIZE_INDEX 2\r
+#define PXE_MTFTP_OPTION_MULTICAST_INDEX 3\r
+#define PXE_MTFTP_OPTION_MAXIMUM_INDEX 4\r
+\r
+#define PXE_MTFTP_ERROR_STRING_LENGTH 127\r
+#define PXE_MTFTP_OPTBUF_MAXNUM_INDEX 128\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
+\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
+\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
+\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
+#endif\r
+\r